使用说明
MCP代理服务
一个独立的代理服务,用于在现代HTTP流式MCP接口与传统的SSE长连接之间建立桥梁。
问题已解决
- 5秒延迟 在每次由于SSE连接初始化而调用MCP工具时
- 无服务器的局限性 - Vercel 函数无法保持持久连接
- 传统SSE实现 - Pizzaz 服务器及类似服务使用长时间运行的 SSE 连接
解决方案
MCP代理服务保持与传统服务器的持久SSE(Server-Sent Events)连接,同时提供一个现代的HTTP接口,该接口 fetchMcpMetaData 可以透明地调用。
建筑
fetchMcpMetaData → HTTP POST → MCP Proxy → Persistent SSE → Legacy Server (Pizzaz)
特点/特性
- 持久的SSE(服务器发送事件)连接维护与旧版服务器的长期SSE(Server-Sent Events)连接
- 连接池在多个请求之间重用连接
- 健康监测检测并重新连接失败的SSE(服务器发送事件)连接
- 透明界面对客户端来说,看起来就像一个普通的HTTP MCP服务器
- 认证用于安全的Bearer令牌认证
使用方法
环境变量
MCP_PROXY_API_KEY=your-secure-api-key
PORT=3000
启动服务
npm install
npm start
健康检查
curl http://localhost:8008/health
MCP 请求
curl -X POST http://localhost:8008/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-H "X-Target-Server: http://localhost:8000/mcp" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"params": {},
"id": 1
}'
与Findexar的集成
代理服务与Findexar实现透明集成 fetchMcpMetaData 功能:
- 环境变量设置
MCP_PROXY_URL并且MCP_PROXY_API_KEY在Findexar(注:Findexar可能是一个特定的名称或品牌,根据上下文可能需要具体翻译或解释,但在此直接音译为“芬德克斯”) - 自动检测:
fetchMcpMetaData自动为旧版SSE服务器使用代理 - 无代码更改现有的MCP发现代码无需更改,可继续使用
测试
-
启动Pizzaz服务器:
cd openai-apps-sdk-examples/pizzaz_server_node npm start -
启动MCP代理:
cd mcp-proxy npm start -
运行测试脚本:
node test-proxy.js
部署
渲染(推荐)
- 在Render上创建一个新的Web服务
- 连接你的GitHub仓库
- 设置构建命令:
npm install - 设置启动命令:
npm start - 添加环境变量:
MCP_PROXY_API_KEY您的安全API密钥PORT3000(由渲染自动设置)
Findexar 的环境变量
将这些添加到您的Findexar环境中:
MCP_PROXY_URL=https://your-proxy-service.onrender.com
MCP_PROXY_API_KEY=your-secure-api-key
成本
- 渲染启动器每月7美元,享受全天候服务
- 演出消除每次工具调用时的5秒延迟
- **ROI(Return on Investment)的中文翻译是“投资回报率”**用户体验显著提升
API 参考文档
POST /mcp 翻译为中文是:“发送到 /mcp(路径)”
处理MCP JSON-RPC请求。
标题:
Authorization: Bearer <api-key>X-Target-Server: <legacy-server-url>Content-Type: application/json
正文: 标准的MCP JSON-RPC请求
回应: 标准MCP JSON-RPC响应
GET /health 翻译为中文是:“获取/健康(信息)”或“发送GET请求至/health端点”。在实际应用中,这通常用于检查服务器或应用程序的健康状态
健康检查端点。
回答:
{
"status": "healthy",
"connections": 2,
"timestamp": "2025-01-27T10:00:00.000Z"
}
发展
# Install dependencies
npm install
# Start in development mode
npm run dev
# Build for production
npm run build
故障排除
连接问题
- 检查目标服务器是否正在运行
- 验证
X-Target-Server标题是正确的 - 检查代理服务日志中的SSE连接错误
性能问题
- 在健康端点监控连接缓存大小
- 检查连接超时情况
- 验证SSE流是否保持活跃
身份验证问题
- 验证
MCP_PROXY_API_KEY设置正确 - 检查Authorization头部格式
- 确保客户端和代理之间的API密钥匹配
