MCPhound MCP安全扫描仪
一个GitHub操作,扫描您的MCP(模型上下文协议)服务器配置以查找安全漏洞和组合攻击路径。
MCPhound检测MCP设置中的危险权限组合、跨服务器攻击向量和已知CVE,然后将结果作为SARIF上传到GitHub代码扫描。
获取令牌
- 访问 mcphound.ai/ci/setup
- 点击 生成令牌 (标签是可选的)
- 立即复制令牌——它只显示一次
- 将其添加为名为的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 | high | medium | low | none) |
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配置:
- 中指定的路径
config_path .vscode/mcp.json.cursor/mcp.json
运作原理
- 该操作读取您的MCP服务器配置文件
- 发送到MCPhound API进行分析
- 收到带有安全调查结果的SARIF报告
- 将SARIF上传到GitHub代码扫描(显示在安全选项卡中)
- 如果发现超过严重性阈值,则可选择不进行检查
许可证
麻省理工学院
