项目简介
MCP Gateway 是一个基于 Python 构建的中央网关应用程序。它连接并聚合来自多个后端 MCP 服务器(支持 Stdio 和 SSE 协议)所提供的能力(工具、资源、提示),最终通过一个统一的 SSE 端点向 LLM 客户端提供这些聚合后的能力。
主要功能点
- 简化客户端配置: LLM 客户端只需连接到 MCP Gateway 这一个地址,即可访问所有后端服务的功能,无需单独配置每个后端服务器。
- 能力聚合: 汇集来自不同后端 MCP 服务器提供的工具、资源和提示,将它们整合成一个统一的接口。
- 请求路由: 根据 LLM 客户端发来的请求,智能地将请求路由到相应的后端 MCP 服务器并返回结果。
- 支持多种后端协议: 能够连接通过标准输入输出(Stdio)或 Server-Sent Events (SSE) 通信的后端 MCP 服务器。
- 内置常用工具: 项目自带 Bash、CMD、PowerShell、WMI 等内置 MCP 服务器工具,开箱即用。
安装步骤
本项目使用 Python 开发,推荐使用 'uv' 工具进行环境和依赖管理。
- 克隆仓库:
打开终端或命令提示符,执行以下命令克隆项目:
git clone https://github.com/trtyr/MCP-Gateway.git cd MCP-Gateway - 创建并激活虚拟环境:
为了隔离项目依赖,创建一个 Python 虚拟环境:
# 创建虚拟环境 uv venv # 激活虚拟环境 (根据你的操作系统选择) # Linux/macOS source .venv/bin/activate # Windows (Command Prompt/PowerShell) .venv\Scripts\activate - 安装依赖:
在虚拟环境激活状态下,安装项目所需的所有依赖:
uv sync
完成以上步骤后,项目即可运行。
服务器配置
MCP Gateway 的核心配置文件是项目根目录下的 'config.json'。你需要编辑此文件来定义 Gateway 需要连接和管理的后端 MCP 服务器。
'config.json' 是一个 JSON 对象,其中每个键是你为后端服务器指定的唯一名称(这个名称将作为其能力的前缀,如 'powershell/PowerShell'),值是一个包含该后端服务器配置的 JSON 对象。
支持配置两种类型的后端服务器:
- 'stdio' 类型: 用于配置 Gateway 启动并管理其生命周期的本地 MCP 服务器进程(通过标准输入/输出通信)。
- 配置项包括:
- 'type' (必须): 固定为 '"stdio"'。
- 'command' (必须): 用于启动后端服务器进程的可执行命令(例如 'python', 'uv', 可执行文件路径)。
- 'args' (必须): 传递给 'command' 的命令行参数列表(一个字符串数组)。
- 'env' (可选): 为后端进程设置的环境变量(一个字符串键值对对象)。
- 配置项包括:
- 'sse' 类型: 用于配置 Gateway 连接到已经运行的 SSE 协议后端 MCP 服务器(本地或远程)。
- 配置项包括:
- 'type' (必须): 固定为 '"sse"'。
- 'url' (必须): 后端 MCP 服务器的 SSE 端点完整 URL (必须以 'http://' 或 'https://' 开头)。
- 'command' (可选): 如果后端是本地进程但需要 Gateway 启动,则在此指定启动命令。
- 'args' (可选, 仅当指定 'command' 时): 传递给本地启动命令的参数列表。
- 'env' (可选, 仅当指定 'command' 时): 为本地启动进程设置的环境变量。
- 配置项包括:
你可以参考仓库中提供的 'config.json' 示例来配置你要集成的后端 MCP 服务器。
基本使用方法
- 编辑配置文件: 根据你需要集成的后端 MCP 服务器,编辑 'config.json' 文件,添加或修改相应的配置条目。
- 启动 Gateway: 在项目根目录下,激活虚拟环境,然后使用 'uv run python main.py' 命令启动服务器。你可以通过命令行参数指定监听的地址 ('--host')、端口 ('--port') 和日志级别 ('--log-level')。
# 示例:监听所有地址的 9000 端口,日志级别设为 debug uv run python main.py --host 0.0.0.0 --port 9000 --log-level debug - LLM 客户端连接: Gateway 启动成功后,会显示其监听的 SSE URL(默认为 'http://<服务器IP地址>:9000/sse')。使用任何支持 MCP 协议并能连接 SSE 端点的 LLM 客户端(如 Cline, Cursor, Claude Desktop 或自定义客户端),将 Gateway 的 SSE URL 配置为连接地址即可。客户端将能发现并通过 Gateway 使用所有已配置后端服务器提供的能力。
信息
分类
AI与计算