MCP注册表
MCP注册表为MCP客户端提供了一个MCP服务器列表,就像MCP服务器的应用商店一样。
📤 发布我的MCP服务器 | ⚡️ 实时API文档 | 👀 生态系统愿景 | 📖 完整文档
开发状态
2025-10-24更新:注册表API已输入 API冻结(v0.1) 🎉. 在接下来的一个月或更长时间内,API将保持稳定,不会发生任何突破性变化,使集成商能够自信地实施支持。此冻结适用于v0.1,而v0的开发仍在继续。我们将利用这段时间在现实世界的集成中验证API,并收集反馈,以塑造v1的通用性。感谢大家的贡献和耐心——你们的参与是让我们来到这里的关键!
2025-09-08更新:注册表已预览启动🎉 (公告博客文章).虽然系统现在更加稳定,但这仍然是一个预览版本,可能会发生重大更改或数据重置。稍后将发布正式可用性(GA)版本。我们希望收到您的反馈 或在 #注册表开发Discord (在此处加入详细信息).
当前主要维护人员:
贡献
我们使用多种渠道进行协作-请参阅 模型上下文协议io/社区/通信.
通常(但并非总是)想法会流过这个管道:
- Discord 的中文翻译是“不和谐”或“纷争”。 -实时社区讨论
- 讨论 -提出并讨论产品/技术要求
- 问题 -跟踪范围明确的技术工作
- 拉取请求 -为解决问题做出贡献
快速启动:
先决条件
- 码头工人
- 转到1.24.x
- 击倒取胜 -Go的容器映像生成器(安装说明)
- golangci lint v2.4.0
运行服务器
# Start full development environment
make dev-compose这将在以下位置启动注册表 localhost:8080 使用PostgreSQL。数据库使用临时存储,每次重新启动容器时都会重置,确保开发和测试的干净状态。
注: 注册表使用 击倒取胜 以构建容器映像。这 make dev-compose 命令会自动使用ko构建注册表映像,并在启动服务之前将其加载到本地Docker守护进程中。
默认情况下,注册中心从API生产种子与经过过滤的服务器子集(以保持快速启动)。这可确保您的本地环境反映生产行为,并且所有种子数据都通过验证。对于离线开发,您可以在不进行验证的情况下从文件中播种 MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose.
该设置可以在中配置环境变量 -看 .env.示例 作为参考。
Alternative: Running a pre-built Docker image
预构建的Docker镜像会自动发布到GitHub容器注册表:
# Run latest stable release
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
# Run latest from main branch (continuous deployment)
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
# Run specific release version
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
# Run development build from main branch
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d可用标签:
- 发布:
latest,v1.0.0,v1.1.0等等。 - 连续的:
main(最新主分支构建) - 发展:
main--(特定提交构建)
发布服务器
为了发布服务器,我们构建了一个简单的CLI。您可以将其与以下内容一起使用:
# Build the latest CLI
make publisher
# Use it!
./bin/mcp-publisher --help看 出版商指南 了解更多详情。
其他命令
# Run lint, unit tests and integration tests
make check还有一些更有用的开发命令。跑 make help 了解更多信息,或查看 生成文件.
建筑
项目结构
├── cmd/ # Application entry points
│ └── publisher/ # Server publishing tool
├── data/ # Seed data
├── deploy/ # Deployment configuration (Pulumi)
├── docs/ # Documentation
├── internal/ # Private application code
│ ├── api/ # HTTP handlers and routing
│ ├── auth/ # Authentication (GitHub OAuth, JWT, namespace blocking)
│ ├── config/ # Configuration management
│ ├── database/ # Data persistence (PostgreSQL)
│ ├── service/ # Business logic
│ ├── telemetry/ # Metrics and monitoring
│ └── validators/ # Input validation
├── pkg/ # Public packages
│ ├── api/ # API types and structures
│ │ └── v0/ # Version 0 API types
│ └── model/ # Data models for server.json
├── scripts/ # Development and testing scripts
├── tests/ # Integration tests
└── tools/ # CLI tools and utilities
└── validate-*.sh # Schema validation tools认证
发布支持多种身份验证方法:
- GitHub OAuth -通过登录GitHub进行发布
- GitHub OIDC -从GitHub操作发布
- DNS验证 -用于证明域及其子域的所有权
- HTTP验证 -用于证明域名的所有权
注册表在发布时验证命名空间所有权。例如,发布。..:
io.github.domdomegg/my-cool-mcp您必须以以下身份登录GitHubdomdomegg,或者在domdomegg的repos上的GitHub Action中me.adamjones/my-cool-mcp你必须证明所有权adamjones.me通过DNS或HTTP质询
社区项目
结账 社区项目 探索社区创建的与注册表相关的著名工作。
更多文档
请参阅 文档 如果您的问题在这里没有得到回答,请查看更多详细信息!
