Beckn移动MCP服务器
通用 模型上下文协议(MCP) 服务器 Beckn Mobility 域。此服务器充当 买家应用平台(BAP),使AI代理(如Claude、Gemini等)能够使用开放的Beckn协议(如Namma Yatri、ONDC)搜索出租车、查看价格和预订行程。
特性
- 通用BAP实施:连接到任何符合Beckn标准的Mobility BPP。
- MCP工具:暴露
search_cabs,select_ride,init_booking,以及confirm_booking作为人工智能工具。 - 异步Webhook处理:坚固
WebhookManager处理Beckn的异步回调,包括超时和请求相关性。 - 安全签名:实施 版本25519 Beckn注册表要求的请求签名。
- 荣誉 服务 器:基于Hono构建,用于高性能HTTP处理和服务器发送事件(SSE)。
- 验证脚本:包括一套用于验证加密签名和端到端流的脚本。
先决条件
- Node.js v18+
- 公共URL(使用
ngrok或云部署)用于接收Webhook。 - 在Beckn注册处(例如Namma Yatri Sandbox)注册。
安装
- 克隆仓库:
git clone https://github.com//mcp-beckn-mobility.git
cd mcp-beckn-mobility- 安装依赖项:
npm install配置
- 生成密钥:
运行辅助脚本以生成Ed25519签名密钥。
npx tsx src/generate_keys.ts*复制输出(BAP ID、公钥、私钥)。*
- 设置环境:
复制 .env.example 到 .env (或创建它)并填写您的详细信息:
# Beckn Registry Details
BAP_ID=mcp-mobility-bap-
UNIQUE_KEY_ID=key1
SIGNING_PRIVATE_KEY=
SIGNING_PUBLIC_KEY=
# URLs
BAP_URI=https:// # Must be public!
BPP_URI=https://gateway.nammayatri.in/search # Or local mock
PORT=3000- 注册:
使用您的BAP ID和公钥在 Namma Yatri/Beckn登记处.
用法
- 启动服务器:
npm run dev- 通过Ngrok连接 (如果在本地运行):
ngrok http 3000*更新 BAP_URI 在 .env 使用ngrok URL。*
- 连接您的AI客户端:
配置您的MCP客户端(例如Claude Desktop)以连接到SSE端点:
- 统一资源定位符: http://localhost:3000/sse
验证
我们在上线前提供了验证系统的脚本:
- 验证加密货币:检查您的密钥和签名逻辑在数学上是否正确。
npx tsx src/verify_crypto.ts- 验证全流量(本地):运行本地模拟BPP并测试完整的HTTP请求/响应循环。
npx tsx src/verify_full_flow.ts- 黑盒测试:模拟MCP客户端通过SSE和调用工具连接。
npx tsx src/verify_mcp_client.ts项目结构
src/index.ts:主服务器入口点(Hono应用程序)。src/tools/mobilityTools.ts:MCP工具定义(search_cabs等等)。src/lib/becknClient.ts:处理Beckn协议通信和签名。src/lib/webhookManager.ts:管理异步回调。src/lib/honoTransport.ts:为Hono定制MCP运输。
许可证
麻省理工学院
