BatchData MCP演示
一个参考实现,演示了与 BatchData MCP服务器 使用 Vercel AI SDK.
特性
- 多提供商LLM支持:从OpenAI、Anthropic或谷歌模型中选择
- 实时进度反馈:通过服务器发送事件调用AI工具时,查看实时更新
- 安全令牌管理:API令牌保存在服务器端,从不向浏览器公开
- 性质分析:使用BatchData属性智能进行AI驱动的投资分析
- 逃债追踪服务:通过TCPA/DNC合规性过滤查找所有者联系信息
- 物业比较:比较多个房产以做出投资决策
- 免费聊天:可访问所有BatchData MCP工具的通用AI聊天
建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Browser │────▶│ Express.js │────▶│ BatchData MCP │
│ (Frontend) │ │ Server │ │ Server │
│ │ │ │ │ │
│ Model selector │ │ Tokens stored │ │ Property data │
│ No API tokens! │ │ in env vars │ │ 140M+ records │
└─────────────────┘ └────────┬────────┘ └─────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ OpenAI │ │ Anthropic│ │ Google │ ...
│ GPT-4o │ │ Claude │ │ Gemini │
└──────────┘ └──────────┘ └──────────┘快速开始
1.克隆和安装
git clone https://github.com/CharlesParra-BatchService/BatchData-MCP-Demo.git
cd BatchData-MCP-Demo
npm install2.配置环境
cp .env.example .env编辑 .env 并添加您的API密钥。 至少,您需要BatchData+一个LLM提供程序:
# Required: BatchData API Token
BATCHDATA_API_TOKEN=bd-your-batchdata-token
# At least one LLM provider is required:
OPENAI_API_KEY=sk-your-openai-api-key
# ANTHROPIC_API_KEY=sk-ant-your-anthropic-api-key
# GOOGLE_GENERATIVE_AI_API_KEY=your-google-api-key获取API密钥:
- 批次数据: → API令牌→ 服务器端令牌
- 开放人工智能:
- Anthropic:
- 谷歌人工智能:
- 米斯特拉尔:
- Groq:
注: 只有来自已配置API键的提供程序的模型才会显示在模型选择器中。
3.运行服务器
开发(带热重新加载):
npm run dev生产:
npm run build
npm start4.打开演示
导航至http://localhost:3000在您的浏览器中。
API终点
| 端点 | 方法 | 描述 |
|---|---|---|
/api/models | GET | 列出可用型号 |
/api/ai/chat | POST | 与BatchData工具的常规聊天 |
/api/ai/chat-stream | POST | 实时进度聊天(SSE) |
/api/ai/analyze-property | POST | 房地产投资分析 |
/api/ai/analyze-property-stream | POST | 分析进展(SSE) |
/api/ai/skip-trace | POST | 所有者联系人查找 |
/api/ai/skip-trace-stream | POST | 随进度跳过跟踪(SSE) |
/api/ai/compare-properties | POST | 比较多个属性 |
/api/ai/compare-properties-stream | POST | 与进度比较(SSE) |
/api/health | GET | 健康检查 |
示例:分析属性
curl -X POST http://localhost:3000/api/ai/analyze-property \
-H "Content-Type: application/json" \
-d '{"address": "273 Woodbridge Ave, Woodbridge, NJ 07095"}'示例:聊天
curl -X POST http://localhost:3000/api/ai/chat \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"role": "user", "content": "What is the estimated value of 123 Main St, Phoenix, AZ 85001?"}
]
}'安全最佳实践
此演示演示了 正确的 与BatchData和LLM提供程序集成的方法:
- 服务器端令牌:所有API令牌都存储在服务器上的环境变量中
- 无客户风险:浏览器从不查看或处理API令牌
- 代理模式:前端调用后端API,然后调用外部服务
永远不要这样做:
// ❌ BAD - Token exposed in browser
const response = await fetch('https://mcp.batchdata.com', {
headers: { Authorization: `Bearer ${apiToken}` } // Visible to users!
});改为这样做:
// ✅ GOOD - Token stays on server
const response = await fetch('/api/ai/analyze-property', {
body: JSON.stringify({ address }) // No tokens sent from browser
});技术栈
- 运行时:Node.js 18+
- 框架:Express.js
- 人工智能集成: Vercel AI SDK 随着
generateText()以及自动工具执行 - MCP客户端:
@ai-sdk/mcp@^0.0.11用于BatchData MCP服务器连接 - LLM提供商:OpenAI、Anthropic、谷歌(多提供商支持)
- 语言:TypeScript
已知问题
代币限额处理
BatchData MCP工具可以返回大量数据(单个属性查找需要50K+个字符)。此项目包括自动截断工具结果,以防止超过LLM令牌限制。
支持的LLM模型
演示包括一个模型选择器下拉列表。可用的模型取决于您配置的API密钥:
| 提供者 | 模型 | 环境变量 |
|---|---|---|
| 开放人工智能 | gpt-4o、gpt-4o-mini、gpt-4涡轮增压、gpt-3.5涡轮增压 | OPENAI_API_KEY |
| Anthropic | claude-sonnet-4-20250514,claude-3-5-haiku-20241022,claude-3-opus-20240229 | ANTHROPIC_API_KEY |
| 谷歌 | 双子座-2.0-闪光,双子座-1.5-pro,双子座-1.5-闪光 | GOOGLE_GENERATIVE_AI_API_KEY |
这 /api/models 端点仅从具有已配置API密钥的提供程序返回模型。前端根据此响应自动填充模型选择器。
项目结构
BatchData-MCP-Demo/
├── src/
│ ├── ai-service.ts # AI/MCP integration with Vercel AI SDK
│ └── server.ts # Express.js server & routes
├── public/
│ └── index.html # Frontend demo UI
├── docs/
│ └── AI-SDK-MCP-WORKAROUND.md # Historical reference for beta versions
├── .env.example # Environment template
├── package.json
├── tsconfig.json
└── README.md可用的BatchData MCP工具
AI可以访问这些BatchData工具:
| 工具 | 说明 |
|---|---|
lookup_property | 获取全面的房产详情 |
comparable_property | 查找可比房产进行估值 |
skip_trace_property | 查找所有者联系信息 |
verify_phone | 验证电话号码(运营商、DNC、TCPA) |
check_dnc_status | 快速不呼叫查找 |
check_tcpa_status | 快速TCPA诉讼律师检查 |
verify_address | 将地址标准化为USPS标准 |
geocode_address | 将地址转换为坐标 |
reverse_geocode_address | 将坐标转换为地址 |
资源
许可证
麻省理工学院
