MCP安全扫描工具

一个GitHub Action工具,用于扫描MCP服务器配置中的安全漏洞和组合攻击路径,检测危险权限组合、跨服务器攻击向量和已知CVE,并将结果上传至GitHub Code Scanning。

  • by tayler-id
  • Shell
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 tayler-id/mcphound-action

使用说明

MCPhound MCP安全扫描仪

一个GitHub操作,扫描您的MCP(模型上下文协议)服务器配置以查找安全漏洞和组合攻击路径。

MCPhound检测MCP设置中的危险权限组合、跨服务器攻击向量和已知CVE,然后将结果作为SARIF上传到GitHub代码扫描。

获取令牌

  1. 访问 mcphound.ai/ci/setup
  2. 点击 生成令牌 (标签是可选的)
  3. 立即复制令牌——它只显示一次
  4. 将其添加为名为的GitHub Actions机密 MCPHOUND_API_TOKEN

快速开始

创建 .github/workflows/mcphound.yml:

name: MCPhound Security Scan

on:
  push:
    branches: [main]
  pull_request:

permissions:
  security-events: write
  contents: read

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: tayler-id/mcphound-action@v0
        with:
          api_token: ${{ secrets.MCPHOUND_API_TOKEN }}

输入

输入 必填 默认 说明
api_token 是 - MCPhound API令牌(作为存储库机密存储)
config_path 没有 .cursor/mcp.json MCP配置文件的路径
fail_on 没有 critical 检查失败的最低严重程度(critical
api_url 没有 https://mcphound-api.fly.dev MCPhound API URL
mode 没有 ci 扫描模式
timeout_seconds 没有 120 API请求超时(秒)
category 没有 mcphound 用于代码扫描的SARIF类别

输出

输出 描述
sarif_file SARIF结果文件的路径
findings_count 安全调查结果数量
max_severity 发现最高严重级别(critical, medium, low,或 none)

例子

自定义配置路径

- uses: tayler-id/mcphound-action@v0
  with:
    api_token: ${{ secrets.MCPHOUND_API_TOKEN }}
    config_path: "config/mcp-servers.json"

严重程度或以上失败

- uses: tayler-id/mcphound-action@v0
  with:
    api_token: ${{ secrets.MCPHOUND_API_TOKEN }}
    fail_on: "high"

构建永远不会失败(仅报告)

- uses: tayler-id/mcphound-action@v0
  with:
    api_token: ${{ secrets.MCPHOUND_API_TOKEN }}
    fail_on: "none"

在后续步骤中使用扫描输出

- uses: tayler-id/mcphound-action@v0
  id: mcphound
  with:
    api_token: ${{ secrets.MCPHOUND_API_TOKEN }}

- run: echo "Found ${{ steps.mcphound.outputs.findings_count }} findings"

分叉公关行为

为了安全起见,MCPhound会自动跳过对来自分叉存储库的拉取请求的扫描。Fork PR无法访问存储库机密,因此API令牌将不可用。该操作干净地退出,并发出通知,而不是失败。

配置文件检测

该操作按以下顺序查找您的MCP配置:

  1. 中指定的路径 config_path
  2. .vscode/mcp.json
  3. .cursor/mcp.json

运作原理

  1. 该操作读取您的MCP服务器配置文件
  2. 发送到MCPhound API进行分析
  3. 收到带有安全调查结果的SARIF报告
  4. 将SARIF上传到GitHub代码扫描(显示在安全选项卡中)
  5. 如果发现超过严重性阈值,则可选择不进行检查

许可证

麻省理工学院