MCP Registry 使用说明
项目简介
MCP Registry 并非一个独立的 MCP 服务器,而是一个 MCP 服务器管理工具 和 复合服务器。它旨在解决管理多个 MCP 服务器时遇到的配置复杂、选择性暴露服务器以及跨客户端同步配置等问题。
简单来说,MCP Registry 就像一个 MCP 服务器的“注册中心”和“聚合器”:
- 注册中心: 集中管理多个独立的 MCP 服务器的配置信息,例如服务器的启动命令、连接方式等。
- 聚合器: 可以将多个独立的 MCP 服务器聚合成一个统一的 “复合服务器” 对外提供服务。客户端只需连接到 MCP Registry 提供的复合服务器,即可访问和使用所有注册的 MCP 服务器的功能。
主要功能点
- 简化 MCP 服务器配置管理: 通过直观的命令行界面 (CLI) 管理 MCP 服务器配置,无需手动编辑 JSON 文件,降低配置出错的风险。
- 选择性服务器暴露: 可以灵活地选择暴露哪些已注册的 MCP 服务器,创建自定义的 “复合服务器”,满足不同场景的需求。
- 跨客户端同步配置: 统一管理 MCP 服务器配置,避免在多个 MCP 客户端 (如 Claude Desktop, Cursor, Claude Code) 中重复配置,确保配置一致性。
- 复合 MCP 服务器: 提供 'mcp-registry serve' 命令,一键启动复合 MCP 服务器,将多个后端 MCP 服务器的功能聚合起来,通过单一入口对外提供服务。
- 支持临时和持久连接: 作为 Python 库使用时,支持临时连接(每次工具调用都建立新连接)和持久连接(通过上下文管理器维护连接),优化性能。
安装步骤
-
安装 Python 包: 使用 pip 安装 'mcp-registry' 包。
pip install mcp-registry -
初始化配置: 运行 'mcp-registry init' 命令初始化配置文件。
mcp-registry init该命令会在 '~/.config/mcp_registry/mcp_registry_config.json' (默认位置) 创建一个空的配置文件。你可以通过设置 'MCP_REGISTRY_CONFIG' 环境变量来指定配置文件路径。
服务器配置
MCP Registry 本身不提供资源 (Resources)、工具 (Tools) 或 Prompt 模板 (Prompts),它需要注册和聚合已有的 MCP 服务器才能发挥作用。你需要先有其他独立的 MCP 服务器(例如 '@modelcontextprotocol/server-memory', '@modelcontextprotocol/server-filesystem' 等),然后将这些服务器的启动配置信息注册到 MCP Registry 中。
MCP Registry 的配置文件 ('mcp_registry_config.json') 采用 JSON 格式,用于存储已注册的 MCP 服务器的配置信息。配置文件的 'mcpServers' 字段下,每个子字段代表一个已注册的 MCP 服务器,子字段名为服务器的名称,子字段的值为服务器的配置信息。
以下是一个配置示例,注册了两个 MCP 服务器:'memory' 和 'filesystem'。
{ "mcpServers": { "memory": { "type": "stdio", "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-memory" ], "description": "内存服务器" }, "filesystem": { "type": "stdio", "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem" ], "description": "文件系统服务器" } } }
- 'server name' (例如 'memory', 'filesystem'): 服务器的名称,用于在 MCP Registry 中唯一标识该服务器。
- 'type': 连接类型,目前支持 'stdio' (标准输入输出) 和 'sse' (Server-Sent Events)。
- 'command': 服务器启动命令 (当 'type' 为 'stdio' 时必须配置)。例如 'npx' 或 'node'。
- 'args': 服务器启动参数 (当 'type' 为 'stdio' 时必须配置)。例如 '["-y", "@modelcontextprotocol/server-memory"]'。 请注意,这里配置的是启动后端 MCP 服务器的命令和参数,而不是 MCP 客户端的配置。 MCP 客户端需要配置的是 MCP Registry 提供的复合服务器的地址 (对于 'stdio' 类型,通常是 'mcp-registry serve' 命令本身)。
- 'url': SSE 服务器的 URL (当 'type' 为 'sse' 时必须配置)。
- 'description': 服务器的描述信息 (可选)。
基本使用方法
-
注册 MCP 服务器: 使用 'mcp-registry add' 命令注册新的 MCP 服务器。例如,注册一个名为 'memory' 的内存服务器:
mcp-registry add memory npx -y @modelcontextprotocol/server-memory你可以使用 'mcp-registry add --help' 查看更多 'add' 命令的选项,例如添加描述信息、配置环境变量等。
-
列出已注册的服务器: 使用 'mcp-registry list' 命令查看已注册的 MCP 服务器列表。
mcp-registry list -
启动复合 MCP 服务器: 使用 'mcp-registry serve' 命令启动复合 MCP 服务器。
-
启动所有已注册的服务器: 直接运行 'mcp-registry serve' 命令,将会启动一个复合服务器,聚合所有已注册的 MCP 服务器的功能。
mcp-registry serve -
选择性启动部分服务器: 在 'mcp-registry serve' 命令后跟上要启动的服务器名称,例如只启动 'memory' 和 'filesystem' 服务器:
mcp-registry serve memory filesystem
-
-
在 MCP 客户端中使用复合服务器: 在支持 MCP 协议的客户端 (如 Claude Desktop, Cursor, Claude Code) 中,配置连接到 MCP Registry 提供的复合服务器。
-
stdio 连接: 对于 'stdio' 类型的复合服务器,在客户端中配置服务器启动命令为 'mcp-registry serve' (或 'mcp-registry serve <server_names>' 如果只启动部分服务器)。客户端会通过标准输入输出与复合服务器通信。
例如,在 Claude Code 中添加所有已配置的服务器:
claude mcp add servers mcp-registry serve或者只添加 'memory' 和 'filesystem' 服务器:
claude mcp add servers mcp-registry serve memory filesystem -
SSE 或 WebSocket 连接: MCP Registry 的复合服务器目前主要通过 'stdio' 方式提供服务,本身不直接支持 SSE 或 WebSocket 协议的复合服务器。 如果你需要通过 SSE 或 WebSocket 连接,可能需要自行扩展或结合其他工具实现。
-
-
编辑配置文件: 使用 'mcp-registry edit' 命令打开配置文件进行手动编辑。
mcp-registry edit该命令会使用你的默认编辑器打开配置文件,编辑完成后保存即可。MCP Registry 会在保存时验证 JSON 格式的正确性,并在验证失败时提供恢复备份的选项。
总结
MCP Registry 是一个实用的 MCP 服务器管理和聚合工具,能够帮助用户更方便地管理和使用多个 MCP 服务器,尤其是在需要同时使用多个 MCP 服务器功能,或者需要在多个 MCP 客户端之间同步配置的场景下,能够显著提升效率和降低复杂性。
信息
分类
开发者工具