MCP-Proxy - 聚合多个 MCP 资源服务器的代理服务
项目地址: https://github.com/TBXark/mcp-proxy
项目背景
最近 MCP(Multi-Client Protocol)很火,但在实际使用中发现一些问题:
- 不聊天时 MCP server 在后台持续运行占用资源
- 每个设备都需要运行 MCP server
- 虽然可以使用第三方服务如mcp.so,但更希望自己部署
为此我开发了这个 MCP Proxy Server ,可以聚合多个 MCP 资源服务器并通过单一接口提供服务。
有一说一,就是调用github.com/mark3labs/mcp-go 。我只是一个在 copilot 下按 tab 的工具人
主要功能
- 多 MCP 客户端代理:连接多个 MCP 资源服务器并聚合其工具和能力
- SSE 支持:提供 Server-Sent Events 服务器实现实时更新
- 灵活配置:支持多种客户端类型(
stdio 和sse )和自定义设置
技术特点
- 采用 Go 语言开发
- 轻量级设计,资源占用低
- 配置驱动,易于扩展
快速开始
安装
- 克隆仓库:
git clone https://github.com/TBXark/mcp-proxy.git
cd mcp-proxy
- 构建项目:
go build -o mcp-proxy main.go
配置示例
{
"server": {
"baseURL": "http://localhost:8080",
"addr": ":8080",
"name": "MCP Proxy",
"version": "1.0.0"
},
"clients": {
"fetch": {
"type": "stdio",
"config": {
"command": "uvx",
"env": {},
"args": ["mcp-server-fetch"]
}
},
"amap": {
"type": "sse",
"config": {
"url": "https://router.mcp.so/sse/xxxxx"
}
}
}
}
运行
./mcp-proxy -config path/to/config.json
然后就可以用过 http://localhost:8080/fetch/sse 调用 fetch 的服务
致谢
本项目部分灵感来源于adamwattis/mcp-proxy-server、
|