MCP Hub
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Hublist all registered servers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Hub
聚合多个 MCP 服务器,统一暴露为一个标准 MCP 接口,供其他 Agent(如 Claude Code、Cursor 等)集成。
功能特性
多 MCP 聚合:连接多个下游 MCP 服务器,将所有工具统一暴露
工具命名空间:自动前缀隔离,
server_id_tool_name格式双传输支持:同时支持 stdio 和 HTTP (Streamable HTTP) 两种传输方式
热管理:注册/启用/禁用下游服务器后自动热重载,无需重启网关
管理 API:RESTful HTTP API 管理所有下游服务器
SQLite 持久化:服务器配置持久存储,零外部依赖
自省工具:内置
gateway__list_servers和gateway__list_all_tools
Related MCP server: Agent Aggregator
安装
前提条件
Python >= 3.10
Node.js >= 16(如需运行 npm MCP 包)
安装步骤
# 克隆或进入项目目录
cd mcp_demo
# 安装(开发模式)
pip install -e .依赖
fastmcp >= 2.0 # MCP 框架
pydantic >= 2.0 # 数据模型校验
typer # CLI 命令行
uvicorn # HTTP 服务器
starlette # HTTP 管理 API
aiosqlite # SQLite 存储
httpx # HTTP 客户端快速开始
1. 注册下游 MCP 服务器
# 注册本地 Python MCP 服务器
mcp-gateway register \
--server-id math \
--display-name "Math Server" \
--command python \
--args "examples/downstream_servers/math_server.py"
# 注册天气服务器
mcp-gateway register \
--server-id weather \
--display-name "Weather Server" \
--command python \
--args "examples/downstream_servers/weather_server.py"
# 注册 bing-search(Windows 需要 cmd /c 包装)
mcp-gateway register \
--server-id bing \
--display-name "Bing Search" \
--command cmd \
--args "/c,npx,-y,bing-cn-mcp"
# 注册 HTTP 类型的 MCP 服务器
mcp-gateway register \
--server-id remote-api \
--display-name "Remote API" \
--transport http \
--url "https://api.example.com/mcp"2. 查看已注册的服务器
# 基本列表
mcp-gateway list
# 显示连接状态和工具
mcp-gateway list --status --tools
# JSON 格式输出
mcp-gateway list --json3. 启动网关
# stdio 模式(供 Claude Code 等 Agent 以子进程方式集成)
mcp-gateway serve
# HTTP 模式(供远程 Agent 连接)
mcp-gateway serve --transport http --port 8000
# 完整参数
mcp-gateway serve \
--transport http \
--host 0.0.0.0 \
--port 8000 \
--path /mcp \
--management-port 9000 \
--store gateway.dbCLI 命令参考
命令 | 说明 |
| 启动网关服务器 |
| 注册新的下游 MCP 服务器(自动通知运行中网关热重载) |
| 列出所有已注册的服务器 |
| 启用服务器(自动通知运行中网关热重载) |
| 禁用服务器(自动通知运行中网关热重载) |
| 永久移除服务器(自动通知运行中网关热重载) |
| 检查服务器健康状态 |
| 手动重载配置提示 |
| 导出服务器配置 |
| 从 JSON 文件导入配置(自动通知运行中网关热重载) |
serve 参数
参数 | 默认值 | 说明 |
|
| 传输类型: |
|
| HTTP 监听地址 |
|
| HTTP 端口 |
|
| MCP 协议的 HTTP 路径 |
|
| 管理 API 端口 |
| — | 禁用管理 API |
|
| SQLite 数据库路径 |
|
| 网关名称 |
|
| 日志级别 |
register 参数
参数 | 说明 |
| 唯一服务器标识(必填) |
| 可读名称 |
|
|
| stdio 模式的启动命令 |
| 逗号分隔的命令参数 |
| HTTP 模式的服务器 URL |
| 管理 API 端口,用于自动热重载(默认 9000) |
| 注册后不立即连接 |
| 逗号分隔的标签 |
| 存储路径 |
注意:
register、enable、disable、remove、import-config命令执行后会自动通知运行中的网关热重载(通过管理 API)。如果网关未运行,重载请求会静默失败,不影响命令执行。
HTTP 管理 API
管理 API 运行在独立端口(默认 9000)。
端点列表
GET /api/v1/servers 列出所有服务器
POST /api/v1/servers 注册新服务器
GET /api/v1/servers/{server_id} 获取服务器详情
PUT /api/v1/servers/{server_id} 更新服务器配置
DELETE /api/v1/servers/{server_id} 删除服务器
POST /api/v1/servers/{server_id}/enable 启用服务器
POST /api/v1/servers/{server_id}/disable 禁用服务器
GET /api/v1/servers/{server_id}/health 健康检查
GET /api/v1/tools 查看所有聚合工具
GET /api/v1/gateway/status 网关状态概览
POST /api/v1/gateway/reload 热重载配置
GET /api/v1/gateway/export 导出配置
POST /api/v1/gateway/import 导入配置使用示例
# 注册服务器
curl -X POST http://localhost:9000/api/v1/servers \
-H "Content-Type: application/json" \
-d '{
"server_id": "weather",
"display_name": "Weather Service",
"transport": "stdio",
"stdio_config": {"command": "python", "args": ["weather_server.py"]}
}'
# 查看所有服务器
curl http://localhost:9000/api/v1/servers
# 查看聚合工具
curl http://localhost:9000/api/v1/tools
# 查看网关状态
curl http://localhost:9000/api/v1/gateway/status
# 启用/禁用
curl -X POST http://localhost:9000/api/v1/servers/weather/enable
curl -X POST http://localhost:9000/api/v1/servers/weather/disable
# 热重载
curl -X POST http://localhost:9000/api/v1/gateway/reload供其他 Agent 集成
Claude Code 集成
在项目根目录创建 .mcp.json:
{
"mcpServers": {
"gateway": {
"command": "python",
"args": ["-m", "mcp_gateway", "serve", "--transport", "stdio"]
}
}
}或使用全局 CLI 命令:
claude mcp add gateway -s project -- python -m mcp_gateway serve --transport stdio自定义 Agent 集成
# 通过 stdio
from fastmcp import Client
from fastmcp.client.transports import StdioTransport
async with Client(StdioTransport(
command="python",
args=["-m", "mcp_gateway", "serve", "--transport", "stdio"],
)) as client:
# 列出所有工具(含命名空间前缀)
tools = await client.list_tools()
for tool in tools:
print(tool.name) # 如: math__add, weather__get_forecast
# 调用代理工具
result = await client.call_tool("math__add", {"a": 3, "b": 5})
print(result)# 通过 HTTP
from fastmcp import Client
async with Client("http://localhost:8000/mcp") as client:
tools = await client.list_tools()
result = await client.call_tool("weather__get_current", {"city": "Beijing"})
print(result)远程 Agent 集成
作为标准 MCP HTTP 服务器,任何支持 MCP Streamable HTTP 协议的 Agent 都可以连接:
{
"mcpServers": {
"gateway": {
"type": "http",
"url": "http://gateway-host:8000/mcp"
}
}
}工具命名规则
所有下游服务器的工具自动添加 server_id_ 前缀:
下游服务器 | 原始工具名 | 网关中的名称 |
math |
|
|
math |
|
|
weather |
|
|
bing |
|
|
bing |
|
|
网关自省工具使用双下划线 gateway__ 前缀(不被 mount 改写):
工具名 | 功能 |
| 列出所有服务器及连接状态 |
| 列出所有聚合的工具 |
项目架构
外部 Agent (Claude Code / Cursor / 其他)
│
┌────┴────┐
stdio HTTP (streamable-http)
└────┬────┘
▼
┌──────────────────┐
│ GatewayServer │ ← 统一的 FastMCP 实例
│ (FastMCP) │
└────┬────┬─────────┘
│ │
┌────▼─┐ ┌▼────────────┐
│Proxy │ │Management │
│Manager│ │API │
└──┬──┬─┘ └─────────────┘
│ │
┌───▼┐ ┌▼────┐
│MCP A│ │MCP B│ ...
└────┘ └─────┘配置导入/导出
# 导出当前配置
mcp-gateway export-config --output servers.json
# 从 JSON 文件导入
mcp-gateway import-config servers.json
# 示例配置文件格式 (examples/config.yaml)示例配置 (examples/config.yaml):
{
"mcpServers": {
"math": {
"command": "python",
"args": ["examples/downstream_servers/math_server.py"]
},
"weather": {
"command": "python",
"args": ["examples/downstream_servers/weather_server.py"]
},
"bing-search": {
"command": "cmd",
"args": ["/c", "npx", "-y", "bing-cn-mcp"]
}
}
}注意事项
Windows stdio:Windows 下注册 npm 类 MCP 需使用
cmd命令:--command cmd --args "/c,npx,-y,<package-name>"网络环境:HTTP 类型的下游服务器需要可访问的网络连接
端口冲突:默认 MCP 端口 8000,管理端口 9000,确保未被占用
无 unmount:FastMCP 暂不支持运行时 unmount,禁用/删除服务器后建议重启网关获得干净状态
单机设计:SQLite 适合单机部署,如需集群可通过
AbstractStore接口扩展 PostgreSQL 等
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceEnables dynamic loading, hot-reloading, and orchestration of MCP servers without restarting Claude Code, allowing programmatic tool calling and workflow automation across multiple servers.Last updated2
- Alicense-qualityDmaintenanceAggregates tools from multiple MCP servers, acting as a proxy to provide unified access to various AI agents and tools.Last updated63MIT
- Flicense-qualityDmaintenanceLocal MCP server that exposes fixed tools for GPT, Claude, and Gemini while routing to any OpenAI-compatible chat completions backend with independent configuration per target.Last updated
- Alicense-qualityDmaintenanceAggregates multiple MCP servers into a single endpoint, enabling LLM clients to access tools, resources, and prompts from various backends through one connection.Last updated10MIT
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Cai-Chang/MCP-Hub'
If you have feedback or need assistance with the MCP directory API, please join our Discord server