sulthonzh/mcp-audit
GitHub: sulthonzh/mcp-audit
一款面向 MCP 服务器及 Docker、Kubernetes、Helm 基础设施的安全扫描器,帮助团队在部署前发现权限滥用、密钥泄露和配置风险。
Stars: 0 | Forks: 0
# MCP Audit 🔍
用于 MCP (Model Context Protocol) 服务器的安全扫描器 —— 同时也支持你的容器/K8s/Helm 基础设施。你可以把它看作是针对你的 AI 代理集成和云原生部署的 `npm audit`。
## 为什么使用 MCP Audit?
大家都在疯狂地安装 MCP 服务器,但没有人检查它们是否即将赋予某个插件访问其文件系统、数据和上下文的完全权限。MCP Audit 让你能够深入了解这些服务器实际能做什么 —— 并在风险对你造成损害之前将其标记出来。
它还可以扫描 Dockerfile、Kubernetes manifest 和 Helm chart,因为你的 AI 工具并不是存在于真空中的。它们运行在容器中、集群上、chart 背后。不妨对整个技术栈进行审计。
## 扫描内容
| 目标 | 命令 | 检测内容 |
|--------|---------|-----------------|
| MCP 配置文件 | `mcp-audit scan` | 有风险的权限、过于宽泛的文件访问权限 |
| MCP 服务器仓库 | `mcp-audit check ` | 提示词注入、硬编码的密钥、信任评分 |
| Dockerfile | `mcp-audit docker ` | Root 用户、暴露的密钥、过时的基础镜像 |
| Kubernetes manifest | `mcp-audit k8s ` | 特权容器、hostNetwork、不受限制的资源 |
| Helm chart | `mcp-audit helm ` | values.yaml 中硬编码的密钥、不安全的默认配置 |
## 快速开始
```
npm install -g mcp-audit
# 扫描你的 MCP config
mcp-audit scan
# 审计远程 MCP server
mcp-audit check github.com/user/mcp-server
# 扫描 Dockerfile
mcp-audit docker ./Dockerfile
# 扫描 K8s manifests
mcp-audit k8s ./manifests
# 扫描 Helm chart
mcp-audit helm ./my-chart
# CI 模式(发现问题时退出并返回 code)
mcp-audit check --ci
```
## 用法
### 扫描 MCP 配置
检查 `claude_desktop_config.json`、`.cursor/mcp.json` 及其他 MCP 配置文件中是否存在有风险的权限。
```
mcp-audit scan
mcp-audit scan -o report.json # save report
```
### 检查远程服务器
克隆仓库,运行静态分析,并基于 GitHub 信号生成信任评分。
```
mcp-audit check https://github.com/username/mcp-server
mcp-audit check https://github.com/username/mcp-server --ci # CI-friendly
```
### Docker 安全
```
mcp-audit docker ./Dockerfile
mcp-audit docker ./docker-dir # scans all Dockerfiles in directory
```
检测内容:root 用户、`ADD` 与 `COPY` 的对比、硬编码的密钥、`latest` 标签、缺失的 `.dockerignore`。
### Kubernetes 安全
```
mcp-audit k8s ./manifests
mcp-audit k8s ./manifests --strict # stricter checks
```
检测内容:特权容器、hostNetwork/hostPID、缺失的资源限制、未设置的 `alwaysPullPolicy`、以 root 身份运行的容器。
### Helm Chart 安全
```
mcp-audit helm ./my-chart
mcp-audit helm ./my-chart --strict -o report.json
```
自动检测 Helm chart(查找 `Chart.yaml`)。扫描 `values.yaml` 中的硬编码密钥和特权标志,从 `templates/` 中剥离 Go template 语法并运行 K8s 安全检查,以及验证 `Chart.yaml` 中是否包含已弃用的 API 版本和缺失的元数据。
### CI 集成
所有扫描器均支持 `--ci`,可输出对 pipeline 友好的内容并返回正确的退出代码。使用 `--strict` 选项可以在出现警告时也判定为失败。
```
# GitHub Actions 示例
- name: Security Audit
run: |
npx mcp-audit k8s ./k8s --ci --strict
npx mcp-audit docker . --ci
npx mcp-audit helm ./charts --ci
```
## 配置
创建 `mcp-audit.config.json` 以进行自定义:
```
{
"vulnerabilityDatabase": "https://raw.githubusercontent.com/your-org/mcp-vuln-db/main/database.json",
"trustWeight": {
"stars": 0.3,
"tests": 0.3,
"ci": 0.2,
"age": 0.2
}
}
```
## Pre-commit Hook
```
# .pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: mcp-audit
name: MCP Security Audit
entry: mcp-audit check --ci
language: system
```
## 工具对比
| 工具 | 范围 | MCP 配置 | Docker/K8s/Helm | SARIF 输出 | CLI |
|------|-------|-----------|-----------------|-------------|-----|
| **mcp-audit** | MCP 服务器 + 基础设施 | ✅ | ✅ | ✅ | ✅ |
| `npm audit` | 仅限 npm 依赖 | ❌ | ❌ | ❌ | ✅ |
| Trivy | 容器 | ❌ | ✅ | ✅ | ✅ |
| kube-bench | K8s CIS 基准测试 | ❌ | ✅ (K8s) | ✅ | ✅ |
| checkov | IaC 策略 | ❌ | ✅ | ✅ | ✅ |
**为什么选择 mcp-audit?** 没有其他工具会扫描 MCP 配置文件以查找有风险的权限。你需要 Trivy + kube-bench + 一个自定义脚本才能涵盖 mcp-audit 仅需一条命令就能完成的工作。
## 实际示例
### 1. Pre-commit MCP 安全检查
在提交添加或修改 MCP 服务器的更改之前,运行一次快速审计:
```
# 在你的项目根目录
mcp-audit scan --ci && echo "✅ MCP config is safe" || echo "❌ Fix issues before committing"
```
### 2. CI Pipeline 门禁 (GitHub Actions)
```
# .github/workflows/mcp-audit.yml
name: MCP Security Audit
on: [pull_request]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g @sulthonzh/mcp-audit
- run: mcp-audit scan --ci -o sarif-report.json
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: sarif-report.json
```
### 3. 全栈安全扫描 (MCP + Docker + K8s)
```
# 在部署前扫描一切
mcp-audit scan # MCP config files
mcp-audit docker ./Dockerfile # Container security
mcp-audit k8s ./manifests # K8s manifest security
mcp-audit helm ./charts # Helm chart security
mcp-audit check github.com/user/mcp-server # Remote repo audit
```
## 贡献
欢迎提交 PR。如果是有重大更改,请先提一个 issue。
## 许可证
MIT
标签:MCP, MITM代理, StruQ, 人工智能安全, 合规性, 子域名突变, 暗色界面, 自动化攻击, 请求拦截, 错误基检测, 静态代码分析