使用说明
项目简介
MCP Proxy Server 是一个MCP协议的代理服务器,它可以连接到多个实现了MCP协议的资源服务器(例如数据源、工具服务等),并将它们的能力聚合起来,通过单一的HTTP服务器对外提供服务。对于LLM客户端来说,只需要连接到这个代理服务器,就可以访问到所有被代理的资源服务器提供的功能,简化了客户端的配置和管理。
主要功能点
- 聚合多路MCP客户端: 可以同时连接和管理多个不同的MCP资源服务器。
- SSE支持: 通过Server-Sent Events (SSE) 提供实时的更新推送服务。
- 灵活配置: 支持多种类型的MCP客户端连接方式,例如 'stdio' (标准输入输出) 和 'sse' (SSE连接)。
安装步骤
方法一:从源码构建
- 确保已安装 Go 语言环境。
- 克隆仓库到本地:
git clone https://github.com/TBXark/mcp-proxy.git cd mcp-proxy - 编译程序:
go build -o mcp-proxy main.go
方法二:使用 'go install' 安装
go install github.com/TBXark/mcp-proxy@latest
安装完成后,'mcp-proxy' 可执行文件通常会位于 '$GOPATH/bin' 或 '$HOME/go/bin' 目录下。
方法三:使用 Docker
- 确保已安装 Docker。
- 拉取 Docker 镜像并运行:
请将 '/path/to/config.json' 替换为你本地配置文件 'config.json' 的路径。docker run -d -p 8080:8080 -v /path/to/config.json:/config/config.json ghcr.io/tbxark/mcp-proxy:latest
服务器配置
MCP Proxy Server 通过 JSON 配置文件 'config.json' 进行配置。以下是一个配置示例,你需要根据实际情况修改:
{ "server": { "baseURL": "http://localhost:8080", // SSE服务器的基础URL,客户端连接SSE时会用到 "addr": ":8080", // 服务器监听地址和端口 "name": "MCP Proxy", // 服务器名称,用于标识 "version": "1.0.0" // 服务器版本 }, "clients": { "fetch": { // 客户端名称,可以自定义,用于URL路径 "type": "stdio", // 客户端类型,这里是 stdio,表示通过标准输入输出与MCP服务器通信 "config": { "command": "uvx", // 启动 MCP 服务器的命令,例如 uvx, npx 等 "env": {}, // 环境变量,如果需要可以设置 "args": ["mcp-server-fetch"] // 传递给 MCP 服务器的命令行参数,例如这里启动的是名为 mcp-server-fetch 的 MCP 服务器 } }, "amap": { // 另一个客户端配置 "type": "sse", // 客户端类型,这里是 sse,表示通过 SSE 连接到远程 MCP 服务器 "config": { "url": "https://router.mcp.so/sse/xxxxx" // 远程 MCP 服务器的 SSE 地址 } } } }
配置说明:
-
'server': 配置 MCP Proxy Server 自身的信息。
- 'baseURL': 代理服务器的根URL,用于SSE连接。
- 'addr': 代理服务器监听的地址和端口。
- 'name': 代理服务器的名称。
- 'version': 代理服务器的版本。
-
'clients': 配置需要代理的 MCP 资源服务器。可以配置多个客户端,每个客户端配置项的键名(例如 'fetch', 'amap')将作为访问路径的一部分。
- 'type': 客户端类型,支持 'stdio' 和 'sse'。
- 'stdio': 通过标准输入输出与本地或可通过命令启动的 MCP 服务器通信。
- 'command': 启动 MCP 服务器的命令。
- 'args': 传递给 'command' 的命令行参数。
- 'env': 环境变量 (可选)。
- 'sse': 连接到远程 SSE MCP 服务器。
- 'url': 远程 MCP 服务器的 SSE 地址。
- 'stdio': 通过标准输入输出与本地或可通过命令启动的 MCP 服务器通信。
- 'config': 根据 'type' 类型的不同,配置也不同,详细见上面的配置示例。
- 'type': 客户端类型,支持 'stdio' 和 'sse'。
基本使用方法
-
启动 MCP Proxy Server:
- 如果从源码或 'go install' 安装,在命令行中执行:
或者./mcp-proxy --config config.json
如果使用 Docker,启动命令已在安装步骤中给出。mcp-proxy --config config.json
- 如果从源码或 'go install' 安装,在命令行中执行:
-
访问代理的 MCP 服务:
- 假设 MCP Proxy Server 运行在 'http://localhost:8080',并且配置文件中定义了一个名为 'fetch' 的 'stdio' 客户端。
- LLM 客户端可以通过访问 'http://localhost:8080/fetch/sse' 这个SSE地址来连接到被代理的 'fetch' MCP 服务器。
- 如果定义了 'amap' 客户端,则可以通过 'http://localhost:8080/amap/sse' 访问。
-
安全性提示: 如果担心URL泄露,可以将 'clients' 配置中的客户端名称(例如 'fetch', 'amap')改为随机字符串,然后通过 '/随机字符串/sse' 的方式访问。
总结: MCP Proxy Server 作为一个中间层,简化了 LLM 客户端与多个 MCP 资源服务器交互的复杂性,提供了一个统一的入口和管理界面。你只需要配置好 'config.json' 文件,启动代理服务器,LLM 客户端即可通过代理服务器访问所有配置的 MCP 资源服务。
信息
分类
网页与API