跳转到内容

MCP 自省与注册表治理

mcp source 治理你的 agent 所看到的能力面:它对 MCP 服务器进行自省 (工具、资源、提示),从其注解中推导出读/写提示,并 —— 可选启用 —— 将正在运行的内容与公共 MCP Registry、你的联邦注册表以及 Docker MCP Catalog 进行对账,并在此过程中为态势评级。

有一条规则锚定本 source 所发出的一切:

{
"sources": [{
"name": "mcp-estate",
"kind": "mcp",
"tenant": "<tenant-id>",
"config": {
"config_path": "/etc/claude-code/.mcp.json",
"posture_scan": "true",
"registry_enabled": "true"
}
}]
}

两种方式都可以指向服务器:

含义
servers待自省的 MCP 服务器规格的内联 JSON 数组
config_path一个 Claude Code .mcp.json 的路径,其 mcpServers 会被自省
timeout每服务器的自省超时

治理层(每一层皆可选启用,每一层皆诚实)

Section titled “治理层(每一层皆可选启用,每一层皆诚实)”
  • 态势扫描posture_scan,默认 true)—— 扫描自省得到的目录元数据, 以发现工具投毒、注入、同形字以及过宽的作用域,并对照 OWASP MCP Top-10 为态势评级。 仅扫描目录元数据 —— 它不探测或利用服务器。
  • 公共注册表registry_enabled,默认 falseregistry_url)—— 从 MCP Registry 进行只读的来源(provenance)增强(上游为预览版; 连接器会自行核验它所读取的内容)。
  • 注册表同步registry_sync + owned_namespaces)—— 枚举你的组织在公共注册表中 所拥有的反向 DNS 命名空间,以检测被撤回或无人管理的发布(供应链视角), 并将你的内部服务器从影子标记中清除。
  • 内部对账internal_servers)—— 一个已批准内部服务器的 JSON 数组 ({name, registry_name, version});正在运行的服务器会与之对账,并进行版本漂移检测。 运行中但不在列表上的,是一条**影子(shadow)**发现项。
  • 联邦注册表federated_registries)—— GitHub BYO 组织注册表、 Azure API Center 以及实现了固定 /v0.1 registry OpenAPI 的私有子注册表。
  • 弃用动态源deprecation_feed)—— 每一轮抓取官方 MCP 弃用特性注册表以检测规则漂移; 已编译的弃用规则从不依赖该次抓取。
  • Docker MCP Catalogdocker_catalog)—— 镜像摘要固定(digest-pin)漂移, 外加每服务器的 Docker 构建(已签名)vs 社区(未证实)来源。
  • 下一版本预览next_revision_preview)—— 以 MCP 2026-07-28 RC 的无状态模式 自省服务器,同时仍对外通告 2025-11-25;明确是一个预览开关。

发现项按层落地:态势评级、来源缺口、影子服务器、弃用特性的使用、注册表漂移。

MCP & skills 是活动的能力目录 —— 服务器、它们的工具与已声明的提示、技能, 以及每一项如何接入 agent:

MCP & skills 视图:带有服务器、工具、连接关系与托管配置的活动能力目录。 MCP & skills 视图:带有服务器、工具、连接关系与托管配置的活动能力目录。

这些提示为**访问图(Access map)**贡献了已声明的能力面;漂移面板正是这样一处: 一个被声明为只读、却被观测到在写入的工具,从此不再是提示问题,而成为一条发现项。

  • 自省是服务器所声称内容的一张快照。 服务器可能撒谎; 这正是规范本身的立场,也是每条边都被如此标记的原因。佐证来自被观测的 source。
  • 部分的注册表快照是一个错误,而非一个结果 —— 连接器拒绝对照一次它未能完成的注册表读取来评级。
  • 态势扫描读取的是元数据。 它不执行工具、不对服务器做模糊测试, 也无法检测出干净目录背后被植入后门的实现。