使用说明
项目简介
MCP Proxy 并非一个独立的 MCP 服务器,而是一个协议转换代理工具。它允许您在使用不同传输协议的 MCP 客户端和服务器之间建立桥梁。例如,您可以使用仅支持 stdio 的 MCP 客户端连接到仅支持 SSE 的远程 MCP 服务器,反之亦然。MCP Proxy 主要支持两种模式:stdio 到 SSE 的转换,以及 SSE 到 stdio 的转换。
主要功能点
- 协议转换:支持 stdio 和 SSE 两种 MCP 传输协议之间的相互转换。
- stdio to SSE 模式:允许原本使用 stdio 通信的 MCP 客户端(如 Claude Desktop)连接到远程 SSE MCP 服务器。
- SSE to stdio 模式:允许远程 MCP 客户端通过 SSE 连接到本地 stdio MCP 服务器。
- 灵活配置:支持命令行参数和环境变量配置,可以自定义 SSE 服务器端口、允许的来源 (CORS) 等。
- 易于安装:提供多种安装方式,包括 Smithery, PyPI, GitHub 和 Docker 镜像。
安装步骤
您可以通过以下几种方式安装 MCP Proxy:
-
通过 Smithery 安装 (针对 Claude Desktop 客户端)
npx -y @smithery/cli install mcp-proxy --client claude -
通过 PyPI 安装 推荐使用 'uv' 进行安装:
uv tool install mcp-proxy或者使用 'pipx':
pipx install mcp-proxy -
通过 GitHub 仓库安装 (最新版本)
uv tool install git+https://github.com/sparfenyuk/mcp-proxy -
作为 Docker 容器运行
docker run -t ghcr.io/sparfenyuk/mcp-proxy:latest --help
服务器配置
MCP 客户端需要配置 MCP Proxy 的启动命令和参数,以便客户端通过 Proxy 与实际的 MCP 服务器通信。以下分别介绍两种模式下的配置方法(以 JSON 格式的客户端配置为例):
1. stdio to SSE 模式配置 (例如 Claude Desktop 连接远程 SSE 服务器)
在这种模式下,MCP Proxy 充当 stdio 客户端,连接到远程 SSE MCP 服务器。您需要将 MCP 客户端配置为启动 'mcp-proxy' 命令,并将远程 SSE 服务器的 URL 作为参数传递给 'mcp-proxy'。
{ "mcpServers": { "mcp-proxy-sse": { "command": "mcp-proxy", "args": ["http://example.io/sse"], // 替换为远程 SSE MCP 服务器的 URL "env": { "API_ACCESS_TOKEN": "your-api-token" // 可选:如果远程 SSE 服务器需要 API 访问令牌,可以通过环境变量传递 } } } }
- 'command': 设置为 'mcp-proxy',这是 MCP Proxy 的启动命令。
- 'args': 需要一个参数,即远程 SSE MCP 服务器的 URL (例如 'http://example.io/sse')。
- 'env': 可选的环境变量配置。例如,如果远程 SSE 服务器需要身份验证,您可以通过 'API_ACCESS_TOKEN' 环境变量传递令牌。
2. SSE to stdio 模式配置 (远程 SSE 客户端连接本地 stdio 服务器)
在这种模式下,MCP Proxy 充当 SSE 服务器,监听端口,并将接收到的请求转发给本地 stdio MCP 服务器。您需要配置 MCP 客户端连接到 MCP Proxy 暴露的 SSE 端口,并配置 MCP Proxy 启动本地 stdio MCP 服务器。
启动 MCP Proxy 的命令示例:
mcp-proxy --sse-port=8080 uvx mcp-server-fetch // 启动 MCP Proxy,监听 8080 端口,并启动本地 stdio 服务器 'uvx mcp-server-fetch'
MCP 客户端需要连接到 MCP Proxy 的 SSE 服务地址,例如 'http://127.0.0.1:8080/sse'。
在客户端配置中,您通常不需要直接配置 JSON,因为这种模式主要用于远程客户端连接本地服务,配置通常在 MCP Proxy 运行的服务器端完成。
基本使用方法
1. stdio to SSE 模式 (客户端: stdio, 服务器: SSE)
假设您要让一个 stdio 客户端连接到 URL 为 'http://remote-mcp-server/sse' 的远程 SSE 服务器。您只需在客户端配置中设置启动命令为 'mcp-proxy http://remote-mcp-server/sse'。
2. SSE to stdio 模式 (客户端: SSE, 服务器: stdio)
假设您要将本地 stdio MCP 服务器 'uvx mcp-server-fetch' 暴露为 SSE 服务,端口为 8080。您需要运行命令:'mcp-proxy --sse-port=8080 uvx mcp-server-fetch'。 然后,SSE 客户端可以连接到 'http://<mcp-proxy-ip>:8080/sse'。
请根据您的实际需求选择合适的模式和配置参数。 详细的命令行参数和配置选项请参考仓库的 README 文档和命令行帮助信息 ('mcp-proxy --help')。
信息
分类
通信与社交