模型上下文协议管理平台

MCPHub是一个用于管理和扩展多个模型上下文协议(MCP)服务器的统一中心,支持通过灵活的流式HTTP(SSE)端点访问所有服务器、单个服务器或逻辑服务器组。

  • by shutcode
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 shutcode/mcphub

使用说明

MCPHub:模型上下文协议(MCP)服务器的统一集线器

英语| 中文版

MCPHub通过将多个MCP(模型上下文协议)服务器组织成灵活的可流式HTTP(SSE)端点,使其易于管理和扩展,支持对所有服务器、单个服务器或逻辑服务器组的访问。

🚀 特性

  • 扩大MCP服务器支持:以最少的配置无缝集成任何MCP服务器。
  • 集中式仪表板:通过一个时尚的web UI监控实时状态和性能指标。
  • 灵活的协议处理:与stdio和SSE MCP协议完全兼容。
  • 热插拔配置:动态添加、删除或更新MCP服务器,无需停机。
  • 基于组的访问控制:将服务器组织成可定制的组,以简化权限管理。
  • 安全认证:内置用户管理,基于角色的访问由JWT和bcrypt提供支持。
  • Docker就绪:使用我们的容器化设置立即部署。

🔧 快速开始

配置

创建一个 mcp_settings.json 用于自定义服务器设置的文件:

{
  "mcpServers": {
    "amap": {
      "command": "npx",
      "args": ["-y", "@amap/amap-maps-mcp-server"],
      "env": {
        "AMAP_MAPS_API_KEY": "your-api-key"
      }
    },
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest", "--headless"]
    },
    "fetch": {
      "command": "uvx",
      "args": ["mcp-server-fetch"]
    },
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "your-bot-token",
        "SLACK_TEAM_ID": "your-team-id"
      }
    }
  }
}

Docker部署

推荐:装载您的自定义配置:

docker run -p 3000:3000 -v $(pwd)/mcp_settings.json:/app/mcp_settings.json samanhappy/mcphub

或使用默认设置运行:

docker run -p 3000:3000 samanhappy/mcphub

访问仪表板

打开 http://localhost:3000 并使用您的凭据登录。

备注:默认凭据为 admin / admin123.

仪表板概述:

  • 所有MCP服务器的实时状态
  • 启用/禁用或重新配置服务器
  • 用于组织服务器的组管理
  • 访问控制的用户管理

可流式传输HTTP端点

截至目前,对流式HTTP端点的支持因不同的AI客户端而异。如果遇到问题,可以使用SSE端点或等待将来的更新。

通过以下方式连接AI客户端(例如,Claude Desktop、Cursor、DeepChat等):

http://localhost:3000/mcp

此端点为所有MCP服务器提供了一个统一的流式HTTP接口。它允许您:

  • 向任何配置的MCP服务器发送请求
  • 实时接收响应
  • 轻松与各种AI客户端和工具集成
  • 对所有服务器使用相同的端点,简化集成过程

智能路由(实验):

Smart Routing是MCPHub的智能工具发现系统,它使用向量语义搜索来自动为任何给定任务找到最相关的工具。

http://localhost:3000/mcp/$smart

它是如何工作的:

  1. 工具索引:所有MCP工具都会自动转换为向量嵌入,并使用pgvector存储在PostgreSQL中
  2. 语义搜索:用户查询被转换为向量,并使用余弦相似度与工具嵌入进行匹配
  3. 智能过滤:动态阈值确保相关结果无噪音
  4. 精确执行:找到的工具可以通过适当的参数验证直接执行

设置要求:

要启用智能路由,您需要:

  • 带pgvector扩展的PostgreSQL
  • OpenAI API密钥(或兼容的嵌入服务)
  • 在MCPHub设置中启用智能路由

组特定端点(推荐):

对于特定服务器组的定向访问,请使用基于组的HTTP端点:

http://localhost:3000/mcp/{group}

哪里 {group} 是您在仪表板中创建的组的ID或名称。这使您能够:

  • 连接到按用例组织的MCP服务器的特定子集
  • 隔离不同的AI工具,仅访问相关服务器
  • 为不同的环境或团队实施更精细的访问控制

服务器特定端点: 要直接访问单个服务器,请使用特定于服务器的HTTP端点:

http://localhost:3000/mcp/{server}

哪里 {server} 是您要连接的服务器的名称。这允许您直接访问特定的MCP服务器。

备注:如果服务器名称和组名称相同,则组名称将优先。

SSE端点(未来不再使用)

通过以下方式连接AI客户端(例如,Claude Desktop、Cursor、DeepChat等):

http://localhost:3000/sse

对于智能路由,请使用:

http://localhost:3000/sse/$smart

对于特定服务器组的目标访问,请使用基于组的SSE端点:

http://localhost:3000/sse/{group}

要直接访问单个服务器,请使用服务器特定的SSE端点:

http://localhost:3000/sse/{server}

🧑‍💻 地方发展

git clone https://github.com/samanhappy/mcphub.git
cd mcphub
pnpm install
pnpm dev

这将在开发模式下通过热重新加载启动前端和后端。

对于windows用户,您可能需要分别启动后端服务器和前端: pnpm backend:dev, pnpm frontend:dev.

🛠️ 常见问题

使用Nginx作为反向代理

如果您使用Nginx反向代理MCPHub,请确保在Nginx设置中添加以下配置:

proxy_buffering off

🔍 技术栈

  • 后端:Node.js、Express、TypeScript
  • 前端:React、Vite、顺风CSS
  • 认证:JWT&bcrypt
  • 协议:模型上下文协议SDK

👥 贡献

欢迎任何形式的贡献!

  • 新功能和优化
  • 文档改进
  • Bug报告和修复
  • 翻译和建议

欢迎加入我们 不和谐社区 讨论和支持。

❤️ 赞助商

如果你喜欢这个项目,也许你可以考虑:

🌟 明星历史

📄 许可证

根据 Apache 2.0许可证.