使用说明

项目简介

MCP Hub Server 是一个中心枢纽,用于连接和管理多个独立的 MCP 服务器。通过它,LLM 客户端可以访问汇总后的所有工具,有效突破单个客户端工具数量的限制。此外,它还可以帮助用户组织和管理分散的工具,按需暴露工具给 LLM,降低潜在的误用风险。

主要功能点

  • 连接和管理多个 MCP 服务器: 允许用户配置并自动连接到多个 MCP 服务器。
  • 统一工具列表: 提供 'list-all-tools' 工具,汇总展示所有已连接 MCP 服务器提供的工具。
  • 工具调用转发: 提供 'call-tool' 工具,允许用户指定服务器和工具名称,调用来自其他 MCP 服务器的工具。
  • 配置灵活: 支持通过配置文件、环境变量或命令行参数指定 MCP 服务器连接信息。

安装步骤

  1. 克隆仓库
    git clone https://github.com/warpdev/mcp-hub-mcp
    cd mcp-hub-mcp
  2. 安装依赖
    npm install
    或者使用 yarn 或 pnpm:
    yarn install
    pnpm install
  3. 构建项目
    npm run build
    或者使用 yarn 或 pnpm:
    yarn build
    pnpm build
  4. 运行服务器
    npm start
    或者使用 yarn 或 pnpm:
    yarn start
    开发模式运行:
    npm run dev

服务器配置

MCP Hub Server 的配置文件用于指定需要连接的其他 MCP 服务器。你需要创建一个 'mcp-config.json' 文件,或者通过环境变量 'MCP_CONFIG_PATH' 或命令行参数 '--config-path' 指定配置文件路径。

配置文件 'mcp-config.json' 格式如下:

{
  "mcpServers": {
    "serverName1": {
      "command": "command",  // 启动目标 MCP 服务器的命令
      "args": ["arg1", "arg2", ...], // 启动命令的参数 (可选)
      "env": { "ENV_VAR1": "value1", ... } // 环境变量 (可选)
    },
    "serverName2": {
      "command": "anotherCommand",
      "args": ["arg1", "arg2", ...]
    }
  }
}

配置示例: 连接两个 MCP 服务器

{
  "mcpServers": {
    "filesystem": {  // 服务器名称,自定义
      "command": "npx", // 使用 npx 启动
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem", // 文件系统 MCP 服务器
        "/Users/username/Desktop", // 文件系统访问路径
        "/Users/username/Downloads" // 文件系统访问路径
      ]
    },
    "other-server": { // 服务器名称,自定义
      "command": "node", // 使用 node 启动
      "args": ["path/to/other-mcp-server.js"] // 其他 MCP 服务器的启动脚本路径
    }
  }
}

MCP 客户端配置 (例如 Cursor):

要让 MCP 客户端连接到 MCP Hub Server,需要在客户端的 'mcp.json' 配置文件中添加如下配置。这里的 'command' 和 'args' 是用于启动 MCP Hub Server 的命令。

{
  "mcpServers": {
    "hub-server": { // 服务器名称,自定义
      "command": "npx", // 使用 npx 启动
      "args": [
        "-y",
        "mcp-hub-mcp", // 启动 MCP Hub Server
        "--config-path", // 指定 MCP Hub Server 的配置文件路径
        "/Users/username/mcp-config.json" // MCP Hub Server 的配置文件路径
      ]
    }
  }
}

注意: '/Users/username/mcp-config.json' 是 MCP Hub Server 用来连接其他 MCP 服务器的配置文件,而不是 MCP 客户端自身的配置文件。

基本使用方法

  1. 启动 MCP Hub Server 并确保已正确配置 'mcp-config.json' 文件,使其能够连接到其他 MCP 服务器。
  2. 在 MCP 客户端 (如 Cursor) 中配置连接到 MCP Hub Server,配置示例见上方 MCP 客户端配置 部分。
  3. 在 LLM 中使用 'list-all-tools' 工具。指示 LLM 首先调用 'list-all-tools' 工具,获取所有可用工具的列表。客户端发送的 JSON-RPC 请求示例如下:
    {
      "name": "list-all-tools",
      "arguments": {}
    }
    MCP Hub Server 将返回包含所有已连接服务器工具信息的 JSON 响应。
  4. 使用 'call-tool' 工具调用特定服务器的工具。 当需要调用特定工具时,使用 'call-tool' 工具,并指定 'serverName' (目标服务器名称), 'toolName' (工具名称) 和 'toolArgs' (工具参数)。客户端发送的 JSON-RPC 请求示例如下:
    {
      "name": "call-tool",
      "arguments": {
        "serverName": "filesystem", // 要调用工具的服务器名称 (配置文件中定义的)
        "toolName": "readFile",   // 要调用的工具名称
        "toolArgs": {             // 工具参数
          "path": "/Users/username/Desktop/example.txt"
        }
      }
    }
    MCP Hub Server 将转发请求到指定的 MCP 服务器并返回工具执行结果。

信息

分类

AI与计算