返回市场
MCP流媒体HTTP代理Nodejs服务器

MCP流媒体HTTP代理Nodejs服务器

作者:hahooh2 星标更新:2025-10-31

项目介绍

这是 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 服务器使用

此代理允许您从仅支持 STDIO 基础 MCP 连接的应用程序中使用暴露流式 HTTP 端点的远程 MCP 服务器。

功能

  • 完整的 MCP 协议支持:代理所有 MCP 能力包括:
    • 工具(列出和调用)
    • 资源(列出和读取)
    • 资源模板(列出)
    • 提示(列出和获取)
  • 身份验证支持:流式 HTTP 端点的可选 API 密钥身份验证
  • 错误处理:全面的错误处理,带有详细的日志记录
  • 优雅关闭:进程终止时适当的清理
  • 可配置性:通过命令行参数或环境变量灵活配置

安装

先决条件

  • Node.js >= 18.0.0
  • npm 或 yarn

设置

  1. 克隆或下载此仓库
  2. 安装依赖项:
npm install

使用

暴露流式 HTTP 端点

命令行参数

node server/index.js <SERVER_NAME> <STREAMING_HTTP_URL> [API_KEY]

参数:

  • SERVER_NAME:MCP 服务器的显示名称
  • STREAMING_HTTP_URL:远程流式 HTTP MCP 服务器端点的 URL
  • API_KEY:(可选)用于身份验证的 API 密钥

示例:

node server/index.js "我的远程 MCP 服务器" "https://api.example.com/mcp" "your-api-key"

环境变量

或者,您可以使用环境变量:

export SERVER_NAME="我的远程 MCP 服务器"
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",
        "远程服务器名称",
        "https://your-remote-server.com/mcp",
        "your-api-key"
      ]
    }
  }
}

或使用 npx

"mcpServers": {
   "my-server": {
      "command": "npx",
      "args": [
         "-y",
         "stdio-to-streaming-http-mcp",
         "你的服务器名称",
         "https://your-remote-server.com/mcp",
         "your-api-key"
      ]
   }
}

身份验证

该代理支持 Bearer 令牌身份验证。当提供 API 密钥时,它将以以下方式发送:

  • 在 HTTP 请求中的 Authorization: Bearer <API_KEY> 头部
  • 对于 EventSource 连接的身份验证头部

创建桌面扩展(.dxt)

此 MCP 代理可以打包成桌面扩展,以便在 Claude Desktop 和其他启用 MCP 的应用程序中进行一键安装。

完整指南见:桌面扩展:Claude Desktop 的一键 MCP 服务器安装

先决条件

安装依赖项

npm install

安装 DXT CLI 工具:

npm install -g @anthropic-ai/dxt

创建 DXT 文件的步骤

  1. 初始化 DXT 配置(如有需要):

    dxt init
    

    注意:此项目已经包含一个 manifest.json 文件,因此可能不需要初始化。

  2. 验证清单

    dxt validate
    
  3. 打包扩展

    dxt pack
    
  4. 测试扩展

    • 命令将生成一个 .dxt 文件
    • .dxt 文件拖放到 Claude Desktop 的设置窗口中
    • 点击“安装”以测试扩展

快速安装(替代方案)

如果您不想自己构建扩展,可以直接将预构建的 mcp-proxy-node.dxt 文件拖放到 Claude Desktop 的设置窗口中进行即时安装。

技术细节

架构

MCP 客户端(STDIO) ←→ MCP 流式 HTTP 代理 ←→ 远程 MCP 服务器(流式 HTTP)

代理由两个主要组件组成:

  1. MCP 服务器:接受来自本地 MCP 客户端的 STDIO 连接
  2. MCP 客户端:连接到远程流式 HTTP MCP 服务器

传输协议

  • 输入:STDIO 传输(标准输入/输出)
  • 输出:流式 HTTP 传输

错误处理

代理包括全面的错误处理:

  • 连接到远程流式 HTTP 服务器失败
  • URL 格式无效
  • 身份验证错误
  • 请求/响应解析错误
  • 当远程能力不可用时的优雅降级

日志记录

通过 console.error() 提供详细的调试日志:

  • 连接状态
  • 请求/响应详情
  • 带有堆栈跟踪的错误信息
  • 性能指标

API 参考

MCPStreamingHTTPProxy 类

构造函数

new MCPStreamingHTTPProxy(streamingHTTPUrl, apiKey, serverName);
  • streamingHTTPUrl(字符串):流式 HTTP MCP 服务器的 URL
  • apiKey(字符串,可选):用于身份验证的 API 密钥。在头部 X-API-KEY 中。
  • serverName(字符串):代理服务器的显示名称

方法

  • initialize():初始化客户端和服务器连接
  • run():启动代理服务器
  • close():优雅地关闭代理
  • setupProxyHandlers():配置请求处理器

开发

项目结构

mcp-proxy-node/
├── server/
│   └── index.js          # 主代理服务器实现
├── package.json          # 项目配置和依赖项
├── manifest.json         # DXT 清单,用于 MCP 客户端集成
├── favicon.png           # 项目图标
└── README.md             # 此文件

依赖项

  • @modelcontextprotocol/sdk:官方 MCP SDK for Node.js

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

故障排除

常见问题

  1. 连接被拒绝

    • 验证流式 HTTP URL 是否正确且可访问
    • 检查远程服务器是否正在运行
    • 确保防火墙/网络设置允许连接
  2. 身份验证错误

    • 验证 API 密钥是否正确
    • 检查远程服务器是否期望身份验证
    • 确保 API 密钥格式符合服务器预期
  3. 没有可用工具/资源

    • 检查远程服务器是否实际提供工具/资源
    • 验证远程服务器是否正确响应
    • 检查代理日志中的错误消息
  4. 性能问题

    • 监控到远程服务器的网络延迟
    • 检查远程服务器上的速率限制
    • 考虑高频率使用时的连接池

调试

通过检查控制台输出来启用详细的日志记录。代理记录:

  • 连接尝试和结果
  • 请求/响应详情
  • 带有堆栈跟踪的错误消息
  • 性能计时

加入我们的社区获取帮助和更新

👉 Slack 社区 - AI in Ads

同时查看我们的其他项目

👉 Facebook Ads MCP - Facebook Ads MCP 👉 Google Ads MCP - [Google Ads MCP](https://github.com/gomarble- ai/google-ads-mcp-server)

许可证

MIT 许可证 - 详见 LICENSE 文件

支持

对于问题和疑问:

  • 查看上面的故障排除部分
  • 查看控制台日志中的错误详情
  • 确保您的 Node.js 版本满足要求(>= 18.0.0)
  • 验证远程流式 HTTP 服务器是否与 MCP 协议兼容

兼容性

  • Node.js:>= 18.0.0
  • MCP 协议:兼容 MCP SDK v1.13.2+
  • 平台:macOS, Windows, Linux
  • Claude Desktop:>= 0.10.0

为 MCP 社区制作 ❤️