使用说明

项目简介

MCP Proxy Server 是一个 MCP 代理服务器,它可以连接并聚合多个 MCP 资源服务器,对外提供一个统一的接口。客户端通过这个代理服务器可以访问和管理来自多个后端 MCP 服务器的资源、工具和 Prompt。

主要功能点

  • 资源管理: 发现并连接到多个 MCP 资源服务器,汇总来自所有服务器的资源,并维护统一的资源 URI 方案。
  • 工具聚合: 汇总来自所有连接服务器的工具,并将工具调用路由到相应的后端服务器。
  • Prompt 处理: 汇总来自所有连接服务器的 Prompt,并将 Prompt 请求路由到相应的后端服务器。

安装步骤

  1. 确保已安装 Node.js 和 npm。
  2. 克隆仓库到本地:
    git clone https://github.com/adamwattis/mcp-proxy-server.git
  3. 进入仓库目录:
    cd mcp-proxy-server
  4. 安装依赖:
    npm install
  5. 构建项目:
    npm run build

服务器配置

MCP 代理服务器需要一个 'config.json' 配置文件来指定要连接的后端 MCP 服务器。 复制 'config.example.json' 为 'config.json' 并根据需要修改。

{
  "servers": [
    {
      "name": "Server 1", // 服务器名称,自定义,用于标识不同的后端服务器
      "transport": {
        "command": "/path/to/server1/build/index.js" // 后端 MCP 服务器的启动命令 (stdio 传输方式)
      }
    },
    {
      "name": "Server 2", // 服务器名称,自定义,用于标识不同的后端服务器
      "transport": {
        "command": "server2-command", // 后端 MCP 服务器的启动命令 (stdio 传输方式)
        "args": ["--option1", "value1"], // 启动参数 (stdio 传输方式), 传递给后端服务器的参数
        "env": ["SECRET_API_KEY"] // 环境变量 (stdio 传输方式), 需要传递给后端服务器的环境变量名称
      }
    },
    {
      "name": "Example Server 3", // 服务器名称,自定义,用于标识不同的后端服务器
      "transport": {
        "type": "sse", // 使用 SSE 传输
        "url": "http://localhost:8080/sse" // 后端 MCP 服务器的 SSE 地址 (sse 传输方式)
      }
    }
  ]
}

基本使用方法

  1. 配置 'config.json' 文件,指定要代理的后端 MCP 服务器。
  2. 启动 MCP 代理服务器 (stdio 传输方式):
    MCP_CONFIG_PATH=./config.json npm run dev
  3. 启动 MCP 代理服务器 (SSE 传输方式):
    MCP_CONFIG_PATH=./config.json npm run dev:sse
  4. 在 MCP 客户端中,将 MCP 服务器地址配置为 MCP 代理服务器的地址。对于 stdio 传输,客户端需要配置代理服务器的启动命令(例如:'node /path/to/mcp-proxy-server/build/index.js' 并设置环境变量 'MCP_CONFIG_PATH');对于 SSE 传输,客户端需要配置代理服务器的 SSE URL(默认为 'http://localhost:3006/sse')。

信息

分类

开发者工具