Hot-MCPManager

Hot-MCPManager

Aggregates multiple MCP servers into a single unified endpoint with hot-plugging, multi-protocol support, and management via web and CLI.

Category
访问服务器

README

English

MCP Manager

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

功能

  • 多协议接入 — 支持 stdio、SSE、Streamable HTTP 三种 MCP 传输协议
  • 统一中继 — 将多个下游 MCP 聚合为一个 MCP Server,外部客户端只需连接一个端点
  • 热插拔 — 添加/删除/启用/禁用 MCP 资源即时生效,无需重启
  • 工具过滤 — 支持按正则表达式屏蔽或允许特定工具,可精确到单个函数
  • 访问控制 — Web 管理界面需要 JWT 登录认证
  • 调用日志 — 记录所有工具调用的来源、参数、结果和耗时,支持搜索和过滤
  • 自动发现 — 接入 MCP 后自动获取工具列表,支持手动刷新同步上游变更

快速开始

# 安装依赖
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 资源列表、中继设置、认证信息和日志配置。程序启动时自动加载,配置变更即时写入。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选