返回 MCP 目录
public公开dns本地运行

mcp-hub

MCP Hub是一个中央协调器,用于连接客户端与多个MCP服务器,提供统一的接口来访问不同服务器的功能。它支持多种传输协议、认证方式和实时事件通知,具备动态服务器管理、统一REST API和实时监控等核心功能。

article

README

🚀 MCP 中心

MCP 中心是一个用于协调客户端与多个 MCP 服务器之间通信的中心系统。它通过提供统一的接口来管理工具、资源和提示请求,并为每个 MCP 服务器维护最新的能力信息,极大提升了通信管理的效率和便捷性。

🚀 快速开始

事件

MCP 中心支持以下主要事件:

  • hub.start:表示 MCP 中心启动
  • hub.stop:表示 MCP 中心停止
  • server.connected:表示 MCP 服务器连接到中心
  • server.disconnected:表示 MCP 服务器从中心断开
  • tool.request:客户端请求工具执行
  • resource.request:客户端请求资源访问
  • prompt.request:客户端请求提示处理
  • error.log:记录错误事件

架构概述

MCP 中心的架构设计包含以下几个关键部分:

  1. 启动和 MCP 服务器连接
    • 启动 MCP 中心并初始化配置。
    • 尝试连接到所有配置的 MCP 服务器。
  2. SSE 客户端连接处理
    • 处理客户端的 Server-Sent Events 连接。
    • 发布 MCP 中心的状态更新,如启动、停止等。
  3. 工具和资源请求路由
    • 验证客户端请求的有效性。
    • 将请求路由到合适的 MCP 服务器进行处理。
    • 处理来自 MCP 服务器的响应或错误。
  4. MCP 服务器健康监控
    • 定期检查 MCP 服务器的连接状态和能力信息。
    • 在检测到故障时尝试重新连接。
  5. 优雅启动和关闭流程
    • 管理 MCP 中心的启动和停止操作。
    • 在关闭过程中通知所有客户端。

请求处理

MCP 中心处理工具、资源和提示请求的标准流程如下:

  1. 请求验证
    • 验证客户端请求的有效性和完整性。
    • 检查目标 MCP 服务器是否连接状态正常。
  2. 路由请求到 MCP 服务器
    • 根据请求类型选择合适的 MCP 服务器进行处理。
    • 发送经过加密和签名的请求到目标服务器。
  3. 响应处理和错误管理
    • 接收来自 MCP 服务器的响应或错误信息。
    • 将结果返回给客户端,并在发生错误时记录日志。

📦 安装指南

基础设施

依赖项

  • Node.js 版本要求:18.0.0 或更高版本
  • mcp-marketplace 库:用于提供 MCP 服务器市场的功能

市场集成

MCP 中心目前依赖于 mcp-marketplace 库来实现市场功能。该库提供了以下主要功能:

  1. 服务器注册
    • 允许 MCP 服务器在中心进行注册。
    • 提供 API 接口用于管理服务器列表。
  2. 能力验证
    • 验证 MCP 服务器的能力是否符合要求。
    • 维护最新的服务器能力信息。
  3. 请求路由
    • 根据客户端的请求匹配最合适的 MCP 服务器。
    • 管理请求的分发和响应收集。
  4. 监控与告警
    • 实现对 MCP 服务器健康状态的实时监控。
    • 在检测到故障时触发告警机制。

📄 待办事项

  • 实现市场功能:完成 MCP 中心对 mcp-marketplace 的集成
  • 增加错误处理:完善请求处理中的错误捕获和恢复逻辑
  • 优化性能:提升大规模并发情况下的处理能力
  • 添加日志记录:引入详细的日志系统以方便调试和监控

🙏 致谢

感谢以下项目和技术对 MCP 中心开发的贡献:

  • mcp-marketplace 库:提供了强大的市场功能支持
  • Node.js 团队:提供了高效稳定的运行环境
  • 开源社区:为项目的持续发展提供了宝贵的建议和支持
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端