这是一个调整https://github.com/gomarble-ai/mcp-proxy-nodejs!
哪个是SSE代理
这是MCPfy项目的一部分
https://www.hahooh.xyz
Github页面
https://github.com/hahooh/mcp-streaming-http-proxy-nodejs
MCP流式HTTP代理
一种模型上下文协议(MCP)服务器,充当代理,将基于STDIO的MCP客户端与基于http的流式MCP服务器桥接起来。这使得仅支持STDIO传输的MCP客户端能够连接到使用流式http传输的远程MCP服务器。
概述
MCP流式HTTP代理在两种不同的MCP传输协议之间创建桥梁:
- STDIO传输:由本地MCP客户端(如Claude Desktop)使用
- 流式HTTP传输:由可通过HTTP/HTTPS访问的远程MCP服务器使用
此代理允许您使用远程MCP服务器,这些服务器从仅支持基于STDIO的MCP连接的应用程序中公开流式HTTP端点。
特性
- 完全支持MCP协议:代理所有MCP功能,包括:
- 工具(列出和调用) - 资源(列表和阅读) - 资源模板(列表) - 提示(列出和获取)
- 身份验证支持:用于流式http终结点的可选API密钥身份验证
- 错误处理:全面的错误处理和详细的日志记录
- 优雅地关闭:在流程终止时进行适当的清理
- 可配置的:通过命令行参数或环境变量进行灵活配置
安装
先决条件
- Node.js>=18.0.0
- npm或纱线
设置
- 克隆或下载此存储库
- 安装依赖项:
npm install用法
公开流式http端点
命令行参数
node server/index.js [API_KEY]参数:
SERVER_NAME:MCP服务器的显示名称STREAMING_HTTP_URL:远程流式HTTP MCP服务器端点的URLAPI_KEY:(可选)用于身份验证的API密钥
例子:
node server/index.js "My Remote MCP Server" "https://api.example.com/mcp" "your-api-key"环境变量
或者,您可以使用环境变量:
export SERVER_NAME="My Remote MCP Server"
export STREAMING_HTTP_URL="https://api.example.com/mcp"
export API_KEY="your-api-key"
node server/index.js配置
MCP客户端配置
要将此代理与Claude Desktop等MCP客户端一起使用,请在MCP配置中添加以下内容:
{
"mcpServers": {
"remote-server": {
"command": "node",
"args": [
"/path/to/mcp-proxy-node/server/index.js",
"Remote Server Name",
"https://your-remote-server.com/mcp",
"your-api-key"
]
}
}
}或使用npx
"mcpServers": {
"my-server": {
"command": "npx",
"args": [
"-y",
"stdio-to-streaming-http-mcp",
"your server name",
"https://your-remote-server.com/mcp",
"your-api-key"
]
}
}认证
代理支持承载令牌身份验证。当提供API密钥时,它将被发送为:
Authorization: BearerHTTP请求中的标头- EventSource连接的身份验证标头
创建桌面扩展(.dxt)
此MCP代理可以打包为桌面扩展,以便在Claude Desktop和其他启用MCP的应用程序中轻松一键安装。
有关完整指南,请参阅: 桌面扩展:一键安装Claude Desktop的MCP服务器
先决条件
安装依赖项
npm install安装DXT CLI工具:
npm install -g @anthropic-ai/dxt创建DXT文件的步骤
- 初始化DXT配置 (如果需要):
dxt init注意:此项目已包含 manifest.json 文件,因此可能不需要初始化。
- 验证清单:
dxt validate- 打包扩展:
dxt pack- 测试扩展:
- 该命令将生成 .dxt 文件 - 拖动 .dxt 将文件放入Claude Desktop的“设置”窗口 - 点击“安装”测试扩展
快速安装(替代方案)
如果你不想自己构建扩展,你可以直接拖放预构建的 mcp-proxy-node.dxt 将文件导入Claude Desktop的“设置”窗口,以便立即安装。
技术细节
建筑
MCP Client (STDIO) ←→ MCP Streaming HTTP Proxy ←→ Remote MCP Server (Streaming HTTP)代理由两个主要部分组成:
- MCP服务器:接受来自本地MCP客户端的STDIO连接
- MCP客户端:连接到远程流式http MCP服务器
传输协议
- 输入:STDIO传输(标准输入/输出)
- 输出:流式HTTP传输
错误处理
该代理包括全面的错误处理:
- 与远程流式http服务器的连接失败
- URL格式无效
- 身份验证错误
- 请求/响应解析错误
- 远程功能不可用时性能下降
日志记录
详细日志记录通过以下方式提供 console.error() 用于调试:
- 连接状态
- 请求/响应详细信息
- 带有堆栈跟踪的错误信息
- 性能指标
API 参考
MCPStreamingHTTPProxy类
构造函数
new MCPStreamingHTTPProxy(streamingHTTPUrl, apiKey, serverName);streamingHTTPUrl(string):流式http MCP服务器的URLapiKey(字符串,可选):用于身份验证的API密钥。在标题X-API-KEY中。serverName(string):代理服务器的显示名称
方法
initialize():初始化客户端和服务器连接run():启动代理服务器close():优雅地关闭代理setupProxyHandlers():配置请求处理程序
发展
项目结构
mcp-proxy-node/
├── server/
│ └── index.js # Main proxy server implementation
├── package.json # Project configuration and dependencies
├── manifest.json # DXT manifest for MCP client integration
├── favicon.png # Project icon
└── README.md # This file依赖项
@modelcontextprotocol/sdk:Node.js官方MCP SDK
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 彻底测试
- 提交拉取请求
故障排除
常见问题
- 连接被拒绝
- 验证流媒体http URL是否正确且可访问 - 检查远程服务器是否正在运行 - 确保防火墙/网络设置允许连接
- 身份验证错误
- 验证API密钥是否正确 - 检查远程服务器是否需要身份验证 - 确保API密钥格式符合服务器的期望
- 没有可用的工具/资源
- 检查远程服务器是否实际提供工具/资源 - 验证远程服务器是否正确响应 - 检查代理日志中的错误消息
- 性能问题
- 监控远程服务器的网络延迟 - 检查远程服务器上的速率限制 - 考虑高频使用的连接池
调试
通过检查控制台输出启用详细日志记录。代理日志:
- 连接尝试和结果
- 请求/响应详细信息
- 带有堆栈跟踪的错误消息
- 性能计时
加入我们的社区以获取帮助和更新
👉 Slack社区- 广告中的人工智能
还可以查看我们的其他项目
👉 Facebook广告MCP- Facebook广告MCP 👉 谷歌广告MCP- 谷歌广告MCP
许可证
MIT许可证-有关详细信息,请参阅许可证文件
支持
对于问题和疑问:
- 检查上面的故障排除部分
- 查看控制台日志以了解错误详细信息
- 确保你的Node.js版本符合要求(>=18.0.0)
- 验证远程流媒体http服务器是否与MCP协议兼容
兼容性
- Node.js: >= 18.0.0
- MCP协议:与MCP SDK v1.13.2兼容+
- 平台:macOS、Windows、Linux
- 克劳德桌面: >= 0.10.0
由以下材料制成❤️ 对于MCP社区
