MCP聚合服务

一个用于聚合多个MCP服务器并通过单一HTTP端点提供服务的工具,支持本地开发和部署。

  • by kira-id
  • Shell
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kira-id/mcp-hub.kira

使用说明

由Kira.id开源人工智能研究团队用心打造

这个仓库提供了一个即开即用的(程序/应用) MCP-Hub 配置方式允许您将多个MCP服务器聚合到一个HTTP端点后。

仓库布局

  • config/mcp-hub.json — 样本中心配置,通过该配置启动每个STDIO MCP服务器 npx。
  • .env.example — 环境模板;复制到 .env 并填写您的API令牌。
  • scripts/install-mcp-hub.sh — 构建打包文件的辅助工具 mcp-hub 使用npm在每台机器上安装一次CLI。

要求

  • Node.js 18 或更高版本
  • npm 9+(随 Node.js 18 一起提供)—— 包含 npx

在本地安装集线器

运行辅助脚本来从嵌入的(或供应商提供的)资源中构建并链接CLI(命令行界面) mcp-hub 来源:

./scripts/install-mcp-hub.sh

脚本正在运行 npm install 并且 npm run build 里面 ./mcp-hub然后是符号链接 /usr/local/bin/mcp-hub 到编译后的命令行界面(CLI)。

配置密钥

cp .env.example .env
# edit .env with your real tokens

在本地开发过程中,你可以保留 .env 在项目根目录下创建文件(该文件会被git忽略)或者手动导出变量。

运行集线器

加载您的机密信息,并使用提供的配置启动中心:

export $(grep -v '^#' .env | xargs) \
  && mcp-hub --port 37373 --config "$(pwd)/config/mcp-hub.json"

将MCP客户端(如Claude Desktop、Cline等)指向 http://<host>:37373/mcp。

不想全局安装二进制文件?你也可以直接运行已发布的包:

npx mcp-hub@latest --port 37373 --config "$(pwd)/config/mcp-hub.json"

要在Codex CLI配置中添加中心节点:

experimental_use_rmcp_client = true

[mcp_servers.kira]
url = "http://localhost:37373/mcp"

与……合作 config/mcp-hub.json

每个条目中的 mcpServers 使用(某工具/方法)生成一个MCP服务器 npx确保您的配置类似于以下结构:

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": [
        "@upstash/context7-mcp",
        "--api-key",
        "${env:CONTEXT7_API_KEY}"
      ]
    }
  }
}

根据需求添加或移除服务器,并在您的环境中保存API密钥,而不是将其硬编码。

认证令牌处理

  • 本地开发 — 从(某处)加载值 .env 或者在你的Shell会话中导出它们。
  • 共享主机 — 更倾向于使用密钥管理工具(如1Password、AWS SSM、Doppler等),并引用它们 ${cmd:...} 在配置中,如果你不希望将令牌保存在磁盘上。
  • 按用户访问 — 设定 MCP_HUB_ENV 在启动中心之前,注入的值对每个用户来说都是独立的:
    MCP_HUB_ENV='{"CONTEXT7_API_KEY":"...","UNSPLASH_ACCESS_KEY":"..."}' \
      mcp-hub --port 37373 --config /path/to/config/mcp-hub.json
    
  • 定期轮换API密钥并重启中心(POST /api/restart 或者重启进程以获取新值。

部署思路

  • Systemd 服务 (Linux)
    1. 创建一个专用用户(例如。 mcp) 拥有项目目录并 .env 文件。
    2. 部署一个单位在 /etc/systemd/system/mcp-hub.service:
       [Unit]
       Description=MCP Hub
       After=network.target
      
       [Service]
       Type=simple
       EnvironmentFile=/home/mcp/projects/mcp-hub.kira/.env
       ExecStart=/usr/local/bin/mcp-hub --port 37373 --config /home/mcp/projects/mcp-hub.kira/config/mcp-hub.json
       Restart=on-failure
      
       [Install]
       WantedBy=multi-user.target
      
    3. 启用并启动它: sudo systemctl enable --now mcp-hub。
  • Docker — 包裹一个最小化的Node镜像,复制配置文件,并使用Docker secrets或环境变量注入密钥。

监控该集线器 /api/health 或者SSE流在 /api/events 确认所有服务器保持连接状态。