AgentDefenders/mcp-scan

GitHub: AgentDefenders/mcp-scan

MCP 服务器配置安全扫描器,用于检测工具投毒、提示注入、影子攻击等 AI Agent 供应链威胁。

Stars: 1 | Forks: 0

# @agentdefenders/mcp-scan Model Context Protocol (MCP) 服务器配置的安全扫描器。检测工具投毒、提示注入、影子攻击以及已知威胁。 [![npm version](https://img.shields.io/npm/v/@agentdefenders/mcp-scan)](https://www.npmjs.com/package/@agentdefenders/mcp-scan) [![npm downloads](https://img.shields.io/npm/dw/@agentdefenders/mcp-scan)](https://www.npmjs.com/package/@agentdefenders/mcp-scan) [![license](https://img.shields.io/npm/l/@agentdefenders/mcp-scan)](./LICENSE) [![node](https://img.shields.io/node/v/@agentdefenders/mcp-scan)](https://nodejs.org) MCP 服务器通过强大的工具使用能力扩展了 AI Agent,但也引入了新的攻击面。被攻陷或恶意的 MCP 服务器可能会窃取数据、覆盖 Agent 行为,或充当供应链后门。`@agentdefenders/mcp-scan` 会分析您的 MCP 配置,并在安全问题进入生产环境之前对其进行标记。 所有分析均在您的本地计算机上运行。不会向任何外部服务传输数据。如果您希望进行仪表板集成和历史记录追踪,可以选择提供 `--api-key` 以将结果与 [AgentDefenders Shield](https://app.agentdefenders.ai) 同步。 ## 快速开始 ``` npx @agentdefenders/mcp-scan ``` 扫描程序会自动检测 11 个受支持客户端的 MCP 客户端配置,并分析所有已注册的服务器。 ## 示例输出 ``` @agentdefenders/mcp-scan v0.2.2-alpha Scanning MCP configurations... Found 2 servers across 1 client configuration. --- filesystem-server --- Source: claude_desktop_config.json Command: npx -y @modelcontextprotocol/server-filesystem /home/user/projects Tools: 11 detected Analyzers: 5/5 passed Grade: A --- data-pipeline-mcp --- Source: claude_desktop_config.json Command: npx -y data-pipeline-mcp@latest Tools: 4 detected Findings: [HIGH] tool-poisoning: Tool "run_query" description contains hidden instruction that overrides agent behavior. The phrase "ignore previous instructions" was detected in the tool description. [LOW] suspicious-env: Tool "connect" requests access to DATABASE_URL environment variable. Grade: D Summary Servers scanned: 2 Total findings: 2 (1 high, 0 medium, 1 low) Clean servers: 1 Flagged servers: 1 ``` ## 支持的 MCP 客户端 | 客户端 | macOS | Linux | Windows | |---|---|---|---| | Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` | `~/.config/Claude/claude_desktop_config.json` | `%APPDATA%\Claude\claude_desktop_config.json` | | Cursor | `~/.cursor/mcp.json` | `~/.cursor/mcp.json` | `%APPDATA%\Cursor\mcp.json` | | VS Code | `~/Library/Application Support/Code/User/mcp.json` | `~/.config/Code/User/mcp.json` | `%APPDATA%\Code\User\mcp.json` | | Windsurf | `~/Library/Application Support/Windsurf/User/globalStorage/windsurf.mcp/config.json` | `~/.config/Windsurf/User/globalStorage/windsurf.mcp/config.json` | `%APPDATA%\Windsurf\User\globalStorage\windsurf.mcp\config.json` | | Gemini CLI | `~/.gemini/settings.json` | `~/.gemini/settings.json` | `%USERPROFILE%\.gemini\settings.json` | | Cline | `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` | `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` | `%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json` | | JetBrains / Junie | `~/.junie/mcp/mcp.json` | `~/.junie/mcp/mcp.json` | `%USERPROFILE%\.junie\mcp\mcp.json` | | Continue.dev | `~/.continue/config.yaml` | `~/.continue/config.yaml` | `%USERPROFILE%\.continue\config.yaml` | | Google Antigravity | `~/.gemini/antigravity/mcp_config.json` | `~/.gemini/antigravity/mcp_config.json` | `%USERPROFILE%\.gemini\antigravity\mcp_config.json` | | Zed | `~/.zed/settings.json` | `~/.config/zed/settings.json` | `%APPDATA%\Zed\settings.json` | | Amazon Q Developer | `~/.aws/amazonq/default.json` | `~/.aws/amazonq/default.json` | `%USERPROFILE%\.aws\amazonq\default.json` | 您也可以使用 `--config ` 指向特定的配置文件。 ## 安全分析器 | 分析器 | 描述 | |---|---| | `tool-poisoning` | 检测工具描述中试图覆盖 Agent 行为或窃取数据的隐藏指令。 | | `prompt-injection` | 识别服务器元数据、工具名称和参数模式中的提示注入模式。 | | `shadowing` | 标记那些遮蔽或重定义内置工具名称的工具,这些工具可能会劫持 Agent 的操作。 | | `suspicious-env` | 报告请求访问敏感环境变量(凭据、令牌、密钥)的工具。 | | `known-threats` | 根据已知恶意 MCP 服务器的精选数据库检查服务器包。 | ## 输出格式 默认输出是人类可读的控制台报告。用于自动化时,请使用结构化格式: ``` # JSON 输出 npx @agentdefenders/mcp-scan --format json # SARIF 输出(用于 GitHub Code Scanning 和其他 SARIF 消费者) npx @agentdefenders/mcp-scan --format sarif ``` ## CI/CD 集成 将 MCP 配置扫描添加到您的 CI 流水线中。`--ci` 标志会输出 GitHub Actions 注释,写入 Markdown 步骤摘要,并默认设置为 `--fail-on high`。 ### GitHub Actions(推荐) ``` - name: Scan MCP configurations run: npx @agentdefenders/mcp-scan --ci ``` 这将: - 在 Actions 日志中以 `::error::` / `::warning::` 注释的形式打印发现结果 - 将 Markdown 摘要写入作业摘要选项卡 - 如果检测到任何 HIGH 或 CRITICAL 级别的发现,则以代码 1 退出 ### 带 SARIF 上传的 GitHub Actions ``` - name: Scan MCP configurations run: npx @agentdefenders/mcp-scan --format sarif --fail-on high > mcp-scan.sarif - name: Upload SARIF uses: github/codeql-action/upload-sarif@v3 with: sarif_file: mcp-scan.sarif ``` ### 其他 CI 平台 ``` npx @agentdefenders/mcp-scan --quiet --fail-on high ``` ## CLI 参考 | 标志 | 描述 | 默认值 | |---|---|---| | `--config ` | 特定 MCP 客户端配置文件的路径。 | 自动检测 | | `--format ` | 输出格式:`console`、`json`、`sarif`。 | `console` | | `--fail-on ` | 如果任何发现结果达到或超过严重级别,则以代码 1 退出:`low`、`medium`、`high`、`critical`。 | 禁用(CI 模式下为 `high`) | | `--ci` | CI 模式:GitHub Actions 注释、步骤摘要、无提示。隐含 `--quiet`。 | 禁用 | | `--api-key ` | 用于仪表板同步的 AgentDefenders API 密钥。启用远程结果存储。 | 无 | | `--watch` | 持续监控配置文件的更改,并在修改后重新扫描。 | 禁用 | | `--interval ` | 使用 `--watch` 时的轮询间隔(秒)。 | `30` | | `--quiet` | 除发现结果和错误外,屏蔽所有输出。 | 禁用 | | `--badge` | 为您的项目 README 生成徽章 URL。 | 禁用 | ## 隐私 所有分析均在您的本地计算机上运行。除非您明确提供 `--api-key` 进行仪表板集成,否则不会向任何外部服务发送数据。 ## 链接 - [文档](https://docs.agentdefenders.ai/mcp-scan) - [仪表板注册](https://app.agentdefenders.ai) - [报告漏洞](https://github.com/AgentDefenders/mcp-scan/security/advisories) ## 许可证 [MIT](./LICENSE)
标签:Anthropic, CIS基准, Claude, CVE检测, DNS 反向解析, GNU通用公共许可证, GraphQL安全矩阵, LLM, MCP, MITM代理, Model Context Protocol, Node.js, npm, TLS, Unmanaged PE, 云安全监控, 大模型安全, 安全扫描器, 工具投毒检测, 影子攻击, 文档结构分析, 暗色界面, 网络安全, 自动化攻击, 防御工具, 隐私保护, 零日漏洞检测, 静态分析