golf-mcp/golf-scanner
GitHub: golf-mcp/golf-scanner
一款跨 IDE 的 MCP 服务器安全审计工具,可自动发现配置并执行 20 项安全检查,生成风险评分。
Stars: 0 | Forks: 0
免费、开源的 CLI 工具,可发现您机器上的 MCP 服务器配置并运行安全检查以生成风险评分。单一二进制文件。零遥测。无需账户。
## 快速开始
通过 Homebrew 安装:
```
brew install golf-mcp/tap/golf-scanner
```
或者使用 Go:
```
go install github.com/golf-mcp/golf-scanner/cmd/golf-scanner@latest
```
发现您的 MCP 服务器:
```
golf-scanner scan
```
运行安全审计:
```
golf-scanner audit
```
## 功能
Golf Scanner 是一个单一静态二进制文件(纯 Go 编写,3 个依赖项),它可以:
1. **发现** 跨 7 种 IDE 的 MCP 服务器配置 — Claude Code、Cursor、VS Code、Windsurf、Gemini CLI、Kiro 和 Antigravity
2. **运行 20 项安全检查** — 9 项离线(无网络)+ 11 项在线(查询 OSV、GitHub、npm、PyPI、OCI registries、MCP Registry)
3. **生成 0–100 的风险评分** 基于每个服务器,采用严重性加权评分和硬性上限
无需账户。可离线运行。零遥测。
### 支持的 IDE
Claude Code · Cursor · VS Code · Windsurf · Gemini CLI · Kiro · Antigravity
## 用法
### 审计
发现服务器并运行带有风险评分的安全检查。
```
golf-scanner audit
```
跳过网络检查(离线模式):
```
golf-scanner audit --offline
```
详细输出及修复建议:
```
golf-scanner audit --verbose
```
CI/CD 集成 — 如果发现高危或严重发现项则失败:
```
golf-scanner audit --fail-on high --json
```
| 标志 | 默认值 | 描述 |
|------|---------|-------------|
| `--offline` | `false` | 跳过网络检查 (OSV, GitHub, npm, PyPI, MCP Registry, OCI registries) |
| `--format` | `table` | 输出格式:`table` 或 `json` |
| `--json` | `false` | `--format json` 的简写 |
| `--fail-on` | | 如果发现项达到或超过以下严重程度则退出码为 1:`note`、`medium`、`high`、`critical` |
| `--verbose`, `-v` | `false` | 显示完整的发现详情,包括修复建议 |
| `--quiet`, `-q` | `false` | 仅显示汇总表 |
`--verbose` 和 `--quiet` 互斥。
## 安全检查
| 检查项 | 检测内容 | 在线 |
|-------|-----------------|--------|
| 服务器类型 | 将服务器分类为包管理器、容器、二进制文件、脚本或 HTTP | |
| 命令安全性 | 识别风险模式,包括权限提升和 Shell 注入威胁 | |
| 凭证 | 在参数、URL 和环境变量中查找明文凭证 | |
| 脚本位置 | 标记从不安全位置(如 `/tmp` 或主目录)运行的脚本 | |
| 脚本权限 | 检测全局可写的脚本文件 | |
| 二进制文件位置 | 评估可执行文件在系统路径和主目录中的放置情况 | |
| 二进制文件权限 | 检测全局可写或组可写的二进制文件 | |
| 容器隔离 | 标记 `--privileged` 模式、危险能力、主机命名空间共享 | |
| 容器卷 | 标记危险的卷挂载 — 根文件系统、`/etc`、Docker socket | |
| 注册列表 | 确认 MCP Registry 包含状态 | 是 |
| 漏洞 | 查询 OSV.dev 以获取 npm/PyPI 包中已知的 CVE 和恶意软件 | 是 |
| Typosquatting (误植域名) | 识别名称相似的包,表明存在恶意模仿 | 是 |
| 分发情况 | 通过下载指标和包年龄评估采用度 | 是 |
| 源码仓库 | 检查包是否链接到源码仓库 | 是 |
| 无作用域变体 | 检查无作用域的 npm 对应项是否存在安全问题 | 是 |
| GitHub 信任度 | 评估仓库信号,如活跃度、许可协议和贡献者数量 | 是 |
| 容器镜像 | 检查镜像是否使用摘要固定 (`@sha256:`) | 是 |
| 容器注册表 | 验证镜像是否存在,并通过摘要不匹配标记潜在的篡改 | 是 |
| 容器签名 | 使用无密钥认证验证 cosign 签名 | 是 |
| OAuth | 发现 OAuth/OIDC 配置。标记缺少认证的情况 | 是 |
有关每项检查的完整详情,请参阅 [安全检查参考](https://docs.golf.dev/scanner/security-checks)。
## 评分
每个服务器获得一个 **0–100 的风险评分**:
1. 每项检查生成发现项;最严重的等级决定单项检查的分数(0–10)
2. 分数通过 **严重性加权平均** 进行合并(严重 10x、高 7.5x、中 5x、提示 1x)
3. 原始平均值缩放至 0–100
4. **硬性上限** 适用:任何严重发现项将分数上限设为 30,任何高危发现项将上限设为 59
5. **风险等级**:低 (≥60)、中 (>30)、高 (≤30)
有关完整的评分说明,请参阅 [理解结果](https://docs.golf.dev/scanner/understanding-results)。
## 环境变量
| 变量 | 用途 |
|----------|---------|
| `GITHUB_TOKEN` | 可选。将 GitHub API 速率限制从 60 增加/小时 到 5,000 次/小时。 |
| `GOLF_GITHUB_TOKEN` | 可选。如果未设置 `GITHUB_TOKEN` 时的后备选项。 |
大多数扫描不需要令牌。扫描器对每个唯一仓库发起约 3 次 GitHub API 调用(元数据、提交、贡献者)并缓存结果,因此只有当您有 20+ 个服务器指向不同的 GitHub 仓库时,才会达到未认证限制。
## 退出码
| 代码 | 含义 |
|------|---------|
| 0 | 成功 |
| 1 | 无参数、未知命令、超过 `--fail-on` 阈值或标志冲突 |
| 2 | JSON 错误或无效的 `--fail-on` 值 |
## Golf
**Scanner = 可见性**(存在什么)。**[Golf](https://golf.dev) = 治理**(允许什么、记录什么以及保护什么)。
Golf Scanner 为您提供时间点快照。完整的 Golf 平台将其扩展为持续治理:
- **Golf Inventory** — 持续的 MCP 发现,始终保持最新,而非时间点扫描
- **Golf Gateway** — 针对每个服务器、每个团队、每种数据类型的策略执行。PII 脱敏和工具级访问控制
- **审计追踪** — 每个连接的不可变日志,预映射到 SOC 2、ISO 27001、NIST AI RMF
- **多工具支持** — 适用于所有 AI 工具(Cursor、Claude Code、Copilot、ChatGPT),无需改变开发者工作流
| | Golf Scanner (免费) | Golf |
|---|-------------------|------|
| **发现** | 7 种 IDE,单机,时间点 | 持续 — 所有 IDE,所有机器,所有团队 |
| **安全检查** | 9 项离线 + 11 项在线 | 所有扫描器检查 + 额外的威胁检测 |
| **审计追踪** | CLI 输出 | 不可变追踪,预映射到 SOC 2、ISO 27001、NIST AI RMF |
| **执行** | 无 | 针对服务器/团队/数据类型的策略执行,PII 脱敏,工具级访问控制 |
| **监控** | 一次性扫描 | 始终保持最新 — 立即检测到新服务器 |
| **部署** | 单一二进制文件 | 本地部署、混合或云端。数据不会离开您的环境。 |
了解更多,请访问 [golf.dev](https://golf.dev) 或阅读 [文档](https://docs.golf.dev/gateway/overview)。
## 许可证
Apache 2.0 — 详见 [LICENSE](LICENSE)。
由 Golf 团队用 ❤️ 制作
标签:CISA项目, Claude, Cursor, CVE检测, EVTX分析, EVTX分析, Go语言, IDE插件, Kiro, LNA, MCP服务器, VS Code, Windsurf, 云安全监控, 动态分析, 安全助手, 文档结构分析, 日志审计, 程序破解, 网络安全, 隐私保护, 静态分析