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 库使用时,支持临时连接(每次工具调用都建立新连接)和持久连接(通过上下文管理器维护连接),优化性能。

安装步骤

  1. 安装 Python 包: 使用 pip 安装 'mcp-registry' 包。

    pip install mcp-registry
  2. 初始化配置: 运行 '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': 服务器的描述信息 (可选)。

基本使用方法

  1. 注册 MCP 服务器: 使用 'mcp-registry add' 命令注册新的 MCP 服务器。例如,注册一个名为 'memory' 的内存服务器:

    mcp-registry add memory npx -y @modelcontextprotocol/server-memory

    你可以使用 'mcp-registry add --help' 查看更多 'add' 命令的选项,例如添加描述信息、配置环境变量等。

  2. 列出已注册的服务器: 使用 'mcp-registry list' 命令查看已注册的 MCP 服务器列表。

    mcp-registry list
  3. 启动复合 MCP 服务器: 使用 'mcp-registry serve' 命令启动复合 MCP 服务器。

    • 启动所有已注册的服务器: 直接运行 'mcp-registry serve' 命令,将会启动一个复合服务器,聚合所有已注册的 MCP 服务器的功能。

      mcp-registry serve
    • 选择性启动部分服务器: 在 'mcp-registry serve' 命令后跟上要启动的服务器名称,例如只启动 'memory' 和 'filesystem' 服务器:

      mcp-registry serve memory filesystem
  4. 在 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 连接,可能需要自行扩展或结合其他工具实现。

  5. 编辑配置文件: 使用 'mcp-registry edit' 命令打开配置文件进行手动编辑。

    mcp-registry edit

    该命令会使用你的默认编辑器打开配置文件,编辑完成后保存即可。MCP Registry 会在保存时验证 JSON 格式的正确性,并在验证失败时提供恢复备份的选项。

总结

MCP Registry 是一个实用的 MCP 服务器管理和聚合工具,能够帮助用户更方便地管理和使用多个 MCP 服务器,尤其是在需要同时使用多个 MCP 服务器功能,或者需要在多个 MCP 客户端之间同步配置的场景下,能够显著提升效率和降低复杂性。

信息

分类

开发者工具