MCP注册镜像与API服务器

一个TypeScript实现的MCP注册镜像与API服务器,提供注册镜像应用、可重用API服务器包和验证工具,适用于MCP服务器配置验证和客户端配置生成。

  • by TeamSparkAI
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 TeamSparkAI/mcp-registry

使用说明

MCP注册表镜像和API服务器

一个TypeScript实现 模型上下文协议注册表,提供:

  1. 注册表镜像应用程序 -Next.js web应用程序部署在Vercel上
  2. 可重复使用的API服务器包 -npm包,用于为您自己的应用程序添加注册表功能
  3. 验证工具 -server.json文件的模式验证和linting

🚀 实时应用程序

https://registry.teamspark.ai/

特性

  • 注册表资源管理器 -从官方注册表浏览和搜索MCP服务器
  • 服务器详细信息 -查看完整的元数据、包和配置选项
  • 配置生成器 -使用自定义设置生成MCP客户端配置
  • 服务器.json测试仪 -验证并整理server.json文件
  • API访问 -完整的REST API位于 /api/v0/* 端点

📦 包裹

这个monorepo包含可重用的TypeScript包:

mcp-registry-validator

MCP服务器.json文件的模式验证和linting。适用于Node.js和浏览器环境。

主要特点:

  • 具有自动版本检测功能的多版本模式支持
  • 最佳实践的全面棉绒规则
  • 带有JSON路径引用的详细错误消息
  • CLI工具和编程API

→ 安装、使用和规则参考

mcp-registry-server

实现MCP注册表协议的核心API服务器。协议实现是 完全独立 web框架和数据存储机制。

三层架构:

  • 协议核心:与框架无关的服务(没有HTTP/框架依赖关系)
  • 数据源:可插拔接口-文件、数据库、HTTP、自定义
  • 框架适配器:薄包装-Next.js、Express等。

这种分离使相同的协议实现能够跨所有框架和存储选项工作。

→ 安装、使用和API参考

🏗️ 建筑

数据流

Official Registry (GitHub)
    ↓ (daily sync via GHA)
server-registry.json
    ↓ (loaded by FileDataSource)
In-Memory Cache
    ↓ (served by RegistryService)
API Endpoints
    ↓ (consumed by frontend)
Next.js Application

关键设计原则

  • 前端100%基于API -客户端无法直接访问文件
  • 可插拔数据源 -将FileDataSource替换为数据库、网关等。
  • 服务器端验证 -在构建时捆绑的模式
  • 无服务器就绪 -适用于Vercel、AWS Lambda等。

🔄 自动更新

GitHub Action每天运行一次,目的是:

  • 下载最新 server-registry.json 来自官方登记处
  • 从同步架构版本 modelcontextprotocol/static
  • 提交更改并触发部署

看 .github/workflows/download-registry.yml

🛠️ 发展

先决条件

  • Node.js 18+
  • pnpm 10+

设置

# Install dependencies
pnpm install

# Build packages
pnpm --filter mcp-registry-validator build
pnpm --filter mcp-registry-server build

# Run dev server
pnpm run dev

当地API测试

默认情况下,应用程序使用外部注册表 https://registry.teamspark.ai/api/v0。若要改为针对本地API服务器进行测试,请创建 .env.local 文件:

# .env.local
NEXT_PUBLIC_REGISTRY_URL=/api/v0

这使您能够:

  • 部署前在本地测试API更改
  • 验证本地API实现
  • 根据本地数据进行开发,不依赖于外部

如果没有这个变量,应用程序将使用默认的外部注册表(对于测试UX包集成很有用)。

项目结构

/app                    # Next.js application
  /api                  # API routes
  /components           # React components
  /servers/[serverId]/[versionId]  # Dynamic server detail pages
/packages
  /mcp-registry-validator   # Validation package
  /mcp-registry-server      # API server package
/registry               # Protocol references
  /schema               # JSON schemas (versioned)
  openapi.yaml          # API specification
/public
  server-registry.json  # Registry data (synced daily)

测试

# Run the validator
cd packages/mcp-registry-validator
pnpm dev validate path/to/server.json

# Test API endpoints
curl 'http://localhost:3000/api/v0/servers?limit=5'
curl 'http://localhost:3000/api/v0/servers/{serverId}/versions'

# Validate the entire registry
pnpm run registry:validate

📚 文档

🎯 当前状态

生产部署: https://registry.teamspark.ai/

✅ 建造了什么

  • 具有API和web UI的注册表镜像应用程序
  • mcp-registry-validator -模式验证和linting包
  • mcp-registry-server -带有Next.js适配器的核心API服务器
  • 服务器端验证端点
  • 自动化日常数据和模式同步
  • 具有内存缓存的生产部署

看 docs/deployment.md 有关部署详细信息和 todo.md 用于未来的增强想法。

🤝 贡献

这是官方MCP注册表协议的另一种TypeScript实现。有关协议讨论和问题,请参阅 官方登记项目.

📄 许可证

麻省理工学院

🔗 链接