MCP注册表API服务

提供GitHub Copilot的Model Context Protocol (MCP)注册表v0.1 API支持,包括服务器发现、OpenAPI规范验证和静态站点生成功能。

  • by rajbos
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 rajbos/mcp-registry-demo

使用说明

mcp注册表演示

使用GitHub页面演示MCP注册表

此存储库托管一个GitHub Pages站点,该站点为GitHub Copilot提供模型上下文协议(MCP)注册表v0.1 API。

特性

  • ✅ 完整的MCP注册表v0.1 API规范支持
  • ✅ 符合OpenAPI 3.1标准 -已验证 官方MCP注册表OpenAPI规范
  • ✅ 用于服务器发现的RESTful API端点
  • ✅ CORS支持跨源请求
  • ✅ GitHub Pages部署的静态站点生成
  • ✅ 使用Jest和Supertest进行集成测试
  • ✅ 自动OpenAPI模式验证
  • ✅ 通过GitHub Actions自动部署

API终点

注册表实现了v0.1规范:

列出所有服务器

GET /v0.1/servers

返回所有MCP服务器的分页列表。支持查询参数:

  • search -按名称、描述或标签筛选服务器
  • limit -最大结果数(默认值:30,最大值:100)
  • updated_since -在此日期之后更新的筛选服务器

例子: https://rajbos.github.io/mcp-registry-demo/v0.1/servers/

获取最新服务器版本

GET /v0.1/servers/:serverName/versions/latest

返回特定服务器的最新版本。

例子: https://rajbos.github.io/mcp-registry-demo/v0.1/servers/github-mcp-server/versions/latest/

获取特定服务器版本

GET /v0.1/servers/:serverName/versions/:version

返回服务器的特定版本。

例子: https://rajbos.github.io/mcp-registry-demo/v0.1/servers/github-mcp-server/versions/1.0.0/

项目结构

├── src/
│   ├── app.js                    # Express application with API routes
│   ├── server.js                 # Server entry point for local development
│   ├── build-static.js           # Static site generator
│   └── data/
│       └── servers.json          # Server registry data
├── tests/
│   ├── api.test.js               # API integration tests
│   └── openapi-validation.test.js # OpenAPI schema validation tests
├── docs/
│   └── openapi.yaml              # OpenAPI specification (from MCP registry)
├── .github/
│   └── workflows/
│       └── pages.yml             # GitHub Actions deployment workflow
├── index.html                    # Landing page
└── package.json                  # Node.js dependencies and scripts

发展

先决条件

  • Node.js 20.x或更高版本
  • npm

设置

npm install

运行测试

npm test

运行开发服务器

npm run dev

API将于 http://localhost:3000

构建静态站点

npm run build

这将在 _site GitHub Pages部署目录。

验证注册表API

./tests/bash-validation.sh [REGISTRY_URL]

针对注册表API运行全面的验证测试。测试包括:

  • 端点可用性和响应代码(GET/v0.1/服务器等)
  • JSON结构验证
  • HTTP标头验证
  • CORS标头验证 (VS代码需要):
    • Access-Control-Allow-Origin: *
    • Access-Control-Allow-Methods: GET, OPTIONS
    • Access-Control-Allow-Headers: Authorization, Content-Type
  • OPTIONS飞行前请求支持
  • 分页支持
  • 错误处理

示例:

# Test local server
./tests/bash-validation.sh http://localhost:3000

# Test official MCP registry
./tests/bash-validation.sh https://registry.modelcontextprotocol.io

# Verbose output
VERBOSE=1 ./tests/bash-validation.sh http://localhost:3000

备注:bash验证脚本检查CORS标头是否正确。如果部署到GitHub Pages,请注意GitHub Pages不支持自定义HTTP标头。如果需要与VS代码一起用于生产,请考虑使用Azure API管理之类的服务来添加CORS头。

部署

当更改被推送到GitHub时,该网站会通过GitHub Actions自动部署到GitHub Pages main 支。工作流程:

  1. 安装Node.js依赖项
  2. 运行集成测试
  3. 构建静态站点
  4. 部署到GitHub页面

使用GitHub Copilot

要将此注册表与GitHub Copilot一起使用:

  1. 导航到您的组织或企业GitHub Copilot设置
  2. 将MCP注册表URL设置为: https://rajbos.github.io/mcp-registry-demo/
  3. 将策略设置为“仅注册表”,以限制对此注册表中列出的服务器的访问

添加服务器

要将新的MCP服务器添加到注册表中,请执行以下操作:

  1. 编辑 src/data/servers.json
  2. 按照JSON模式格式添加服务器
  3. 运行测试以验证: npm test
  4. 构建并验证: npm run build
  5. 承诺并推动变革

参考文献