MCP服务器注册与发现服务

MCP Registry是一个轻量级的自托管服务,用于在企业内部网络中实现MCP服务器的自动注册和客户端按需发现功能。

  • by learningeek
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 learningeek/mcp-registry-ref

使用说明

MCP注册表--最小企业MCP服务器发现

问题

如今,MCP客户端手动发现MCP服务器:

配置文件中的硬编码端点

Wiki页面/Slack消息

部落知识

这在企业中很快就会崩溃:

端点更改

服务器激增

无法查看可用工具

无标准发现机制

MCP目前没有本机发现层。

这个项目做什么

该项目提供了一个最小的、自托管的MCP注册表,可以实现:

MCP服务器自行注册

MCP客户端按功能发现服务器

没有硬编码端点

无云依赖

无用户界面

无身份验证(设计用于MVP)

它旨在作为一个轻量级的控制平面在企业网络中运行。

非目标(故意)

此MVP明确不包括:

身份验证/RBAC

心跳或TTL

超越记忆的坚持

跨注册中心的联合

公共市场

这些是未来的层,而不是MVP要求。

核心概念 MCP服务器入口

每个MCP服务器都在以下地址注册:

服务器id

端点

工具

范围

发现

客户端通过以下方式查询注册表:

所需工具

范围

注册表返回匹配的MCP服务器终结点。

API概述

注册MCP服务器

POST/注册

{ “server_id”:“finance.mcp.local”, “终结点”:http://127.0.0.1:9001", “tools”:[“invoice_lookup”], “范围”:“财务” }

发现MCP服务器

发布/发现 { “required_tools”:[“invoice_lookup”], “范围”:“财务” }

答复: { “服务器”:[ { “server_id”:“finance.mcp.local”, “终结点”:http://127.0.0.1:9001", “tools”:[“invoice_lookup”], “范围”:“财务” } ] }

为什么存在

该项目正式确定了企业已经非正式地做的事情:

维护MCP服务器的心理或记录列表

手动共享端点

希望配置保持同步

注册表将其转化为:

唯一的真相来源

机器可读的发现API

未来信任、策略和生命周期功能的基础

状态

✅ 工作MVP

🧪 内存注册表

🔧 专为扩展而设计

📗 集成指南

MCP服务器集成

服务器应该什么时候注册?

MCP服务器应注册:

启动时

部署后

配置更改后

最小集成示例

使用mcp_pprotocol::McpServerEntry;

let entry=McpServerEntry{ server_id:“finance.mcp.local”.into(), 端点:“http://127.0.0.1:9001“.into(), 工具:vec![“invoice_lookup”.into()], 范围:“金融”.into(), };

reqwest::客户端::new() .post(“http://registry.internal:8000/register") .json(&条目) .send() 等待?;

就是这样。 MCP服务器不需要知道:

存在哪些客户

谁会消费它

发现如何在内部工作

MCP客户端集成

发现流程

客户端启动

客户端查询注册表

注册表返回匹配的MCP服务器端点

客户端正常连接到MCP服务器

最小客户端示例

使用mcp_pprotocol::{发现请求,发现响应};

let req=发现请求{ 所需工具:vec![“invoice_lookup”.into()], 范围:“金融”.into(), };

let resp:DiscoverResponse=reqwest::Client::new() .post(“http://registry.internal:8000/discover") .JSON(PAG ng;req) .send() 等待? .json() 等待?; 客户端从不硬编码MCP服务器端点。