模型上下文协议中心

MCP Hub是一个用于模型上下文协议(MCP)服务器的集中式注册表、网关和编排层,提供服务器发现、健康监控、代理网关和模式联邦等功能。

  • by Abdelrahman-sadek
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Abdelrahman-sadek/mcp-hub

使用说明

MCP 中心 🚀

模型上下文协议(MCP)服务器的中央注册表和网关

🌟 概述

MCP Hub 是一个针对模型上下文协议(Model Context Protocol,简称 MCP)服务器的综合注册中心、网关和编排层。它提供了一个集中化的平台,用于在生态系统中发现、监控和与 MCP 服务器进行交互。

✨ 主要特点

  • 🔍 服务器发现浏览并搜索经过整理的MCP服务器注册表
  • 💚 健康监测实时健康状态和运行时间跟踪
  • 🔄 代理网关使用认证和速率限制的安全请求代理
  • 🔗 模式联邦来自多个服务器的统一模式,包含冲突解决机制
  • 📊 分析使用统计和性能指标
  • **🎨 现代用户界面(UI)**美观且响应灵敏的仪表板,支持暗色/浅色模式
  • 🚀 100% 免费基于免费层级服务构建(Cloudflare Workers + Cloudflare Pages)

🏗️ 建筑

🛠️ 技术栈

前端(Cloudflare Pages)

  • React 18 + TypeScript(可译为“React 18结合TypeScript”或保持原样,根据语境选择是否合并表述)
  • Vite 用于构建工具链
  • 使用 Tailwind CSS 进行样式设计
  • 用于导航的React Router

后端(Cloudflare Workers)

  • 使用ES2022目标的TypeScript
  • 用于存储的Cloudflare KV
  • 计划中的健康检查事件
  • 内置速率限制和缓存功能

CI/CD(GitHub Actions)

  • 自动化部署
  • 健康监测
  • 使用Lighthouse进行性能审计
  • 自动为故障创建问题报告

🚀 快速入门

先决条件

  • Node.js 18及以上版本
  • npm 或 yarn
  • Cloudflare账户(免费版)
  • GitHub账户

1. 克隆仓库

git clone https://github.com/Abdelrahman-sadek/mcp-hub.git
cd mcp-hub

2. 本地开发

# Set up worker
cd worker
npm install
npm run dev

# Set up dashboard (in another terminal)
cd dashboard
npm install
npm run dev

3. 生产部署

混合架构Cloudflare Pages(仪表板)+ GitHub Actions(工作器)

配置 Cloudflare Pages:

  1. 首选 Cloudflare 控制面板 → 页
  2. 连接您的GitHub仓库
  3. 设置构建设置:
    • 构建命令: cd dashboard && npm install && npm run build
    • 输出目录: dashboard/dist
    • 环境变量: VITE_API_BASE_URL=https://mcp-hub-worker.tito-7t.workers.dev

启用 GitHub Actions:

  1. 前往仓库设置 → 动作 → 启用工作流
  2. 在设置中添加密钥 → 密钥:
    • CLOUDFLARE_API_TOKEN您的Cloudflare API令牌
    • CLOUDFLARE_ACCOUNT_ID您的Cloudflare账户ID
    • CLOUDFLARE_SUBDOMAIN蒂托-7t

📁 项目结构

mcp-hub/
├── .github/workflows/     # GitHub Actions
├── worker/               # Cloudflare Worker (API)
│   ├── src/
│   │   ├── index.ts     # Main entry point
│   │   ├── router.ts    # Request routing
│   │   ├── registry.ts  # Server registry
│   │   ├── auth.ts      # Authentication
│   │   ├── cache.ts     # Caching layer
│   │   └── types.ts     # TypeScript types
│   ├── package.json
│   ├── wrangler.toml
│   └── tsconfig.json
├── dashboard/            # React Dashboard
│   ├── src/
│   │   ├── components/  # React components
│   │   ├── pages/       # Page components
│   │   ├── utils/       # Utilities
│   │   └── types.ts     # TypeScript types
│   ├── public/
│   │   └── servers.json # Server registry
│   ├── package.json
│   └── vite.config.ts
├── scripts/             # Utility scripts
├── docs/               # Documentation
└── README.md

API 文档

基本URL

https://mcp-hub-worker.tito-7t.workers.dev

终点(或:终端点)

列出服务器

GET /api/servers?search=ai&verified=true&health=online&limit=20&offset=0

获取服务器详细信息

GET /api/servers/{server-id}

健康检查

GET /api/health?force=true

代理请求

POST /api/proxy
Content-Type: application/json

{
  "serverId": "example-server",
  "path": "/tools/list",
  "method": "GET",
  "headers": {
    "Authorization": "Bearer token"
  }
}

联合模式(或 联邦模式)

GET /api/schema?refresh=true

提交服务器

POST /api/submit
Content-Type: application/json

{
  "name": "My MCP Server",
  "description": "A powerful MCP server",
  "url": "https://my-server.com",
  "version": "1.0.0",
  "tags": ["ai", "tools"],
  "author": {
    "name": "Your Name",
    "github": "yourusername"
  }
}

🎨 特点

  • 服务器注册表浏览并发现MCP服务器
  • 健康监测实时服务器状态追踪
  • 搜索与筛选通过名称、标签或功能查找服务器
  • 模式联邦跨服务器统一API架构
  • 代理网关安全请求代理
  • 速率限制每个IP每分钟100个请求
  • 缓存5分钟响应缓存
  • 深色模式全面支持深色/浅色主题
  • 响应式设计以移动设备为先的响应式布局

🚦 当前状态

✅ 已完成的功能

  • ✅ 第一至第三阶段核心基础设施和仪表板
  • ✅ 第四至第六阶段健康监测、代理和模式联邦
  • ✅ 第7-9阶段完整的仪表板、GitHub Actions 和文档
  • ✅ 第10阶段测试基础设施和TypeScript优化
  • ✅ 混合部署Cloudflare Pages + Workers 架构

🔄 部署状态

  • 仪表盘准备好部署到Cloudflare Pages
  • 工人API已准备好进行GitHub Actions部署
  • 集成配置了自动化测试
  • 文档附带部署指南

🎯 下一步行动

  1. 完成Cloudflare Pages的配置
  2. 启用 GitHub Actions 并添加密钥
  3. 验证端到端功能

🤝 贡献

  1. 为仓库创建分支(或:为仓库进行叉操作)
  2. 创建一个特性分支
  3. 做出你的更改
  4. 如适用,请添加测试
  5. 提交拉取请求

📄 许可证

MIT 许可证 - 详见 许可证 详情请参阅文件。

🔗 链接


为MCP社区倾情打造