saagpatel/MCPAudit

GitHub: saagpatel/MCPAudit

一款用于审计本地 MCP 服务器权限风险、提示注入威胁和 schema 漂移的安全扫描工具。

Stars: 0 | Forks: 0

# mcp-audit [![Python](https://img.shields.io/badge/Python-3776ab?style=flat-square&logo=python)](#) [![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](#) `mcp-audit` 让你能像 X 光一样透视系统上配置的每个 MCP 服务器:它能做什么,风险有多大,描述中是否隐藏了对抗性指令,以及自上次检查以来它是否发生过变化。只需一个命令,无需 API 密钥,完全在本地运行。 ## 功能特性 - **权限枚举** — 对每个工具的能力进行分类编目,涵盖 `file_read`、`file_write`、`network`、`shell`、`process_spawn` 等 8 个权限类别 - **风险评分** — 基于权限暴露面、工具数量和描述异常情况,为每个服务器计算出 0–10 的综合风险评分 - **提示注入检测** — 扫描工具描述中的指令覆写模式、隐藏指令和对抗性措辞 - **Schema 漂移追踪** — 将当前工具 schema 与存储的基线进行比较;标记新增、移除和签名的更改 - **多客户端支持** — 读取 Claude Desktop、Claude Code、Cursor 以及任何自定义路径的配置 - **Watch 模式** — `mcp-audit watch` 通过 `watchfiles` 在配置文件更改时重新扫描 ## 快速入门 ### 前置条件 - Python 3.11+ - `uv`(推荐)或 `pip` ### 安装说明 ``` uvx mcp-audit scan # 或永久安装: uv tool install mcp-audit ``` ### 用法 ``` # 扫描所有已配置的 MCP server mcp-audit scan # 扫描特定的 client config mcp-audit scan --client claude_desktop # 保存 baseline 并稍后检测 drift mcp-audit baseline save mcp-audit baseline diff # 监控 config 变化 mcp-audit watch ``` ## 技术栈 | 层级 | 技术 | |-------|------------| | 语言 | Python 3.11+ | | CLI | Click 8 | | 输出 | Rich | | MCP 协议 | `mcp` SDK 1.0+ | | 校验 | Pydantic v2 | | 配置解析 | PyYAML + json5 | | 可选 LLM | Anthropic SDK | ## 架构 扫描器会枚举 MCP 客户端的配置文件,通过 `anyio` 将每个服务器作为子进程生成,通过 MCP 协议调用 `tools/list`,并将返回的 schema 传递给权限分类器和注入检测器。结果被聚合成一份由 Rich 渲染的结构化报告。基线系统将工具 schema 序列化到本地的 `.mcp-audit/` 目录中,并在后续运行中使用每个工具签名的规范哈希值进行差异对比。 ## 许可证 MIT
标签:AMSI绕过, CLI, Click, DNS 解析, JSON, MCP服务器, Pydantic, Python, Schema检测, WiFi技术, YAML, 威胁检测, 安全合规, 安全库, 安全扫描, 恶意代码分类, 提示注入, 搜索语句(dork), 数据展示, 无后门, 时序注入, 本地安全, 权限风险, 模型上下文协议, 红队, 网络代理, 网络安全, 逆向工具, 配置漂移, 隐私保护, 集群管理, 零日漏洞检测