
前言
随着人工智能的快速发展,大型语言模型(LLM
)在各类场景中的应用日益广泛。而如何让这些模型高效地与外部数据源和工具交互,成为一个重要课题。Model Context Protocol
(MCP)作为开放协议,为 LLM 提供了标准化接口,简化了与外部系统的集成。
为更好地管理和发现 MCP 服务器,registry
项目应运而生。作为一个社区驱动的开源注册服务,registry
提供集中式存储和管理功能,帮助开发者轻松发现和管理 MCP
服务器及其相关元数据、配置和功能。
作为 registry
项目的贡献者,我很高兴能参与这个社区驱动的开源项目,也期待它不断发展壮大。本文将对 registry
服务进行介绍,为项目的推广尽一份绵薄之力。
准备好了吗?准备一杯你最喜欢的咖啡或茶,随着本文一探究竟吧。

Registry
registry
项目是一个由社区驱动的注册服务,用于管理和发现 Model Context Protocol
(MCP
) 服务器。而 MCP
是一个开放协议,旨在促进大型语言模型(LLM
)与外部数据源和工具的无缝集成。
registry
服务提供了一个集中式的存储库,用于管理 MCP
服务器的条目。它允许发现和管理各种 MCP
服务器及其相关的元数据、配置和功能。
Github
地址:MCP registry。
主要功能
RESTful API
:用于对MCP
服务的注册信息进行管理,包括:- 查看服务列表(
List
) - 获取单个服务信息(
Get
) - 添加服务(
Create
) - 修改服务信息(
Update
) - 删除服务(
Delete
)
- 查看服务列表(
- 健康检查端点:用于服务监控。
- 环境配置支持:支持多种环境配置。
- 优雅的关闭处理:确保服务的平稳关闭。
- 数据库支持:支持
MongoDB
和内存数据库。 API
文档:提供全面的API
文档。- 分页支持:支持分页查询所注册
mcp
服务条目。
部署与使用
我们可以通过两种方式启动 Registry
项目:本地运行 和 docker 部署。
本地运行
**前置条件:**需要安装
Go 1.18+
的环境和运行MongoDB
首先,我们需要将 registry
项目的源码下载到本地,然后在项目根目录下通过以下命令运行项目:
bash
go run ./cmd/registry
默认访问地址为:http://localhost:8080
。
Docker 部署
运行以下命令将创建两个容器分别用于启动 MongoDB
和 Registry
服务:
bash
docker compose up -d
默认将通过端口 8080
提供服务。
配置
registry
服务支持通过环境变量进行灵活配置,以适应不同的运行环境和需求。以下是支持的环境变量及其默认值说明:
变量名 | 描述 | 默认值 |
---|---|---|
MCP_REGISTRY_APP_VERSION |
应用程序版本 | dev |
MCP_REGISTRY_DATABASE_TYPE |
数据库类型 | mongodb |
MCP_REGISTRY_COLLECTION_NAME |
MongoDB 集合名称 | servers_v2 |
MCP_REGISTRY_DATABASE_NAME |
MongoDB 数据库名称 | mcp-registry |
MCP_REGISTRY_DATABASE_URL |
MongoDB 连接字符串 | mongodb://localhost:27017 |
MCP_REGISTRY_GITHUB_CLIENT_ID |
GitHub 应用程序客户端 ID | |
MCP_REGISTRY_GITHUB_CLIENT_SECRET |
GitHub 应用程序客户端密钥 | |
MCP_REGISTRY_LOG_LEVEL |
日志级别 | info |
MCP_REGISTRY_SEED_FILE_PATH |
导入种子文件的路径 | data/seed.json |
MCP_REGISTRY_SEED_IMPORT |
首次运行时是否导入种子文件 | true |
MCP_REGISTRY_SERVER_ADDRESS |
服务监听地址 | :8080 |
配置说明
- 灵活性:通过环境变量,您可以轻松调整服务的运行参数,例如切换数据库类型、修改日志级别或更改服务监听地址。
- 数据库类型 :
MCP_REGISTRY_DATABASE_TYPE
支持两种数据库类型:mongodb
和memory
。其中,memory
为内存数据库,适合测试或轻量级场景。 - 种子文件导入 :
MCP_REGISTRY_SEED_FILE_PATH
和MCP_REGISTRY_SEED_IMPORT
允许您在首次运行时自动导入初始数据,方便快速启动服务。 - GitHub 集成 :如果需要使用 GitHub 相关功能,可以通过设置
MCP_REGISTRY_GITHUB_CLIENT_ID
和MCP_REGISTRY_GITHUB_CLIENT_SECRET
来完成配置。 - 日志管理 :通过
MCP_REGISTRY_LOG_LEVEL
,您可以控制日志的详细程度,例如设置为debug
以便调试。
通过合理配置这些环境变量,您可以根据实际需求定制 registry
服务的行为。
Swagger API 文档
在启动 registry
项目之后,我们可以通过 /v0/swagger/index.html
端点访问 Swagger API
文档:

通过这个文档,你可以查看每个接口的请求方法、参数说明、响应格式等详细信息,还可以直接在浏览器中发送请求进行调试。
小结
registry
项目作为一个社区驱动的开源注册服务,为 MCP
生态系统提供了集中式的管理和发现能力。无论是通过 RESTful API
管理 MCP
服务器条目,还是通过灵活的环境变量配置,registry
都展现了其强大的功能和适应性。此外,支持 MongoDB
和内存数据库的多样化存储选项,以及直观的 Swagger API
文档,都让开发者能够快速上手并高效使用。
虽然项目仍处于早期开发阶段,但它已经为 MCP
生态系统奠定了坚实的基础。作为 registry
项目的贡献者,我很高兴能参与这个社区驱动的开源项目,也期待它不断发展壮大。
你好,我是陈明勇,一名热爱技术、乐于分享的开发者,同时也是开源爱好者。
我专注于分享 Go
语言相关的技术知识,同时也会深入探讨 AI
领域的前沿技术。
成功的路上并不拥挤,有没有兴趣结个伴?
Go
开源库代表作 :go-mongox 、go-optioner。