sparfenyuk/mcp-proxy
A bridge between Streamable HTTP and stdio MCP transports
解决的问题
mcp-proxy 允许用户在 Model Context Protocol (MCP) 的不同服务器传输协议之间进行切换。它特别解决了客户端和服务器使用不同通信方式时的不兼容问题,例如当客户端仅支持 stdio 但需要连接使用 SSE(Server-Sent Events)或 StreamableHTTP 的远程服务器时。
工作原理
该工具主要以两种模式运行:
- stdio 到 SSE/StreamableHTTP:作为本地网桥。客户端(如 Claude Desktop)通过 stdio 与代理通信,代理将这些请求通过 SSE 或 StreamableHTTP 转发到远程 MCP 服务器。
- 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