PCI DSS MCP について
PCI DSS MCPは、Goの決済コードベースを静的解析するstdio対応のMCPサーバーです。検出結果をPCI DSS v4.0.1の要件に対応付け、コンプライアンスレポートとSBOMも生成します。
主な機能
- 01決済コードのリスクを調べる12種類のスキャナー
- 02検出結果へのPCI要件ID付与
- 03AIによる検出結果のトリアージ
- 04要件ごとの合否レポート
- 05CycloneDX 1.6 SBOMの生成
活用シーン
- 01リリース前のGo決済コードの確認
- 02PCI要件ごとの検出結果の整理
- 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 は、Go 決済サービスのコードベースに対して、12 個のスキャナー、オーケストレーター、AI トリアージエンジンを実行する stdio MCP サーバーです。各検出結果には、特定の PCI DSS v4.0.1 条項にマッピングされた requirement_id が付与されます。正規のルールと要件の対応表についてはdocs/requirement-mapping.mdを、実際のゴールデン出力についてはtestdata/vulnerable-payment-service/EXPECTED-FINDINGS.mdをご覧ください。
pci-dss-mcp が現在検出できること
- HTTP フレームワークからログ/エラー/パニックの出力先へ渡る入力フロー。 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)は v0.7 に含まれています。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 エージェントは推論によって幅広いバグを検出します。この 2 つの層は互いに補完します。
- Go 以外には対応していません。 高い精度を実現しているのは、Go 固有の AST パターンとテイントフローの追跡です。
- QSA の代替ではありません。 静的解析でカバーできるのは、PCI DSS v4.0.1 の要件の約 6% です。残りについては、Qualified Security Assessor の承認が必要です。
インストール
Go install(推奨)
Go 1.25 以降が必要です。Go 1.25 はサポート終了済みのため、Go 1.26.9 以降を使用してください。
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 クライアントに貼り付けるプロンプトを2つ紹介します。
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 による分類とファイル・行番号のコンテキストを1回の呼び出しで提供します | 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:canonical rule_idからrequirement_idへの対応表
- CONTRIBUTING.md:開発環境のセットアップ、ファズターゲット
- ROADMAP.md:予定されている機能
- CHANGELOG.md:バージョン履歴
ステータス
開発中で、v1.0より前の段階です。ROADMAP.mdとCHANGELOG.mdをご覧ください。
ライセンス
MIT。LICENSEをご覧ください。
pci-dss-mcpは静的解析ツールです。Qualified Security Assessorの代わりにはなりません。出力はコンプライアンスそのものではなく、コンプライアンスプロセスへの入力として使用してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。