SuperAPI AI 工具集

mcp-audit

测试与质量

查看项目

更新于 10-20 09:05

技能介绍

MCP Audit 用于审计 MCP 服务器是否符合当前已发布的 MCP 规范,以及仓库自身的兼容性约束。

用途:对 MCP 服务器进行协议合规审计,重点检查协议合规性、元数据漂移和兼容性回归。可审计工具注解、工具与结果 schema、结构化输出等。审计前需阅读 references/spec-baseline.md 与 references/checklist.md;涉及规范漂移、草案特性或旧协议目标时参考 references/version-watchpoints.md;references/common-findings.md 汇总常见失败模式;SOURCES.md 仅作来源说明,不是审计清单。

主要能力:

  • 确定协议基线:默认以最新发布的 MCP 规范修订版为准,除非仓库明确指定其他版本;草案与 SEP 内容作为关注点而非发布阻断项。
  • 识别服务器实际实现的 MCP 原语与工具:prompts、resources、tools、completions、logging、tasks 或实验性扩展。
  • 审计生命周期与能力协商:initialize 与 notifications/initialized 行为、协商的协议版本、声明的能力;检查是否只声明实际支持的能力与子能力(如 listChanged、subscribe、任务相关能力块);HTTP 传输若由仓库直接处理,还需检查初始化后的 MCP-Protocol-Version 行为。
  • 审计工具(如存在):tools/list 分页、notifications/tools/list_changed、客户端可见元数据;工具定义中的 name、title、description、icons、inputSchema、outputSchema、annotations、execution.taskSupport;工具结果语义(content、structuredContent、isError、内嵌资源、资源链接、协议错误与执行错误的区分);保守评估 readOnlyHint、destructiveHint、idempotentHint、openWorldHint 等安全提示;为具备写能力的工具建立上游变更清单。
  • 审计提示与资源(如存在):提示的能力声明、列表分页、prompts/get、list_changed 通知、参数处理与消息内容类型;资源的声明、列表分页、读取、模板列表、订阅、更新通知、URI scheme、MIME 类型与文本/blob 编码;保持规范控制层级(提示由用户控制、资源由应用控制、工具由模型控制)。
  • 审计传输、认证与安全:stdio 使用换行分隔 JSON-RPC、stdout 仅输出协议内容、日志走 stderr、凭据经环境变量处理;HTTP/Streamable HTTP 的 origin 校验、本地部署绑定建议、会话与协议版本处理、HTTP 认证流程;授权方面检查受保护资源元数据发现、WWW-Authenticate 挑战、scope 建议、资源指示器、bearer 令牌处理、受众校验、禁止查询串令牌;安全方面检查输入与 URI 校验、访问控制、输出净化、限流与超时、本地服务器的授权或沙箱预期、DNS 重绑定与 SSRF 风险面。
  • 审计版本与兼容性漂移:区分真正的规范违规与有意针对旧版本或宿主特定行为;检查较新发布规范特性是否缺失或建模不当(如 icons、工具命名指引、执行/任务支持、结构化工具输出);单独标注仅草案或 SEP 的期望,避免过度强制未发布行为;检查仓库特定约束,如工具数量限制、生成定义、inspector 或 SDK 特性、Warden 规则。
  • 验证:优先使用针对导出服务器表面的现有集成测试;若无则添加或更新能证明所声明协议行为的最小自动化检查;如仓库使用生成定义或目录则刷新;适当时运行仓库常规验证命令。
  • 报告:说明审计的协议基线,列出服务器实现的每个原语与能力、每个上游变更型工具,区分已确认违规、兼容性风险与关注点,说明哪些经源码检查、哪些经真实服务器行为验证,并记录关于旧规范目标、客户端特性或宿主扩展的假设。

失败处理:若仓库针对旧版 MCP 修订,先按该版本审计并单独记录与最新版的差异;框架适配器转换 schema 或注解时,以导出的线上表面为准;HTTP 认证或传输由上游基础设施负责时,审计仓库自有边界并明确标注其余为继承或超出范围;仅草案或 SEP 中的要求不导致失败,除非用户要求草案兼容;结构检查通过但真实响应不同时,以线上行为为准。

使用方式与限制:具体安装命令、运行命令及界面信息暂未提供;适用范围限于 MCP 服务器审计场景,仓库特定约束与草案特性需按上述规则区别对待。