MCP-Proxy 使用手册
安装说明
通过以下命令安装 mcp-proxy 工具:
python -m pip install --user mcpy
然后将 mcpy
脚本添加到您的 PATH 环境变量中,以便在终端中直接使用。
验证安装
安装完成后,在终端运行以下命令验证是否安装成功:
mcp-proxy --version
快速上手指南
通过 SSE 模式运行代理
若要通过 SSE(Server-Sent Events)模式运行 mcp-proxy,请按照以下步骤操作:
-
启动一个本地服务器:
mcp-proxy --mode sse --port 8096 uvx mcp-server-fetch &> server.log &
-
在另一个终端窗口中,启动代理以连接到 SSE 服务器:
mcp-proxy http://localhost:8096/sse
-
按下 Ctrl+C
组合键停止代理。
通过 Stdio 模式运行代理
若要通过 Stdio 模式运行 mcp-proxy,请按照以下步骤操作:
-
启动一个本地服务器:
mcp-proxy --mode stdio --port 8096 uvx mcp-server-fetch &> server.log &
-
在另一个终端窗口中,启动代理以连接到 Stdio 服务器:
mcp-proxy http://localhost:8096/stdio
-
按下 Ctrl+C
组合键停止代理。
配置说明
JSON 配置文件格式
以下是完整的 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... 要传递给命令的额外参数
高级功能
Docker 集成
以下是 MCP-Proxy 的 Docker 使用指南:
创建 Docker 镜像
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["mcp-proxy"]
运行 Docker 容器
docker build -t mcp-proxy .
docker run -it mcp-proxy
代理链配置
以下是 MCP-Proxy 支持的代理链配置示例:
mcp-proxy --mode sse --port 8096 uvx mcp-server-fetch
mcp-proxy --mode sse --port 8096 "uvx mcp-server-fetch"
高可用性配置
以下是 MCP-Proxy 的高可用性配置示例:
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
错误处理
常见错误及解决方案
错误:无法绑定到指定端口
- 问题描述:提示信息显示代理服务器无法绑定到指定的端口。
- 可能原因:
- 端口已被其他进程占用
- 没有权限绑定到高privileged端口(<1024)
- 解决方法:
- 检查并释放被占用的端口
- 使用具有足够权限的用户运行代理
错误:无法连接到目标服务器
- 问题描述:提示信息显示代理无法连接到目标服务器。
- 可能原因:
- 解决方法:
- 检查目标服务器是否正常运行
- 确保网络连接正常
- 核对配置文件是否正确
教程
使用 MCP-Proxy 实现 API 网关
以下是使用 MCP-Proxy 实现一个简单的 API 网关的教程:
-
安装依赖:
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 代理到网关:
mcp-proxy --mode sse --port 8096 gateway:8095
-
测试 API 调用:
curl http://localhost:8096/api
参考文档
命令行选项
以下是 MCP-Proxy 支持的完整命令行选项列表:
选项 |
描述 |
示例值 |
--help |
显示帮助信息并退出 |
无 |
--version |
显示当前版本号并退出 |
无 |
--mode {sse,stdio} |
设置代理模式,可选值为 sse 或 stdio |
sse |
--port PORT |
设置代理服务器的监听端口 |
8096 |
--host HOST |
设置代理服务器的绑定地址 |
localhost |
--pass-environment |
是否传递所有环境变量到子进程 |
true |
--debug |
启用调试模式 |
无 |
配置文件
以下是 MCP-Proxy 支持的配置文件格式:
[proxy]
mode = sse
port = 8096
host = localhost
[target]
command = uvx mcp-server-fetch
args =
environment = true
环境变量
以下是 MCP-Proxy 支持的环境变量列表:
变量名 |
描述 |
示例值 |
MCP_MODE |
设置代理模式,可选值为 sse 或 stdio |
sse |
MCP_PORT |
设置代理服务器的监听端口 |
8096 |
MCP_HOST |
设置代理服务器的绑定地址 |
localhost |
MCP_PASS_ENVIRONMENT |
是否传递所有环境变量到子进程 |
true |
社区
论坛和讨论组
- [GitHub 问题跟踪]:https://github.com/your-org/mcp-proxy/issues
- [Reddit 讨论区]:https://www.reddit.com/r/mcpproxy/
- [Stack Overflow 标签]:mcp-proxy
贡献指南
-
Fork 项目仓库:
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
-
提交 Pull Request 到主仓库。
开发团队
许可证
MCP-Proxy 项目遵循 MIT 许可证。请查看 LICENSE 文件以获取详细信息。
联系方式
作者信息
- 姓名:John Doe
- 邮箱:john.doe@example.com
- GitHub:https://github.com/johndoe
支持与反馈
如果您有任何问题或建议,请随时通过以下方式联系我们:
感谢您选择 MCP-Proxy!我们期待您的反馈和建议,以帮助我们不断改进和优化该项目。
MCP-Proxy 用户指南
MCP-Proxy 是一个功能强大的代理服务器工具,支持多种协议和高级功能。以下是使用 MCP-Proxy 的详细指南。
1. 安装与配置
1.1 安装 MCP-Proxy
您可以从 GitHub 下载 MCP-Proxy 或通过以下命令安装:
pip install mcpy
1.2 配置 MCP-Proxy
创建一个配置文件 mcp-config.ini
,并添加以下内容:
[proxy]
mode = sse
port = 8096
host = localhost
[target]
command = uvx mcp-server-fetch
args =
environment = true
2. 使用 MCP-Proxy
2.1 基本用法
启动代理服务器:
mcp-proxy --mode sse --port 8096 uvx mcp-server-fetch
2.2 高级功能
负载均衡
使用负载均衡模式:
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
3. 配置与自定义
3.1 使用配置文件
编辑 mcp-config.ini
文件以自定义代理行为:
[proxy]
mode = stdio
port = 8095
host = 0.0.0.0
[target]
command = myscript.sh
args = --verbose
environment = false
3.2 使用环境变量
通过设置环境变量来配置 MCP-Proxy:
MCP_MODE=stdio MCPPORT=8095 mcp-proxy -- myscript.sh --verbose
4. 常见问题与故障排除
4.1 代理服务器无法启动
检查端口是否已被占用或权限问题。
4.2 目标命令未执行
确保目标命令路径正确且有可执行权限。
5. 进阶主题
5.1 自定义协议处理
扩展 MCP-Proxy 来支持自定义协议。
5.2 高可用性配置
部署多节点集群以实现高可用性。
6. 贡献与社区
参与 GitHub 上的开发,为项目贡献力量。
感谢使用 MCP-Proxy!如需更多帮助,请参考我们的 开发者文档 或联系支持团队。