MCP Hub 使用说明

项目简介

MCP Hub 是一个用于集中管理多个 Model Context Protocol (MCP) 服务器的工具。它作为一个中心服务器,连接并监控多个独立的 MCP 服务器,为客户端提供统一的 REST API 接口来访问这些 MCP 服务器的功能,例如工具执行和资源访问。MCP Hub 负责服务器的生命周期管理、健康监控、客户端连接管理以及请求路由,简化了客户端与多个 MCP 服务器交互的复杂性。

主要功能点

  • 动态 MCP 服务器管理和监控: 集中管理和监控多个 MCP 服务器的运行状态。
  • REST API: 提供统一的 REST API 接口,用于客户端执行工具和访问资源。
  • 实时服务器状态跟踪: 通过 Server-Sent Events (SSE) 提供服务器状态的实时更新。
  • 客户端连接管理: 管理客户端的注册和连接。
  • 进程生命周期处理: 负责管理和控制所管理的 MCP 服务器进程的生命周期。

安装步骤

  1. 确保你的系统已安装 Node.js (>= 18.0.0) 和 npm (>= 9.0.0)。

  2. 打开终端,运行以下命令全局安装 MCP Hub:

    npm install -g mcp-hub

服务器配置

MCP Hub 通过 JSON 配置文件 'config.json' 来定义和管理 MCP 服务器。你需要在配置文件中指定要管理的 MCP 服务器的启动命令和参数。

以下是一个 'config.json' 示例:

{
  "mcpServers": {
    "example-server": {  // 服务器名称,可以自定义
      "command": "npx example-mcp-server", // MCP 服务器的启动命令,例如 Node.js 服务器的启动命令
      "args": ["--config", "server-config.json"], // 启动命令的参数,以数组形式提供
      "env": { // (可选) 环境变量,以键值对形式提供
        "API_KEY": "your-api-key"
      },
      "disabled": false // (可选) 是否禁用此服务器,默认为 false。设置为 true 时,MCP Hub 将不会启动和管理此服务器
    },
    "another-server": { // 可以配置多个 MCP 服务器
      "command": "python another_mcp_server.py",
      "args": [],
      "disabled": true
    }
  }
}

配置参数说明:

  • 'mcpServers': 一个 JSON 对象,包含了所有要管理的 MCP 服务器的配置信息。
  • '服务器名称': 'mcpServers' 对象的键名,用于唯一标识一个 MCP 服务器,可以自定义。
  • 'command': 必需。启动 MCP 服务器的命令。这通常是执行服务器代码的命令,例如 'node server.js' 或 'python server.py'。
  • 'args': 可选。启动命令的参数,以字符串数组形式提供。例如,如果你的 MCP 服务器需要配置文件路径作为参数,可以在这里指定 '["--config", "server-config.json"]'。
  • 'env': 可选。服务器进程运行时的环境变量,以 JSON 对象形式提供。例如,你可以设置 'API_KEY' 或 'PORT' 等环境变量。
  • 'disabled': 可选。布尔值,默认为 'false'。如果设置为 'true',MCP Hub 将不会启动和管理此服务器。你可以使用此选项暂时禁用某个服务器,而无需从配置中删除它。

请根据你的 MCP 服务器的实际情况,修改 'command' 和 'args' 字段。确保 'command' 是可以执行的命令,并且 'args' 是服务器启动所需的参数。

基本使用方法

  1. 创建一个 'config.json' 文件,并根据你的 MCP 服务器配置进行编辑。

  2. 打开终端,使用以下命令启动 MCP Hub 服务器:

    mcp-hub --port 3000 --config path/to/config.json
    • '--port': 指定 MCP Hub 服务器监听的端口号,默认为 '3000'。
    • '--config': 指定 'config.json' 配置文件的路径。
  3. MCP Hub 启动后,你就可以使用 MCP 客户端通过 MCP Hub 提供的 REST API 接口来访问和操作你配置的 MCP 服务器。

常用 API 示例:

  • 获取所有 MCP 服务器状态:

    GET http://localhost:3000/api/servers
  • 执行指定服务器上的工具:

    POST http://localhost:3000/api/servers/example-server/tools
    Content-Type: application/json
    
    {
      "tool": "tool_name",
      "arguments": {
        "param1": "value1"
      }
    }
  • 访问指定服务器上的资源:

    POST http://localhost:3000/api/servers/example-server/resources
    Content-Type: application/json
    
    {
      "uri": "resource://your-resource-uri"
    }
  • 订阅服务器事件 (SSE):

    客户端可以连接到 '/api/events' 路径以接收服务器状态的实时更新,例如服务器连接状态、客户端连接状态、工具列表和资源列表的更改等。

更多 API 详情请参考仓库的 README 文档。

信息

分类

开发者工具