V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
tbxark
V2EX  ›  分享创造

MCP-Proxy - 聚合多个 MCP 资源服务器的代理服务

  •  1
     
  •   tbxark ·
    tbxark · 3 天前 · 941 次点击

    项目地址: 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

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3637 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:57 · PVG 08:57 · LAX 17:57 · JFK 20:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.