sparfenyuk/mcp-proxy

A bridge between Streamable HTTP and stdio MCP transports

解决的问题

mcp-proxy 允许用户在 Model Context Protocol (MCP) 的不同服务器传输协议之间进行切换。它特别解决了客户端和服务器使用不同通信方式时的不兼容问题,例如当客户端仅支持 stdio 但需要连接使用 SSE(Server-Sent Events)或 StreamableHTTP 的远程服务器时。

工作原理

该工具主要以两种模式运行:

  1. stdio 到 SSE/StreamableHTTP:作为本地网桥。客户端(如 Claude Desktop)通过 stdio 与代理通信,代理将这些请求通过 SSE 或 StreamableHTTP 转发到远程 MCP 服务器。
  2. SSE 到 stdio:作为服务器运行。代理打开一个网络端口,监听来自远程 LLM 客户端的 SSE 请求,然后启动一个本地的 stdio 基础 MCP 服务器来处理这些请求。

它还支持「命名服务器」功能,允许单个代理实例根据 URL 路径管理并路由请求到多个不同的 stdio 服务器。

适用人群

需要连接远程服务器或向远程客户端暴露本地工具的 MCP 兼容 LLM 客户端的开发者和用户,尤其适用于客户端或服务器的原生传输支持有限的情况。

主要亮点

  • 双向传输切换:同时支持 stdio → SSE/StreamableHTTP 和 SSE → stdio。
  • 命名服务器路由:可在不同 URL 路径下(例如 /servers/fetch/sse)托管多个 stdio 服务器。
  • 认证支持:内置 OAuth2(客户端 ID、密钥、令牌 URL)和自定义 HTTP 头部选项,用于远程连接。
  • 灵活部署:可通过 PyPI、GitHub 或多平台 Docker 容器获取。
  • CORS 配置:在 SSE 服务器模式下,可指定允许的来源和暴露的头部。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • Dispatch