MCP 官方开源 Registry 注册服务:基于 Go 和 MongoDB 构建

前言

随着人工智能的快速发展,大型语言模型(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 部署

运行以下命令将创建两个容器分别用于启动 MongoDBRegistry 服务:

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 支持两种数据库类型:mongodbmemory。其中,memory 为内存数据库,适合测试或轻量级场景。
  • 种子文件导入MCP_REGISTRY_SEED_FILE_PATHMCP_REGISTRY_SEED_IMPORT 允许您在首次运行时自动导入初始数据,方便快速启动服务。
  • GitHub 集成 :如果需要使用 GitHub 相关功能,可以通过设置 MCP_REGISTRY_GITHUB_CLIENT_IDMCP_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-mongoxgo-optioner

相关推荐
mftang3 小时前
基于TiTan(RA8P1) BLDC电机运行状态缺陷AI监测系统
人工智能
今天AI了吗3 小时前
大模型技术全景(一):AI、机器学习、深度学习,三者的关系到底是什么?一文搞懂
数据库·人工智能·python·sql·深度学习·机器学习·rust
长江后浪博客3 小时前
农业无人机管理平台:构建“无人机巡检 + AI识虫 + GIS地块 + 精准作业”的智慧农业系统
人工智能·无人机·智慧农业·无人机巡检·农业无人机管理平台·ai识虫·gis地块
故七月3 小时前
GEO服务不是一锤子买卖:万域智瞰售后保障体系如何为企业AI认知资产“保驾护航”
大数据·人工智能
luckystar513~3 小时前
Hermes实战 :skill编写 + skill治理
人工智能·agent·智能体·hermes·实战专栏
IT古董3 小时前
AI资讯日报 | 2026年8月31日:政策持续加码,大模型密集更新,开源生态快速扩张,AI智能体加速从实验室走向真实业务场景
人工智能
仙女修炼史3 小时前
gradcam在yolo中的应用
人工智能·python·yolo
亚川楼宇自控系统数据中心厂家3 小时前
金融数据中心:能碳一体化管理的技术逻辑
人工智能·金融
代码方舟3 小时前
零信任架构实战:基于天远车辆过户详版查询构建自动化车辆估值网关
运维·人工智能·架构·自动化
沈管家AI数字员工3 小时前
集团多组织AI怎么上?多子公司统一AI管理的架构与路径
人工智能·架构