关于 PCI DSS MCP
PCI DSS MCP 是面向 Go 支付代码库的 stdio MCP 服务,执行静态分析并将发现映射到 PCI DSS v4.0.1 要求,还可生成合规报告和 SBOM。
主要功能
- 0112 个扫描器检查支付代码风险
- 02发现项映射至 PCI 要求编号
- 03AI 辅助发现项分类
- 04合规通过/失败报告
- 05生成 CycloneDX 1.6 SBOM
适用场景
- 01发布前检查 Go 支付代码
- 02按 PCI 要求整理发现项
- 03生成合规状态报告
- 04创建依赖 SBOM
MCP 相关
它通过 stdio 向 MCP 客户端提供静态分析与合规工具,包括扫描、分类、报告和要求查询。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/shyshlakov/pci-dss-mcp:v0.7.1本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/shyshlakov/pci-dss-mcp:v0.7.1stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
pci-dss-mcp
面向 Go 支付服务代码库的静态分析 MCP 服务。在代码发布前,会将 Go 支付服务代码库中检测到的每项 PCI DSS v4.0.1 违规映射到具体要求编号。
功能简介
pci-dss-mcp 是一个基于 stdio 的 MCP 服务,可在 Go 支付服务代码库上运行 12 个扫描器、一个编排器和一个 AI 分诊引擎。每项发现都包含一个映射到具体 PCI DSS v4.0.1 条款的 requirement_id;规范的规则与要求对照表请参见 docs/requirement-mapping.md,实时黄金输出请参见 testdata/vulnerable-payment-service/EXPECTED-FINDINGS.md。
pci-dss-mcp 目前可检测的内容
- HTTP 框架的输入流入日志/错误/panic 接收器。 v0.7 中提供 Tier 1 框架(gin、chi、gorilla/mux、net/http(Go 1.22+)、echo v4、fiber v2)和 Tier 1 日志记录器(log/slog、logrus、zap、zerolog、logr、klog、hclog)。Tier 2(kratos、apex/log、charmbracelet/log)将在 v0.8 中推出。Tier 3(fasthttp、beego、iris、httprouter、项目内部框架)将在 Phase 25 发布后通过用户可配置的 YAML 提供。请参见 docs/http_input_taint.md。
pci-dss-mcp 不是什么
- 不能替代广泛的 SAST。 OWASP Top-10 和与语言无关的漏洞请使用 Semgrep、CodeQL 或 gosec 检测。
- 不能替代基于 LLM 的代码审查。 pci-dss-mcp 会将支付领域特有的问题映射到 PCI DSS 要求 ID;LLM Agent 则通过推理发现广泛的代码缺陷。两层方案可以互补。
- 并非与 Go 无关。 Go 特有的 AST 模式和污点流追踪使其能够实现精准检测。
- 不能替代 QSA。 静态分析只能覆盖 PCI DSS v4.0.1 约 6% 的要求。其余要求必须由合格安全评估师签字认可。
安装
Go install(首选)
需要 Go 1.25+;请使用 Go 1.26.9 或更新版本,因为 Go 1.25 已结束生命周期:
go install github.com/shyshlakov/pci-dss-mcp@latest
二进制文件会安装到 $(go env GOPATH)/bin/pci-dss-mcp。有关 PATH 解析、macOS codesign 来源验证修复、cosign 验证以及 MCP 客户端 JSON 配置,请参见 docs/install-from-source.md。
Docker(替代方案)
docker pull ghcr.io/shyshlakov/pci-dss-mcp:v0.6.2
适用于 CI 流水线、不在本地开发 Go 的 QSA 审核人员,或任何没有主机 Go 工具链的环境。
MCP Registry
在 registry.modelcontextprotocol.io 上列为 io.github.shyshlakov/pci-dss-mcp。每次发布标签时自动发布。
用法
添加到 MCP 客户端配置中(Claude Desktop 的 claude_desktop_config.json、Cursor 的 .cursor/mcp.json,或用于 Claude Code 的 claude mcp add):
{
"mcpServers": {
"pci-dss-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm",
"--mount", "type=bind,src=/Users/you/go/src,dst=/Users/you/go/src,readonly",
"ghcr.io/shyshlakov/pci-dss-mcp:v0.6.2"]
}
}
}
src= 和 dst= 使用相同的绝对路径映射,因此容器中看到的代码路径与宿主机上的路径一致;提示词使用常规的宿主机路径,无需转换。有关 go install 版本和各客户端示例,请参阅 docs/usage.md。
可粘贴到 MCP 客户端中的两个提示词:
Run pci-dss-mcp triage on /Users/you/payments-service. Use min_severity=MEDIUM and group findings by PCI DSS requirement.Generate a PCI DSS compliance report for /Users/you/payments-service in JSON format. Show requirement-level pass/fail status and severity counts.
工具
| 工具 | 用途 | 文档 |
|---|---|---|
triage_findings | 一次调用即可完成所有扫描器扫描、AI 分类和文件:行号上下文提取 | docs/triage_findings.md |
generate_compliance_report | 原始要求通过/未通过报告(汇总所有扫描器的协调器) | docs/generate_compliance_report.md |
scan_pan_data | PAN/SAD 存储和日志记录(3.3.1、3.4.1、3.5.1) | docs/scan_pan_data.md |
check_encryption | 弱哈希、硬编码密钥、明文 HTTP(4.2.1、6.2.4) | docs/check_encryption.md |
check_tls_config | 不安全的 TLS 配置(4.2.1) | docs/check_tls_config.md |
check_secrets_in_configs | 配置文件中的凭据(8.6.2) | docs/check_secrets_in_configs.md |
check_error_handling | 错误响应泄露敏感上下文(6.2.4) | docs/check_error_handling.md |
check_auth_strength | 硬编码密码、弱策略、缺少 MFA、Webhook 签名(8.3.1、8.3.6、8.4.2、8.6.2) | docs/check_auth_strength.md |
audit_log_coverage | 支付流程缺少审计日志(10.2.1) | docs/audit_log_coverage.md |
check_data_retention | 缺少 TTL、敏感数据存储、缺少数据清零(3.2.1、3.3.1) | docs/check_data_retention.md |
check_payment_page_scripts | 支付页面缺少 CSP/SRI/nonce(6.4.3、11.6.1) | docs/check_payment_page_scripts.md |
check_dependencies | 通过 OSV 检查存在漏洞的 Go 依赖(6.3.3);采用类似 govulncheck 的隐私保护方式:不会向 OSV.dev 发送模块名称。另请参阅 docs/check_dependencies.md。还涵盖 update_vulnerability_db。 | docs/check_dependencies.md |
generate_sbom | 根据 go.mod/go.sum 生成 CycloneDX 1.6 SBOM(6.3.2) | docs/generate_sbom.md |
explain_requirement | 按 ID 查询 PCI DSS v4.0.1 要求 | docs/explain_requirement.md |
所有工具均声明了类型化的 OutputSchema。工具目录索引和迁移历史请参阅 docs/tools.md。
文档
- docs/usage.md,客户端设置、提示词模板、抑制发现项
- docs/severity.md,严重性模型及规则到严重性的映射
- docs/taint.md,污点分析默认设置及切换选项
- docs/scoping.md,软件包排除及 CDE 范围
- docs/comparison.md,pci-dss-mcp 与 Semgrep / CodeQL / gosec / Snyk Code 的比较
- docs/ci-cd.md,GitHub Actions 和 GitLab CI 集成
- docs/pci-coverage.md,PCI DSS v4.0.1 要求覆盖矩阵
- docs/install-from-source.md,从源代码构建、cosign 验证、重新加载
- docs/requirement-mapping.md,规范的 rule_id 到 requirement_id 对照表
- CONTRIBUTING.md,开发环境设置、模糊测试目标
- ROADMAP.md,计划中的功能
- CHANGELOG.md,版本历史
状态
正在积极开发,尚未达到 v1.0。请参阅 ROADMAP.md 和 CHANGELOG.md。
许可证
MIT,详见 LICENSE。
pci-dss-mcp 是一款静态分析工具,不能替代合格安全评估师。请将其输出作为合规流程的输入,而非合规本身。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。