Token导航 LogoToken导航TokenDH.com
MCP Scan Action logo
安全风控未说明官方级别未说明来源级核验

MCP Scan Action

MCP Server

一款GitHub Action工具,用于扫描MCP服务器、AI代理和LLM流水线的安全漏洞,并将结果直接发送到GitHub安全标签页。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
安全漏洞检测PythonClaudeAI代理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

nhomyk

提供方

nhomyk

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcp扫描操作

第一个扫描MCP服务器、AI代理和LLM管道以查找安全漏洞的GitHub Action,并将结果直接发送到您的GitHub security选项卡。

](https://github.com/marketplace/actions/mcp-security-scan) ![License: MIT](LICENSE) ![SARIF](https://sarifweb.azurewebsites.net/) ![No API Key](#no-api-key-required)

24漏洞检查。4个扫描引擎。运行时间成本为零。一行YAML。

______________________________________________________________________

为什么存在

MCP正在快速发展。正在建造数千台服务器,让人工智能代理访问浏览器、文件系统、API和内部服务。 几乎没有一个在发货前被扫描安全漏洞。

我们扫描了5个流行的开源MCP服务器。 所有5人都有发现:

回购类型风险评分最高发现严重性
浏览器自动化MCP1.000(关键)通过任意JS执行 playwright_evaluateCVSS 9.8
生产率API连接器0.390Auth令牌已登录到stdout
浏览器供应商DevTools MCP0.080克隆到子进程的完整环境
Vector DB Claude插件0.150未固定 npx -y 供应链风险中等
通过未验证的URL参数搜索MCP服务器0.200SSRF
一个拥有33个注册工具的浏览器自动化MCP公开了一个 playwright_evaluate 接受来自LLM的原始JavaScript的工具——没有验证,没有沙盒。那是 远程代码执行(CVSS 9.8) 由任何快速注射的试剂控制。这个动作会在第一次提交之前抓住它 main.

此操作为基于模型上下文协议构建的每个团队带来了自动化、连续的MCP安全扫描,无需任何配置,也无需API密钥。

______________________________________________________________________

快速入门--一行

- uses: nhomyk/mcp-scan-action@v1

将其添加到任何检查代码的作业中。就这样

______________________________________________________________________

完整工作流程

name: MCP Security Scan

on: [push, pull_request]

jobs:
  mcp-security:
    name: MCP Security Scan
    runs-on: ubuntu-latest
    permissions:
      security-events: write   # upload findings to GitHub Security tab
      contents: read

    steps:
      - uses: actions/checkout@v4

      - uses: nhomyk/mcp-scan-action@v1
        id: scan
        with:
          fail-on-critical: 'true'   # block merges on critical findings

      - name: Show risk level
        run: echo "Risk → ${{ steps.scan.outputs.risk-level }}"

调查结果立即出现在 安全→ 代码扫描警报。

______________________________________________________________________

它检测到什么——24个漏洞类

MCP工具中毒(11种攻击类型)

攻击类型发现什么现实世界示例
TOOL_POISONING操纵LLM行为的工具描述/模式工具元数据中的隐藏指令
EXFILTRATION_PATTERN数据路由到意外的外部端点凭据转发到攻击者控制的URL
PROMPT_INJECTION_VECTOR用户控制的数据不安全地连接到提示中f"Summarize: {user_input}" 未经消毒
AMBIENT_AUTHORITY具有超出声明范围的隐式权限的工具Object.entries(process.env) 克隆到子进程
UNRESTRICTED_FILE_ACCESS不进行路径清理的文件系统访问通过路径遍历 ../../../etc/passwd
SSRF_RISK通过工具控制的URL伪造服务器端请求args.url 传递给 fetch() 无域名分配
COMMAND_INJECTION基于LLM/用户输入构建的Shell命令exec("ls " + args.directory)
MISSING_AUTH无需凭据检查即可进行身份验证操作工具处理程序缺少令牌验证
UNCONSTRAINED_SCOPE没有权限边界的代理在任意路径上具有读+写+执行的代理
CROSS_ORIGIN_ESCALATION跨代理信任边界违规代理A将未经验证的输出转发给代理B
SHADOW_TOOL隐藏的工具注册对用户不可见已注册但未出现在工具列表中的工具

跨代理DataFlow Taint(9种查找类型)

跟踪来自的秘密和PII 源到汇 跨越代理边界:

SECRET_SOURCE (line 87): authToken = randomBytes(32).toString('hex')
        │
        ▼ [UNSANITIZED]
SINK_LOGGING (line 89): console.log(`Generated auth token: ${authToken}`)
                                     ↑
                          DataFlow risk: 1.000  ← caught by this action

SECRET_SOURCE · PII_SOURCE · CROSS_BOUNDARY · SINK_LOGGING · SINK_NETWORK · SINK_STORAGE · TAINT_PROPAGATION · MISSING_SANITIZE · PRIVILEGE_ESCALATION

快速注射(4种模式)

模式示例
直接串联prompt = "Answer: " + user_message
模板注入f"You are helpful. {system_prompt}" 由用户控制 system_prompt
不安全的LLM输出LLM响应传递给 eval()exec() 未经验证
角色覆盖可以覆盖系统角色上下文的用户输入

架构分析(MCP/Agent集成点)

所有的静态映射 MCP_TOOL, AGENT_FRAMEWORK, SHELL_EXEC,以及 EXTERNAL_HTTP 集成区域——在手动审查之前,为您提供代理攻击面的完整图片。

______________________________________________________________________

输出--GitHub安全选项卡

调查结果上传为 沙林2.1.0 直接到您的存储库 安全→ 代码扫描 页面。没有第三方仪表板,不需要帐户,没有数据离开GitHub。

┌─────────────────────────────────────────────────────────────────┐
│  Security  /  Code scanning alerts                               │
│                                                                  │
│  ● SSRF_RISK          High     src/tools/requests.ts:99         │
│  ● AMBIENT_AUTHORITY  High     scripts/eval_gemini.ts:115       │
│  ● SINK_LOGGING       High     scripts/start-server.ts:89       │
│  ● SHADOW_TOOL        Medium   src/registry.ts:44               │
│                                                                  │
│  4 open alerts  ·  Powered by AgenticQA MCP Scanner             │
└─────────────────────────────────────────────────────────────────┘

每个警报包括:文件路径、行号、严重性、CWE类和补救指南。

______________________________________________________________________

步骤总结

每次运行后,您的工作流中都会显示一个格式化的摘要 摘要 选项卡:

🔴 MCP Security Scan — CRITICAL

Total findings: 7 | Critical: 2

| Scanner                | Findings | Critical | Types Detected                          |
|------------------------|----------|----------|-----------------------------------------|
| MCP Tool Scan          | 3        | 1        | SSRF_RISK, COMMAND_INJECTION, SHADOW_TOOL |
| DataFlow Taint         | 2        | 1        | SECRET_SOURCE, SINK_LOGGING             |
| Prompt Injection       | 1        | 0        |                                         |
| Architecture (MCP/Agent)| 1       | 0        | AGENT_FRAMEWORK                         |

______________________________________________________________________

在下游步骤中使用输出

- uses: nhomyk/mcp-scan-action@v1
  id: mcp

# Gate deployment on risk level
- name: Block on critical
  if: steps.mcp.outputs.risk-level == 'critical'
  run: |
    echo "❌ ${{ steps.mcp.outputs.critical-count }} critical finding(s) — deploy blocked"
    exit 1

# Save SARIF as workflow artifact
- name: Upload scan artifact
  uses: actions/upload-artifact@v4
  with:
    name: mcp-scan-sarif
    path: ${{ steps.mcp.outputs.sarif-file }}

# Post finding count to Slack/webhook
- name: Notify
  run: |
    curl -X POST $SLACK_WEBHOOK \
      -d "{\"text\": \"MCP scan: ${{ steps.mcp.outputs.findings-count }} findings, risk=${{ steps.mcp.outputs.risk-level }}\"}"

______________________________________________________________________

输入

输入默认值描述
repo-path.要扫描的存储库根路径
fail-on-criticalfalse如果存在任何关键发现,则退出代码1
sarif-outputmcp-scan-results.sarifSARIF输出文件名
upload-sariftrue上传到GitHub代码扫描(security-events: write 必填)
categorymcp-securitySARIF类别--在运行多个扫描作业时很有用

输出

输出描述
findings-countinteger所有4个扫描引擎的总结果
risk-levellow · medium · high · critical总体风险分类
critical-countinteger严重程度严重的发现数量
sarif-filepath生成的SARIF文件的位置

______________________________________________________________________

仅PR扫描

on:
  pull_request:
    branches: [main]

jobs:
  mcp-scan:
    runs-on: ubuntu-latest
    permissions:
      security-events: write
      contents: read
    steps:
      - uses: actions/checkout@v4
      - uses: nhomyk/mcp-scan-action@v1
        with:
          fail-on-critical: 'true'
          category: 'mcp-pr-scan'

______________________________________________________________________

成本节约

不执行此操作执行此操作
人工安全审查:~40小时×200美元/小时= 每个审查周期8000美元$0--每次推送都有收益
数据泄露的平均成本: 488万美元 (IBM 2024)在凭证泄漏进入生产之前将其捕获
MCP审计安全顾问: $15,000–$50,000自动化、连续、确定性
在生产环境中发现错误: 贵6倍 而不是在CI中找到它向左移动:阻止合并,而不是事件
静态分析捕获了一整类错误——SSRF、命令注入、凭证日志记录——这些错误很容易预防,但会造成灾难性的失误。自动化检查的成本为零。

______________________________________________________________________

不需要API密钥

所有扫描都是 纯静态分析。 行动:

  • 从不打电话给LLM
  • 从不将代码发送到外部服务
  • 确定性地生成结果——每次运行都使用相同的代码、相同的结果
  • 完全在GitHub Actions运行器中运行

______________________________________________________________________

支持的语言和框架

在以下位置检测MCP和代理模式:

语言框架/模式
Types/JavaScript@modelcontextprotocol/sdk、LangChain.js、AutoGen js、direct fetch() 电话
pythonlangchain, langgraph, crewai, autogen, anthropic, openai SDK
JSONmcp*.json 配置文件——工具注册, npx -y 供应链风险
任何架构分析在所有支持的语言上运行

______________________________________________________________________

运作原理

Your repo
    │
    ├── MCPSecurityScanner     → 11 attack types via pattern matching + tool schema analysis
    │                            Learned patterns accumulate from real findings
    │
    ├── CrossAgentDataFlowTracer → 9 taint finding types
    │                              Tracks SECRET/PII from source → sink across agent calls
    │
    ├── PromptInjectionScanner → 4 injection patterns
    │                            Direct concat · Template · Unsafe output · Role override
    │
    └── ArchitectureScanner    → Maps all MCP_TOOL + AGENT_FRAMEWORK integration points
                                 Full attack surface visibility before manual review
                                        │
                                        ▼
                               SARIFExporter (2.1.0)
                                        │
                                        ▼
                        GitHub Security → Code scanning alerts

______________________________________________________________________

由AgenticQA提供技术支持

此操作将安全扫描程序从 代理QA --面向人工智能原生团队的开源自主CI/CD平台。

AgenticQA添加到您的管道中:

  • 连续MCP安全扫描 (此操作)
  • 欧盟人工智能法案合规性 --附件三分类+第九、十三、十四、二十二条
  • HIPAA PHI检测 --代码库中的5个PHI污染类别
  • 自我修复CI --SRE代理自动修复棉绒错误和测试失败
  • 对抗性硬化 --红队特工,20种旁路技术+宪法门
  • SOC 2/GDPR --7台合规扫描仪,SARIF可导出证据

探索代理商QA→

______________________________________________________________________

许可证

MIT© nhomyk

目录标签

目录标签

安全漏洞检测PythonClaudeAI代理安全扫描本地部署GitHubActionMCP服务器

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP