批量数据处理服务器集成

BatchData MCP演示是一个参考实现,展示了如何使用Vercel AI SDK与BatchData MCP服务器进行安全的服务器端集成,支持多提供商LLM选择、实时进度反馈和安全的令牌管理。

  • by batchdataco
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 batchdataco/batchdata-mcp-demo

使用说明

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 install

2.配置环境

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键的提供程序的模型才会显示在模型选择器中。

3.运行服务器

开发(带热重新加载):

npm run dev

生产:

npm run build
npm start

4.打开演示

导航至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提供程序集成的方法:

  1. 服务器端令牌:所有API令牌都存储在服务器上的环境变量中
  2. 无客户风险:浏览器从不查看或处理API令牌
  3. 代理模式:前端调用后端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 将坐标转换为地址

资源

许可证

麻省理工学院