cisco-ai-defense/mcp-scanner

Scan MCP servers for potential threats & security findings.

什么是 MCP Scanner?

MCP Scanner 是一款基于 Python 的安全工具,用于检查 模型上下文协议(MCP)服务器及其暴露的资源——工具、提示词、资源,甚至服务器代码本身。它结合了三个分析引擎:

  1. Cisco AI Defense inspect API – 一种专有服务,可以评估 MCP 负载。
  2. YARA – 用于已知恶意代码的经典模式匹配规则。
  3. 基于 LLM 的分析 – 大型语言模型提示,用于推理提示词、工具和代码的安全性。

结果是详细的安全报告,可在本地、CI/CD 管道或通过 REST API 使用。


主要功能(如 README 中所述)

功能 作用
多种操作模式 作为独立 CLI(mcp-scanner)运行,或将扫描器作为 REST API(mcp-scanner-api)暴露。
三引擎分析 使用 YARA、Cisco AI Defense API 和/或 LLM——可组合或单独使用。
易受攻击包扫描 集成 pip-audit 以标记 Python 依赖项中的已知 CVE。
就绪性扫描 针对生产级问题(如缺少超时或错误处理)进行静态检查。
行为代码扫描 在 Docker 沙箱中执行或静态分析 MCP 服务器的源代码,以发现恶意行为。
VirusTotal 二进制扫描 在 VirusTotal 上查找捆绑文件(图像、PDF、可执行文件、归档文件)的 SHA-256 哈希。
PyPI 和 npm 供应链扫描 下载包,在隔离的 Docker 容器中运行,并分析其行为。
静态/离线扫描 接受预生成的 MCP JSON 文件——非常适合 CI/CD 或气隙环境。
细粒度认证 支持 OAuth、Bearer 令牌、自定义 HTTP 头,以及针对 Cisco AI Defense、LLM 提供商和 VirusTotal 的显式 API 密钥配置。
MCP 2.0 协议支持 协商即将推出的 2026-07-28 协议版本,自动回退到旧版握手。
自定义 YARA 规则 用户可以添加自己的规则集以检测组织特定的模式。
全面报告 多种输出格式(摘要、表格、原始 JSON、按工具)以及 --detailed 标志以获取更深入的见解。

如何运行

  1. 先决条件 – Python 3.11+、uv 包管理器,以及可选的 API 密钥(Cisco AI Defense、LLM 提供商、VirusTotal)。MCP Python SDK(mcp>=2.0.0)已捆绑。
  2. 安装 – 作为全局工具:
    uv tool install --python 3.13 cisco-ai-mcp-scanner
    
    或从源代码使用 uv sync。
  3. 配置 – 为要使用的服务导出环境变量,例如:
    export MCP_SCANNER_API_KEY=…          # Cisco AI Defense
    export MCP_SCANNER_LLM_API_KEY=…      # OpenAI / Bedrock 等
    export VIRUSTOTAL_API_KEY=…           # VirusTotal
    
  4. 运行快速扫描 – 仅使用 YARA 扫描远程服务器的示例 CLI 命令:
    mcp-scanner --server-url https://mcp.example.com/mcp \
                --analyzers yara --format summary
    
    或启动 REST API:
    mcp-scanner-api --host 0.0.0.0 --port 8080
    

典型用例

场景 MCP Scanner 为何有帮助
内部 LLM 服务的安全审计 检查 MCP 协议实现以及提示词/工具的内容,以发现隐藏的恶意行为。
第三方包的供应链审查 pypi-scan / npm-scan 下载包,将其沙箱化,并运行行为分析和 YARA 检查。
CI/CD 门禁 在代码提升之前,使用 static 子命令对生成的 MCP JSON 文件强制执行安全性。
事件响应 快速对可疑 MCP 服务器捆绑的任何二进制文件运行 virustotal。
合规性 vulnerable-package 标记 Python 依赖项中的已知 CVE,补充 LLM/YARA 发现。

限制与注意事项(来自 README)

  • LLM 分析器需要付费 API 密钥(OpenAI、Bedrock、Azure 等)——该工具仅向模型发送提示;它不在本地托管任何模型。
  • VirusTotal 查找需要 API 密钥;上传文件是可选的,默认禁用以保护隐私。
  • PyPI/npm 包的行为分析默认在 Docker 中运行;禁用 Docker(--no-docker)会在进程中运行代码,这可能隔离性较差。
  • 扫描基于 stdio 的 MCP 服务器可能需要更长的超时时间(MCP_SCANNER_STDIO_TIMEOUT),如果服务器执行繁重的启动工作。
  • 该工具专注于安全发现——它不会尝试自动修复或补救问题。

谁可能觉得这有用?

  • 安全工程师保护暴露 MCP 端点的内部 LLM 支持服务。
  • DevOps / CI 团队希望为 MCP 服务器使用的 Python 或 JavaScript 包的供应链安全提供自动化门禁。
  • 基于 MCP 的应用程序开发人员需要验证其工具、提示词和资源不会无意中成为恶意。
  • 红队 / 审计顾问寻找一种快速方法,将 YARA 签名、LLM 推理和 Cisco 的 AI-Defense API 结合到目标 MCP 部署中。

结论

cisco-ai-mcp-scanner 是一款功能齐全、Python 原生的安全扫描器,专为新兴的 模型上下文协议 生态系统量身定制。通过将 YARA、商业 AI 防御服务和 LLM 推理结合在一起,它为从业者提供了一个单一的命令行(或 API)界面,用于评估 MCP 服务器、其代码及其依赖包的安全性。

相关

  • 项目
  • 项目
  • 项目
  • 项目