Mcp Proxy

Mcp Proxy

🚀 MCP-Proxy 使用手册

MCP-Proxy 是一款功能强大的代理服务器工具,支持多种协议和高级功能,能满足不同场景下的代理需求。

🚀 快速开始

安装 MCP-Proxy

通过以下命令安装 mcp-proxy 工具:

python -m pip install --user mcpy

然后将 mcpy 脚本添加到您的 PATH 环境变量中,以便在终端中直接使用。

验证安装

安装完成后,在终端运行以下命令验证是否安装成功:

mcp-proxy --version

运行代理

SSE 模式

若要通过 SSE(Server-Sent Events)模式运行 mcp-proxy,请按照以下步骤操作:

  1. 启动一个本地服务器:
mcp-proxy --mode sse --port 8096 uvx mcp-server-fetch &> server.log &
  1. 在另一个终端窗口中,启动代理以连接到 SSE 服务器:
mcp-proxy http://localhost:8096/sse
  1. 按下 Ctrl+C 组合键停止代理。

Stdio 模式

若要通过 Stdio 模式运行 mcp-proxy,请按照以下步骤操作:

  1. 启动一个本地服务器:
mcp-proxy --mode stdio --port 8096 uvx mcp-server-fetch &> server.log &
  1. 在另一个终端窗口中,启动代理以连接到 Stdio 服务器:
mcp-proxy http://localhost:8096/stdio
  1. 按下 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

📚 详细文档

配置说明

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 设置代理模式,可选值为 ssestdio 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 集成

创建 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 --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

错误处理

常见错误及解决方案

错误:无法绑定到指定端口
  • 问题描述:提示信息显示代理服务器无法绑定到指定的端口。
  • 可能原因
    • 端口已被其他进程占用
    • 没有权限绑定到高privileged端口(<1024)
  • 解决方法
    • 检查并释放被占用的端口
    • 使用具有足够权限的用户运行代理
错误:无法连接到目标服务器
  • 问题描述:提示信息显示代理无法连接到目标服务器。
  • 可能原因
    • 目标服务器未运行
    • 网络连接不可用
    • 配置错误
  • 解决方法
    • 检查目标服务器是否正常运行
    • 确保网络连接正常
    • 核对配置文件是否正确

教程

使用 MCP-Proxy 实现 API 网关

  1. 安装依赖:
pip install mcpy requests
  1. 创建网关逻辑代码 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)
  1. 启动网关服务:
python gateway.py
  1. 配置 MCP-Proxy 代理到网关:
mcp-proxy --mode sse --port 8096 gateway:8095
  1. 测试 API 调用:
curl http://localhost:8096/api

参考文档

命令行选项

选项 描述 示例值
--help 显示帮助信息并退出
--version 显示当前版本号并退出
--mode {sse,stdio} 设置代理模式,可选值为 ssestdio 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 设置代理模式,可选值为 ssestdio 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

贡献指南

  1. Fork 项目仓库:
git clone https://github.com/your-org/mcp-proxy.git
cd mcp-proxy
  1. 创建功能分支:
git checkout -b feature/new-feature
  1. 提交更改:
git add .
git commit -m "Add new feature"
git push origin feature/new-feature
  1. 提交 Pull Request 到主仓库。

开发团队

  • 核心开发人员
    • John Doe john.doe@example.com
    • Jane Smith jane.smith@example.com
  • 贡献者
    • Alice Brown alice.brown@example.com
    • Bob Wilson bob.wilson@example.com

📄 许可证

MCP-Proxy 项目遵循 MIT 许可证。请查看 LICENSE 文件以获取详细信息。

📞 联系方式

作者信息

  • 姓名:John Doe
  • 邮箱:john.doe@example.com
  • GitHub:https://github.com/johndoe

支持与反馈

如果您有任何问题或建议,请随时通过以下方式联系我们:

感谢您选择 MCP-Proxy!我们期待您的反馈和建议,以帮助我们不断改进和优化该项目。

  • 0 关注
  • 0 收藏,20 浏览
  • system 提出于 2025-09-18 04:42

相似服务问题

相关AI产品