许可证扫描服务

一个用于扫描本地代码仓库和Docker镜像中许可证信息的服务,支持多种证据来源聚合和噪声过滤,生成可操作的报告。

  • by carvvf
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 carvvf/mcp-license-scanner

使用说明

mcp许可证扫描程序

MCP服务器,用于在以下方面进行真实的许可证扫描:

  • 本地存储库(scan_repo)
  • Docker镜像(scan_image)

服务器聚合多个证据源(SBOM、Trivy、可选的ScanCode、包元数据),默认情况下过滤低信号噪声,并返回可操作的发现以供操作决策。

关键行为

  • 默认焦点是应用程序/运行时依赖关系。
  • 操作系统包噪声(dpkg/rpm/apk)除非被排除在外 include_os_packages=true.
  • 调查结果按严重程度和理由进行分类和重复。
  • 报告保存在 ~/.cache/license-mcp/scans/<scan-id>/.

生成的工件包括:

  • sbom.spdx.json
  • sbom.cyclonedx.json
  • trivy-license.json
  • scancode.json (可选)
  • python-licenses.json
  • npm-licenses.json
  • rpm-licenses.json
  • dpkg-licenses.json
  • apk-licenses.json
  • review_candidates.json
  • review_summary.json
  • review.md

需求

对于图像扫描:

  • docker 守护进程可达
  • tar

对于回购扫描:

  • syft 本地二进制文件或Docker(用于Syft回退容器)
  • trivy 本地二进制文件或Docker(用于Trivy回退容器)
  • 可选: scancode (本地)或ScanCode docker镜像
  • 可选:本地 .venv / .venv-dev 和 node_modules 获取更丰富的应用元数据

安装

全局安装一次(pipx):

cd /home/carlo/mcp-license-scanner
pipx install .

备选方案,如果 pipx 不可用(uv):

cd /home/carlo/mcp-license-scanner
uv tool install --force .

如果在更新后重新安装(pipx):

cd /home/carlo/mcp-license-scanner
pipx reinstall .

全球食品法典配置

在中添加一个全局MCP服务器条目 ~/.codex/config.toml:

[mcp_servers.license_scan]
command = "license-mcp"
args = ["serve"]

这使得存储库的影响最小化或为零,因为配置是用户级的。

快速CLI烟雾命令

直接CLI使用(MCP外部):

license-mcp scan-repo --repo-path /path/to/repo
license-mcp scan-image --image-ref ubuntu:24.04

手动运行MCP服务器:

license-mcp serve

MCP工具

  • scan_repo
  • scan_image
  • get_report
  • list_recent_scans
  • health