MCP安全扫描工具

MCPSec是一款用于扫描MCP服务器安全合规性的工具,支持多种安全标准检测和报告生成。

  • by mcp-shark
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 mcp-shark/MCPSec

使用说明

🛡️ MCPSec

MCP的安全门楣

一个MCP服务器,用于审核其他MCP服务器是否符合 MCP官方规范, OWASP MCP前10名, OWASP 代理 AI 前十名,以及 FastMCP安全基线。扫描任何服务器。获取合规报告。解决问题。

部分 MCP鲨鱼 项目族 --用于模型上下文协议的取证分析、安全扫描和开发工具。

MCP鲨鱼产品 用途
智能扫描 基于人工智能的安全分析和风险评估
检查员 实时MCP流量监控与调试
MCPSec 对MCP规范和OWASP标准进行深入的合规性扫描

为什么选择MCPSec

模型上下文协议正迅速成为将AI代理连接到工具的通用标准,被Claude、ChatGPT、VS Code、Gemini和Cursor采用。但MCP安全是事后才考虑的:

  • 88% MCP服务器需要凭据,但是 53% 依赖不安全的静态秘密
  • 仅 8.5% 实现现代OAuth身份验证
  • 30个CVE 6周内记录在案,其中43%为exec/shell注入
  • 针对MCP客户端的第一个完整RCE(CVE-2025-6514)得分 CVSS 9.6
  • 无现有工具 系统地验证是否符合官方MCP规范

MCPSec填补了这一空白。


主要特点

  • 34项安全调查结果 6名审计员(身份验证、传输、授权、工具、配置、供应链)
  • 4种检测模式 --端点探测、MCP自检、主动令牌测试、静态分析
  • LLM混合分类器 --基于规则的第一轮+LLM语义分析(BYOK通过LiteLLM)
  • 合规记分卡 --MCP规范、OWASP MCP前10名、FastMCP基线评分A-F级
  • 双界面 --作为MCP服务器(用于Claude Desktop、Cursor、VS Code)或独立CLI运行
  • 4种报告格式 --Markdown、JSON、SARIF(GitHub代码扫描)、交互式HTML仪表板
  • CI/CD门控 — mcpsec ci 根据CVSS阈值返回退出代码
  • 扫描历史记录 --带扫描比较和趋势跟踪的SQLite存储
  • 直通LLM --在MCP服务器模式下,使用客户端自己的LLM进行分类
  • 隐私第一 --完全本地,没有数据离开您的机器

快速开始

安装

pip install mcpsharksec

首次扫描

mcpsec scan https://your-mcp-server.com

LLM分类

export ANTHROPIC_API_KEY=sk-...   # or OPENAI_API_KEY, GEMINI_API_KEY
mcpsec scan https://your-mcp-server.com --llm

生成报告

mcpsec report <scan_id> --format html      # Interactive dashboard
mcpsec report <scan_id> --format markdown   # Terminal / GitHub PR
mcpsec report <scan_id> --format sarif      # GitHub Code Scanning

MCP服务器模式

MCPSec本身就是一个MCP服务器——任何MCP客户端都可以直接调用其扫描工具。

启动服务器

mcpsec serve                              # stdio (Claude Desktop, Cursor, Claude Code)
mcpsec serve --transport http --port 8000  # Streamable HTTP

克劳德桌面版

添加 claude_desktop_config.json:

{
  "mcpServers": {
    "mcpsec": {
      "command": "mcpsec",
      "args": ["serve"]
    }
  }
}

从源代码(不安装pip):

{
  "mcpServers": {
    "mcpsec": {
      "command": "/path/to/mcpsec/.venv/bin/python",
      "args": ["-m", "mcpsec.cli", "serve"],
      "cwd": "/path/to/mcpsec"
    }
  }
}

克劳德代码

Claude Code使用自己的CLI来管理MCP服务器:

# Add MCPSec (installed via pip)
claude mcp add-json mcpsec '{"command":"mcpsec","args":["serve"]}'

# Or from source
claude mcp add-json mcpsec '{"command":"/path/to/mcpsec/.venv/bin/python","args":["-m","mcpsec.cli","serve"],"cwd":"/path/to/mcpsec"}'

# Use --scope to control availability
claude mcp add-json mcpsec --scope user '{"command":"mcpsec","args":["serve"]}'
# Scopes: local (default, current project), project (shared via .mcp.json), user (all projects)

# Manage servers
claude mcp list
claude mcp get mcpsec
claude mcp remove mcpsec

光标

添加 .cursor/mcp.json:

{
  "mcpServers": {
    "mcpsec": {
      "command": "mcpsec",
      "args": ["serve"]
    }
  }
}

VS Code

添加 .vscode/settings.json:

{
  "mcp": {
    "servers": {
      "mcpsec": {
        "command": "mcpsec",
        "args": ["serve"]
      }
    }
  }
}

双子星命令行工具

添加 ~/.gemini/settings.json (全球)或 .gemini/settings.json (项目):

{
  "mcpServers": {
    "mcpsec": {
      "command": "mcpsec",
      "args": ["serve"]
    }
  }
}

或者使用Gemini CLI命令:

gemini mcp add --transport stdio mcpsec -- mcpsec serve

ChatGPT

ChatGPT需要 远程HTTPS端点 --它无法连接到本地stdio服务器。要将MCPSec与ChatGPT一起使用:

  1. 在公共HTTPS URL上部署带有流式HTTP的MCPSec(或使用类似ngrok的隧道进行测试)
  2. 启用 开发者模式 在ChatGPT设置中(需要Pro、Team、Enterprise或Edu计划)
  3. 首选 设置→ 应用程序和连接器→ 创建
  4. 输入您的MCPSec服务器URL(例如。 https://your-server.com/mcp)

注: 建议仅在本地使用安全扫描。ChatGPT集成最适合团队/企业部署(见路线图M6)。

直通LLM流量

在MCP服务器模式下,MCPSec不需要自己的LLM API密钥。相反:

  1. 客户电话 scan_tools(url) → 获取基于规则的发现
  2. 客户电话 get_unclassified_tools(url) → 获取预先构建的分类提示
  3. 这 客户自己的法学硕士 提示的原因
  4. 客户电话 classify_tools(scan_id, classifications) → 并入调查结果

这意味着Claude Desktop使用Claude,Cursor使用其配置的模型,Gemini CLI使用Gemini等。--自动。


CLI参考

命令 描述
mcpsec scan <url> 全面安全扫描(所有审计员)
mcpsec auth <url> OAuth 2.1合规性审计
mcpsec transport <url> 传输和会话安全
mcpsec authorization <url> 范围和权限模型审核
mcpsec tools <url> 工具元数据和中毒分析
mcpsec config [path] 本地配置文件审核
mcpsec dependencies <path> 依赖性漏洞检查
mcpsec ci <url> --fail-on 7.0 CI/CD模式(CVSS阈值上的退出代码)
mcpsec serve 以MCP服务器运行
mcpsec report <scan_id> 生成合规报告
mcpsec list 列出以前的扫描
mcpsec compare <id_a> <id_b> 比较两次扫描
mcpsec scan_local 枚举和审核本地MCP服务器 (存根)

通用标志

--access remote|authenticated|local    # Scanner access level
--depth quick|standard|thorough        # Scan thoroughness
--test-token <token>                   # Bearer token for active checks
--llm                                  # Enable LLM classification (BYOK)
--model <name>                         # Override LLM model
--json                                 # Output as JSON

Scan → 推荐→ Fix

MCPSec遵循三层架构:

第1层:扫描✅

无损探测、配置分析、工具元数据检查、与FastMCP身份验证基线的模式匹配。

第2级:推荐✅

对于每个发现:解释风险,映射到特定的规范部分+OWASP ID,提供FastMCP代码示例的逐步补救。

第3层:修复(路线图)

自动生成可供编码代理(Claude Code、Cursor、Copilot)使用的结构化修复描述符。MCPSec输出修复程序——开发人员的编码代理应用它们。


调查结果目录

MCPSec检测 34项安全调查结果 6名审计员:

身份验证(从AUTH-001到AUTH-013)

ID 标题 严重性 检测
AUTH-001 受保护的资源元数据丢失 严重 端点
AUTH-002 检测到令牌通过 严重 静态
AUTH-003 未强制执行令牌访问群体绑定 严重 活动
AUTH-004 通过HTTP的远程服务器(无TLS) 严重 端点
AUTH-005 不支持PKCE 严重 端点
AUTH-006 授权服务器元数据缺失 高 端点
AUTH-007 未强制执行资源指示符 高 活动
AUTH-008 URI查询字符串中的承载令牌 高 端点
AUTH-009 401缺少WWW身份验证标头 高 端点
AUTH-010 作用域错误处理不足 中等 活动
AUTH-011 WWW身份验证挑战中没有作用域 中等 端点
AUTH-012 无注册机制 介质 端点
AUTH-013 带HTTP身份验证的STDIO服务器 低 端点

运输(TRANS-001至TRANS-004)

ID 标题 严重性 检测
TRANS-001 弃用的SSE传输 高 端点
TRANS-002 SSRF易受攻击的元数据URL 关键 端点
TRANS-003 会话ID低熵 高 活动
TRANS-004 会话绑定未强制执行 高 活动

授权(AUTHZ-001至AUTHZ-004)

ID 标题 严重性 检测
AUTHZ-001 未经授权的管理工具 严重 活动
AUTHZ-002 无每工具范围要求 高 反思
AUTHZ-003 通配符/宽范围定义 高 内省
AUTHZ-004 通过作用域提升权限 严重 活动

工具(工具-001至工具-005)

ID 标题 严重性 检测
TOOL-001 工具描述中毒 严重 内省+LLM
TOOL-002 指令注入模式 临界 静态
TOOL-003 路径遍历漏洞 高 静态
TOOL-004 输入模式缺少约束 高 自省
TOOL-005 危险工具名称 高 内省+LLM

配置(CONFIG-001至CONFIG-004)

ID 标题 严重性 检测
CONFIG-001 配置中的硬编码凭据 关键 静态
CONFIG-002 启动程序中的外壳注入 临界 静态
CONFIG-003 服务器路径上的Symlink攻击 高 静态
CONFIG-004 检测到影子MCP服务器 高 静态

供应链(SC-001至SC-004)

ID 标题 严重性 检测
SC-001 依赖关系中的已知CVE 严重 静态
SC-002 检测到百草枯包装 严重 静态
SC-003 无固定依赖版本 中等 静态
SC-004 未经验证的包发布器 中等 静态

合规记分卡

每次扫描都会生成一个合规性记分卡:

  • 总分(0-100) 字母等级A-F
  • MCP规范合规性 --根据官方MCP授权规范得分
  • OWASP MCP十大覆盖范围 --明确0-10个风险类别
  • FastMCP基线 --与FastMCP的身份验证实现模式保持一致

随着 --llm 启用后,记分卡包括人工智能生成的 风险叙述 解释发现交互作用和优先补救推理。


LLM混合分类

MCPSec使用双通道检测管道:

  1. 基于规则 (快速、自由、确定性)——用于中毒、危险名称、模式问题的正则表达式模式
  2. LLM语义分析 (选择加入)——捕捉规则遗漏的微妙操纵

支持的提供商(BYOK)

提供者 环境变量 默认模型
人类学 ANTHROPIC_API_KEY claude-sonnet-4-20250514
OpenAI OPENAI_API_KEY gpt-4o
谷歌 GEMINI_API_KEY 双子座2.0闪光
米斯特拉尔 MISTRAL_API_KEY mistral大最新
Groq GROQ_API_KEY 骆驼-3.3-70b

从环境变量中自动检测到。覆盖 --model 或 MCPSEC_LLM_MODEL.


报告

标记语言

终端友好,是GitHub PR评论的理想选择。

JSON

机器可读,可与其他工具集成。

萨里夫

GitHub代码扫描、Azure DevOps、VS代码SARIF查看器的标准格式。

HTML仪表盘

交互式网络安全主题仪表板,包括:

  • 严重程度圆环图
  • OWASP MCP十大雷达图
  • 框架合规性柱状图
  • 可排序/可过滤的发现,具有可扩展的详细信息
  • 补救优先级表
mcpsec scan https://mcp-server.com
mcpsec report <scan_id> --format html
# Opens mcpsec_report_<scan_id>.html

CI/CD集成

GitHub 操作

name: MCP Security Scan
on: [push, pull_request]

jobs:
  mcpsec:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      - run: pip install mcpsharksec
      - run: mcpsec ci ${{ vars.MCP_SERVER_URL }} --fail-on 7.0 --json

这 mcpsec ci 如果任何发现达到或超过CVSS阈值,则命令以代码1退出。


标准与合规框架

MCPSec根据以下内容进行验证:

标准 覆盖范围
MCP规范 (草案-2025-11-25) OAuth 2.1、传输、会话、输入验证
FastMCP身份验证基线 TokenVerifier、OAuthProvider、require_scopes()、restrict_tag()
OWASP MCP前10名 (v0.12025) 所有10个风险类别
OWASP 代理 AI 前十名 (2026) ASI01–ASI10交叉引用
OWASP LLM Top 10 (2025) MCP特定变体
RFC 6749, 6750, 7591, 7636, 8414, 8707, 9728
NIST AI RMF 风险管理交叉引用
米特地图集 对抗性机器学习技术映射

建筑

graph TB
    subgraph Target["Target MCP Server"]
        T[MCP Server being scanned]
    end

    subgraph Engine["Scanner Engine"]
        A1[Auth Auditor<br/>AUTH-001 to 013]
        A2[Transport Auditor<br/>TRANS-001 to 004]
        A3[Authorization Auditor<br/>AUTHZ-001 to 004]
        A4[Tools Auditor<br/>TOOL-001 to 005]
        A5[Config Auditor<br/>CONFIG-001 to 004]
        A6[Supply Chain Auditor<br/>SC-001 to 004]
        LLM[LLM Hybrid Classifier<br/>Rule-based + Semantic]
    end

    subgraph Reports["Results & Reports"]
        SC[Compliance Scorecard]
        MD[Markdown]
        HTML[HTML Dashboard]
        SARIF[SARIF]
        JSON[JSON]
        DB[(SQLite History)]
    end

    subgraph Server["MCPSec Server - FastMCP"]
        MCP[14 MCP Tools<br/>Streamable HTTP / stdio]
        CLI[CLI + CI/CD]
    end

    subgraph Clients["MCP Clients"]
        CD[Claude Desktop]
        CC[Claude Code]
        VS[VS Code]
        CU[Cursor]
        GE[Gemini CLI]
        GP[ChatGPT]
        CI[CI/CD Pipelines]
    end

    T --> Engine
    A4 --> LLM
    Engine --> Reports
    Reports --> Server
    Server --> Clients

    style Target fill:#1a1a2e,stroke:#ff1744,color:#fff
    style Engine fill:#0f1729,stroke:#448aff,color:#fff
    style Reports fill:#0f1729,stroke:#69f0ae,color:#fff
    style Server fill:#0f1729,stroke:#ffd600,color:#fff
    style Clients fill:#111827,stroke:#c0c8d8,color:#fff

发展

设置

git clone https://github.com/mcp-shark/mcpsec.git
cd mcpsec
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

运行测试

pytest -m "not llm and not exa" -v     # Core tests (no API keys needed)
pytest -v                               # Full suite (needs ANTHROPIC_API_KEY)
pytest -m exa -v                        # Real-world Exa MCP server tests

测试覆盖率

  • 444测试 涵盖所有6名审核员、LLM分类器、记分卡、报告
  • 用于主动检查验证的合规+不合规测试服务器
  • 用于确定性LLM测试的MockProvider
  • 具有真实人类分类的实时LLM测试

竞争比较

能力 Snyk MintMCP MCPScan.ai MCPShield 代理审计 MCPSec
MCP规范合规性审计 ❌ ❌ ❌ ❌ ❌ ✅
FastMCP身份验证基线 ❌ ❌ ❌ ❌ ❌ ✅
OAuth 2.1验证 ❌ ❌ 部分 ❌ ❌ ✅
OWASP MCP Top 10全覆盖 部分 部分 局部 局部 部分 ✅
工具中毒(LLM) ✅ ✅ ✅ ❌ ✅ ✅
供应链扫描 ❌ ❌ ❌ ✅ ✅ ✅
SSRF端点扫描 ❌ ❌ ❌ ❌ ❌ ✅
修正+代码示例 ❌ ❌ ❌ ❌ ❌ ✅
合规记分卡 ❌ ❌ ❌ ❌ ❌ ✅
扫描比较/趋势分析 ❌ ❌ ❌ ❌ ❌ ✅
交互式HTML仪表板 ❌ ❌ ❌ ❌ ❌ ✅
CI/CD集成 ✅ ❌ ❌ ✅ ❌ ✅
MCP服务器模式 ❌ ❌ ❌ ❌ ❌ ✅
隐私(完全本地) ❌ ❌ ❌ ✅ ❌ ✅

路线图

里程碑 范围 状态
M1 核心扫描仪、16项发现、CLI、报告 ✅ 完成
平方米 所有34个发现、LLM分类器、测试服务器、记分卡、HTML报告 ✅ 完成
立方米 公开发布、PyPI包、5+客户端测试、文档 🔄 进行中
M4 自动修复生成(第3层)、结构化修复描述符、npm包装器、GitHub Action 已计划
M5 代理扫描程序(独立的MCP服务器,OWASP代理AI Top 10) 计划中
M6 企业(远程部署、团队仪表板、策略引擎) 已计划

分布

渠道 里程碑 状态
PyPI — pip install mcpsharksec M3 ✅ 已发布
npm — npm install mcpsharksec M4 计划中
GitHub行动 — mcp-shark/mcpsec-action@v1 M4 计划中

许可证

麻省理工学院——见 许可证.


Part of the MCP Shark project family
Forensic analysis, security scanning, and developer tooling for the Model Context Protocol