AI 工程从零到一(中文)
给定 MCP Registry 响应、已验证的发布者身份、制品证据、实时服务器观察结果和本地策略,生成准入决策及证据包。
必需输入
- Registry 源、服务器记录、Registry 管理的元数据和获取时间。
- 已验证的命名空间,以及建立该命名空间的认证方式。
- 包 Registry、标识符、精确版本、所有权结果和计算得到的制品摘要。
- 实时
server/discover结果、协议版本、能力、诊断用服务器信息和完整工具描述符。 - 所需能力、禁止的工具属性、审查者、证据保留要求和回滚策略。
- 先前已准入的 pin、当前路由、隔离项和近期健康观察结果。
流程
- 验证 Registry 记录形状。要求名称、版本、描述非空,并且至少有一个包或远程端点。将 Registry 架构版本和实时 MCP 协议版本视为彼此独立的值。
- 从响应级
_meta["io.modelcontextprotocol.registry/official"].status读取 Registry 管理的状态,而不是直接使用_meta.status或发布记录。除非状态为active,否则拒绝自动准入。 - 将名称命名空间与受信认证建立的命名空间精确比较。拒绝前缀相似项和空 slug。
- 将一个已声明的执行源关联到经过验证的证据。对于包,匹配 Registry 类型、标识符、精确版本和传输方式。对于纯远程记录,将 URL 和传输方式匹配到独立验证的端点证据。两种源都要求受信的 SHA-256 证据摘要。
- 对规范化的 Registry 记录哈希。对关联 Registry 源、服务器名称、Registry 版本、记录摘要、选定源和源证据摘要的来源对象哈希。
- 观察实时端点。要求可接受的协议版本、所需能力和完整工具描述符。仅为展示、日志和调试保留结果
_meta["io.modelcontextprotocol/serverInfo"]。绝不能将自报serverInfo,包括仅直接存在的别名,当作准入或安全权威。 - 只归一化语义上无序的集合。对完整的归一化描述符表面哈希,使名称、描述、架构、注解或工具集变化都会产生漂移。
- 应用本地授权、数据、网络和审查策略。Registry 发布是证据,不是本地批准。
- 批准后,存储一个不可变 pin,其中包含记录、执行源、来源和工具集摘要。让批准状态与活动路由状态保持分离。
- 向准入账本追加决策、原因、证据引用、前一账本哈希和当前条目哈希。证据存储前应脱敏凭据和敏感参数。
- 按计划并在激活前协调 Registry 状态和实时描述符。当状态变为 deprecated 或 deleted、源证据变化或实时行为不同,隔离并停用 pin。已隔离 pin 绝不能作为回滚目标。
- 只回滚到先前已准入、当前符合条件、健康且未隔离的 pin。将路由恢复记录为新事件,绝不要改写旧发布或准入决策。
硬性拒绝条件
- 信任仅来自熟悉的展示名称或存在于 Registry。
startswith命名空间检查,或只由提交记录声明的命名空间。latest、版本范围,或没有制品摘要的包坐标。- 模仿 Registry 管理状态或验证的发布者字段。
- 缺少或格式错误的协议、能力或描述符证据。
- 将自报
serverInfo视为命名空间、来源、端点或准入权威。 - 漂移后静默更新描述符 pin。
- 激活已弃用、已删除、未知或已隔离的版本。
- 回滚到没有完整准入证据的目标。
- 账本证据包含 bearer token、cookie、包凭据或不必要的工具参数。
输出
返回以下部分:
- 决策:
approve、reject或quarantine,附稳定的原因代码。 - 命名空间证明:已验证命名空间、认证源和精确名称比较。
- 发布 pin:Registry 源、服务器名称、精确版本、状态、架构版本和记录摘要。
- 源 pin:包坐标与传输方式,或远程 URL 与传输方式、所有权结果引用和源证据摘要。
- 运行时 pin:已接受的协议版本、所需能力、工具集摘要和可选的诊断
serverInfo。 - 来源关联:规范化字段和得到的来源摘要。
- 策略结果:每项通过、失败和不适用的控制。
- 账本事件:序号、时间、事件、结果、原因代码、证据引用、前一哈希和条目哈希。
- 协调计划:下一次状态、制品、发现、描述符和健康检查。
- 回滚计划:符合条件的先前 pin、验证步骤、路由变更、健康观察窗口和待保留证据。
最后写明最可能改变决策的那一项缺失事实。若没有缺失的必需事实,则说明下一次计划的漂移检查。