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 服务器实现实时更新
  • 灵活配置:支持多种客户端类型(stdiosse)和自定义设置

技术特点

  • 采用 Go 语言开发
  • 轻量级设计,资源占用低
  • 配置驱动,易于扩展

快速开始

安装

  1. 克隆仓库:
git clone https://github.com/TBXark/mcp-proxy.git
cd mcp-proxy
  1. 构建项目:
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

举报· 104 次点击
登录 注册 站外分享
快来抢沙发
0 条回复  
返回顶部