MCP-Proxy 是一款功能强大的代理服务器工具,支持多种协议和高级功能,能满足不同场景下的代理需求。
通过以下命令安装 mcp-proxy 工具:
python -m pip install --user mcpy
然后将 mcpy 脚本添加到您的 PATH 环境变量中,以便在终端中直接使用。
安装完成后,在终端运行以下命令验证是否安装成功:
mcp-proxy --version
若要通过 SSE(Server-Sent Events)模式运行 mcp-proxy,请按照以下步骤操作:
mcp-proxy --mode sse --port 8096 uvx mcp-server-fetch &> server.log &
mcp-proxy http://localhost:8096/sse
Ctrl+C 组合键停止代理。若要通过 Stdio 模式运行 mcp-proxy,请按照以下步骤操作:
mcp-proxy --mode stdio --port 8096 uvx mcp-server-fetch &> server.log &
mcp-proxy http://localhost:8096/stdio
Ctrl+C 组合键停止代理。pip install mcpy
您可以从 GitHub 下载 MCP-Proxy 或通过上述命令安装。
启动代理服务器:
mcp-proxy --mode sse --port 8096 uvx mcp-server-fetch
使用负载均衡模式:
mcp-proxy --mode sse --port 8096 --balance round - robin uvx1 mcp-server-fetch
mcp-proxy --mode sse --port 8097 --balance least-connections uvx2 mcp-server-fetch
启用环境变量传递:
MCP_PASS_ENVIRONMENT=true mcp-proxy --mode sse --port 8096 uvx mcp-server-fetch
以下是完整的 MCP-Proxy 配置文件示例:
{
"proxy": {
"command": "mcp-proxy",
"args": [
"--mode",
"sse",
"--port",
"8096"
],
"passEnvironment": true
},
"fetch": {
"command": "uvx",
"args": [
"mcp-server-fetch"
]
}
}
以下是 MCP-Proxy 支持的环境变量列表:
| 环境变量名称 | 描述 | 默认值 |
|---|---|---|
MCP_PROXY_MODE |
设置代理模式,可选值为 sse 或 stdio |
sse |
MCP_PROXY_PORT |
设置代理服务器的监听端口 | 8096 |
MCP_PROXY_HOST |
设置代理服务器的绑定地址 | 127.0.0.1 |
MCP_PROXY_ARGS |
传递给代理命令的额外参数,用空格分隔 | 空值 |
MCP_PASS_ENV |
是否传递所有环境变量到子进程 | false |
以下是 MCP-Proxy 支持的命令行选项:
usage: mcp-proxy [-h] [--mode {sse,stdio}] [--port PORT] [--host HOST]
[--pass-environment] [--debug] [command_or_url] [args ...]
Start the MCP proxy in one of two possible modes: as an SSE or stdio client.
optional arguments:
-h, --help 显示帮助信息并退出
--mode {sse,stdio} 设置代理模式,可选值为 `sse` 或 `stdio`
--port PORT 设置代理服务器的监听端口
--host HOST 设置代理服务器的绑定地址
--pass-environment 是否传递所有环境变量到子进程
--debug 启用调试模式
command_and_url:要执行的命令或目标 URL
args... 要传递给命令的额外参数
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["mcp-proxy"]
docker build -t mcp-proxy .
docker run -it mcp-proxy
# 基本代理链
mcp-proxy --mode sse --port 8096 uvx mcp-server-fetch
# 嵌套代理链
mcp-proxy --mode sse --port 8096 "uvx mcp-server-fetch"
# 使用负载均衡
mcp-proxy --mode sse --port 8096 --balance round-robin uvx1 mcp-server-fetch
mcp-proxy --mode sse --port 8097 --balance least-connections uvx2 mcp-server-fetch
# 使用故障转移
mcp-proxy --mode sse --port 8096 --failover active-passive uvx1 mcp-server-fetch
pip install mcpy requests
gateway.py:from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api', methods=['GET'])
def handle_request():
# 处理请求头和参数
headers = request.headers
params = request.args
# 调用后端服务
response = requests.get(f"http://backend:8096/api", headers=headers, params=params)
# 处理响应
return jsonify(response.json())
if __name__ == '__main__':
app.run(port=8095)
python gateway.py
mcp-proxy --mode sse --port 8096 gateway:8095
curl http://localhost:8096/api
| 选项 | 描述 | 示例值 |
|---|---|---|
--help |
显示帮助信息并退出 | 无 |
--version |
显示当前版本号并退出 | 无 |
--mode {sse,stdio} |
设置代理模式,可选值为 sse 或 stdio |
sse |
--port PORT |
设置代理服务器的监听端口 | 8096 |
--host HOST |
设置代理服务器的绑定地址 | localhost |
--pass-environment |
是否传递所有环境变量到子进程 | true |
--debug |
启用调试模式 | 无 |
[proxy]
mode = sse
port = 8096
host = localhost
[target]
command = uvx mcp-server-fetch
args =
environment = true
| 变量名 | 描述 | 示例值 |
|---|---|---|
MCP_MODE |
设置代理模式,可选值为 sse 或 stdio |
sse |
MCP_PORT |
设置代理服务器的监听端口 | 8096 |
MCP_HOST |
设置代理服务器的绑定地址 | localhost |
MCP_PASS_ENVIRONMENT |
是否传递所有环境变量到子进程 | true |
git clone https://github.com/your-org/mcp-proxy.git
cd mcp-proxy
git checkout -b feature/new-feature
git add .
git commit -m "Add new feature"
git push origin feature/new-feature
MCP-Proxy 项目遵循 MIT 许可证。请查看 LICENSE 文件以获取详细信息。
如果您有任何问题或建议,请随时通过以下方式联系我们:
感谢您选择 MCP-Proxy!我们期待您的反馈和建议,以帮助我们不断改进和优化该项目。