Skip to main content
Glama
B3i4hu

Hot-MCPManager

by B3i4hu

English

MCP Manager

MCP 统一中继管理工具 — 将多个下游 MCP 聚合为单一入口,支持热插拔、多协议、Web 与 CLI 双模管理

功能

  • 多协议接入 — 支持 stdio、SSE、Streamable HTTP 三种 MCP 传输协议

  • 统一中继 — 将多个下游 MCP 聚合为一个 MCP Server,外部客户端只需连接一个端点

  • 热插拔 — 添加/删除/启用/禁用 MCP 资源即时生效,无需重启

  • 工具过滤 — 支持按正则表达式屏蔽或允许特定工具,可精确到单个函数

  • 访问控制 — Web 管理界面需要 JWT 登录认证

  • 调用日志 — 记录所有工具调用的来源、参数、结果和耗时,支持搜索和过滤

  • 自动发现 — 接入 MCP 后自动获取工具列表,支持手动刷新同步上游变更

Related MCP server: mcp-unify

快速开始

# 安装依赖
npm install

# 构建
npm run build

# 启动(Web 管理界面 + 统一 MCP 中继)
npm start

启动后:

  • Web 管理界面:http://localhost:3100(默认用户名/密码:admin / admin123

  • 统一 MCP 端点:http://localhost:3101/mcp(HTTP 模式)

架构

外部 MCP 客户端 (Claude Desktop / MCP Inspector)
         │
         ▼
  ┌─────────────────┐
  │ Unified MCP     │  ← 统一中继(对外暴露 relay_* 管理工具)
  │ Server :3101    │
  └────────┬────────┘
           │
  ┌────────▼────────┐
  │ MCP Manager     │  ← 工具路由 + 访问控制 + 日志
  │ + Tool Router   │
  └────────┬────────┘
           │
  ┌────────▼────────┐
  │ Protocol        │  ← stdio / SSE / HTTP 适配器
  │ Adapters        │
  └────────┬────────┘
           │
  ┌────────▼────────┐
  │ 下游 MCP        │
  │ Servers         │
  └─────────────────┘

项目结构

MCPManager/
├── src/
│   ├── index.ts              # 主入口
│   ├── types.ts              # TypeScript 类型定义
│   ├── storage.ts            # JSON 配置持久化
│   ├── relay.ts              # 独立中继入口
│   ├── core/
│   │   ├── manager.ts        # MCP 连接管理器
│   │   ├── tool-router.ts    # 工具路由表
│   │   └── logger.ts         # 调用日志引擎
│   ├── protocols/
│   │   ├── stdio.ts          # Stdio 传输适配器
│   │   ├── sse.ts            # SSE 传输适配器
│   │   └── http.ts           # Streamable HTTP 适配器
│   ├── server/
│   │   └── unified-server.ts # 统一 MCP 中继服务
│   ├── web/
│   │   ├── index.ts          # Express 管理服务
│   │   ├── auth.ts           # JWT 认证
│   │   └── routes.ts         # 管理 API 路由
│   └── cli/
│       └── index.ts          # Commander CLI
├── public/
│   ├── index.html            # Web 前端
│   ├── style.css             # 样式
│   └── app.js                # 前端逻辑
└── data/
    ├── config.json           # 持久化配置
    └── tool-calls.jsonl      # 调用日志

CLI 命令

# 添加 MCP 资源
mcpmanager add <name> --protocol stdio --command "node" --args "server.js"
mcpmanager add <name> --protocol http --url "http://host:port/mcp"
mcpmanager add <name> --protocol sse --url "http://host:port/sse"

# 列出所有 MCP
mcpmanager list

# 启用/禁用 MCP
mcpmanager enable <id>
mcpmanager disable <id>

# 删除 MCP
mcpmanager remove <id>

# 查看工具列表
mcpmanager tools [id]

# 屏蔽工具(正则匹配)
mcpmanager block <id> --pattern "debug_.*"

# 移除屏蔽
mcpmanager unblock <id> --pattern "debug_.*"

# 启动服务
mcpmanager start --port 3100 --relay-port 3101

管理 API

所有 /api/* 路径需要 Authorization: Bearer <token> 请求头。

方法

路径

说明

POST

/api/auth/login

登录获取 token

PUT

/api/auth/password

修改登录密码

GET

/api/mcps

列出所有 MCP 资源

POST

/api/mcps

添加 MCP 资源

DELETE

/api/mcps/:id

删除 MCP 资源

POST

/api/mcps/:id/toggle

启用/禁用 MCP

GET

/api/mcps/:id/tools

查看 MCP 工具列表

POST

/api/mcps/:id/refresh

刷新 MCP 工具列表

PUT

/api/mcps/:id/tools/toggle

批量禁用/启用工具

PUT

/api/mcps/:id/filter

更新工具过滤规则

GET

/api/relay

中继状态与管理工具

PUT

/api/relay/config

更新中继配置

POST

/api/relay/start

启动中继

POST

/api/relay/stop

停止中继

GET

/api/logs

查询调用日志

POST

/api/logs/clear

清空日志

GET

/api/logs/config

获取日志配置

PUT

/api/logs/config

更新日志配置

统一中继管理工具

对外暴露的 MCP Server 提供以下管理接口(所有以 relay_ 为前缀):

工具名

说明

relay_list_mcps

列出所有已启用的下游 MCP

relay_add_mcp

动态接入下游 MCP

relay_remove_mcp

删除下游 MCP

relay_enable_mcp

启用下游 MCP

relay_disable_mcp

禁用下游 MCP

relay_refresh_tools

刷新工具列表

relay_list_tools

列出指定 MCP 的可用工具

relay_use_tool

调用下游 MCP 的工具

配置持久化

所有配置存储在 data/config.json,包含 MCP 资源列表、中继设置、认证信息和日志配置。程序启动时自动加载,配置变更即时写入。

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Aggregates multiple MCP servers behind a single, secure endpoint with unified tool/resource discovery, OAuth authentication, and resilient request routing. Enables users to manage and interact with multiple MCP backends through one centralized interface with load balancing and circuit breakers.
    2
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Unifies multiple MCP servers behind a single endpoint with lazy loading, auto-cleanup, Python plugins, and role-based filtering.
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Aggregates multiple MCP servers into a single HTTP endpoint with tool namespacing, dashboard, and REST API for management.
    13 npm
    MIT