# PCI DSS v4.0.1 Compliance Checker (oci · ghcr.io/shyshlakov/pci-dss-mcp:v0.7.1)

PCI DSS v4.0.1 compliance scanner for Go payment services, delivered as an MCP server

- Trust score: 35/100 (low)
- Change this week: −5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- oci · `ghcr.io/shyshlakov/pci-dss-mcp:v0.7.1`: 35/100 (this document), [markdown](https://verifymcp.io/servers/shyshlakov-pci-dss-mcp/ghcr-io-shyshlakov-pci-dss-mcp-v0-7-1.md), [page](https://verifymcp.io/servers/shyshlakov-pci-dss-mcp/ghcr-io-shyshlakov-pci-dss-mcp-v0-7-1)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/shyshlakov/pci-dss-mcp:v0.7.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 0/100
  - Malware scan not yet available for this package.
  - CVE data not yet available for this package.
  - Install-script risk not yet assessed.
  - Dependency-health data not yet available.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 95 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 56/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 6595 tokens (~439/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 2 categories.** Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add shyshlakov-pci-dss-mcp -- docker run --rm -i ghcr.io/shyshlakov/pci-dss-mcp:v0.7.1
```

### Codex

```bash
codex mcp add shyshlakov-pci-dss-mcp -- docker run --rm -i ghcr.io/shyshlakov/pci-dss-mcp:v0.7.1
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "shyshlakov-pci-dss-mcp": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/shyshlakov/pci-dss-mcp:v0.7.1"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  shyshlakov-pci-dss-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/shyshlakov/pci-dss-mcp:v0.7.1"]
```

### Other

```json
{
  "mcpServers": {
    "shyshlakov-pci-dss-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/shyshlakov/pci-dss-mcp:v0.7.1"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-07-31 (score 35, −5)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 40, +29)

- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100
- [functional] First check of Tool coverage: 100

### 2026-07-26 (score 11)

First indexed and scored.

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

## MCP tools (15)

### `audit_log_coverage` (~447 tokens)

Scan Go source files for payment handlers missing structured audit logging (PCI DSS 10.2.1). Detects: missing logging, unstructured-only logging (fmt/log), and reports handlers with structured logging. Framework-aware: supports net/http, gin, echo handler signatures. Default: returns response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 3 per severity findings - plus a pagination.next_cursor for drill-down. Prefer this for mixed queries; min_severity / rule_filter drop to response_shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list. Use include_tests / exclude_patterns / min_severity / rule_filter for a filtered flat response.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior audit_log_coverage response. When set resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `exclude_patterns` (null|array): Optional glob patterns to exclude. Default: vendor/ generated/ *.pb.go testdata/ mocks/
- `include_tests` (boolean): Include _test.go files in scan results. Default false excludes test files per industry SAST consensus
- `include_untracked` (boolean): Scan all files including .gitignored. Default false scans only git-tracked files
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter by minimum severity (CRITICAL/HIGH/MEDIUM/LOW/INFO). Setting this forces the flat response shape.
- `path` (string, required): required,Path to the Go project directory to scan for missing audit logging in payment handlers
- `rule_filter` (string): Filter by rule ID, comma list or /regex/. Setting this forces the flat response shape.

### `check_auth_strength` (~482 tokens)

Scan Go source files for weak authentication: hardcoded passwords (PCI DSS 8.3.1), password policy with minimum length below 12 (PCI DSS 8.3.6), and payment routes missing MFA middleware (PCI DSS 8.4.2). Default: returns response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 3 per severity findings - plus a pagination.next_cursor for drill-down. Prefer this for mixed queries; min_severity / rule_filter drop to response_shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list. Use include_tests / exclude_patterns / min_severity / rule_filter for a filtered flat response. Maps findings to PCI DSS 8.3.1, 8.3.6, 8.4.2.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior check_auth_strength response. When set resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `exclude_patterns` (null|array): Optional glob patterns to exclude. Supports directory patterns (vendor/) and file globs (*.pb.go). Default: vendor/ generated/ *.pb.go testdata/ mocks/
- `include_tests` (boolean): Include _test.go files in scan results. Default false excludes test files per industry SAST consensus
- `include_untracked` (boolean): Scan all files including .gitignored. Default false scans only git-tracked files
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter by minimum severity (CRITICAL/HIGH/MEDIUM/LOW/INFO). Setting this forces the flat response shape.
- `path` (string, required): required,Path to the Go project directory to scan for authentication strength violations
- `rule_filter` (string): Filter by rule ID, comma list or /regex/. Setting this forces the flat response shape.

### `check_data_retention` (~493 tokens)

Scan Go source and config files for unsafe data retention: Redis/DB storage of CVV/PAN without TTL (PCI DSS 3.2.1), config files missing TTL on sensitive keys (PCI DSS 3.3.1), and incorrect memory zeroing timing after authorization. Scans .go, .yaml, .json, .toml files. Default: returns response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 3 per severity findings - plus a pagination.next_cursor for drill-down. Prefer this for mixed queries; min_severity / rule_filter drop to response_shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list. Use include_tests / exclude_patterns / min_severity / rule_filter for a filtered flat response. Maps findings to PCI DSS 3.2.1, 3.3.1.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior check_data_retention response. When set resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `exclude_patterns` (null|array): Optional glob patterns to exclude. Default: vendor/ generated/ *.pb.go testdata/ mocks/
- `include_tests` (boolean): Include _test.go files in scan results. Default false excludes test files per industry SAST consensus
- `include_untracked` (boolean): Scan all files including .gitignored. Default false scans only git-tracked files
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter by minimum severity (CRITICAL/HIGH/MEDIUM/LOW/INFO). Setting this forces the flat response shape.
- `path` (string, required): required,Path to scan for unsafe data retention patterns (Redis/DB without TTL, config missing TTL, memory zeroing timing)
- `rule_filter` (string): Filter by rule ID, comma list or /regex/. Setting this forces the flat response shape.

### `check_dependencies` (~443 tokens)

Scan go.mod dependencies for known vulnerabilities (PCI DSS 6.3.3). Bulk-downloads the public OSV Go vulnerability snapshot and intersects locally against go.mod, matching the govulncheck privacy model. No module names are sent to OSV.dev. Cache TTL: 24h fresh, 24h-7d revalidate via ETag, >7d force-refresh. Run update_vulnerability_db first to bootstrap the cache for air-gapped environments. Default: returns response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 1 per severity findings - plus a pagination.next_cursor for drill-down. Prefer this for mixed queries; min_severity / rule_filter drop to response_shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list. Use min_severity / rule_filter / positive limit for a filtered flat response. Maps findings to PCI DSS 6.3.3.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior check_dependencies response. When set resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter by minimum severity (CRITICAL/HIGH/MEDIUM/LOW/INFO). Setting this forces the flat response shape.
- `mode` (string): Scan mode: only 'auto' (default) is supported after v0.6.3. Empty value is treated as 'auto'.
- `path` (string, required): required,Path to the project directory containing go.mod to scan for vulnerable dependencies
- `rule_filter` (string): Filter by rule ID, comma list or /regex/. Setting this forces the flat response shape.

### `check_encryption` (~454 tokens)

Scan Go source files for encryption violations: weak hash algorithms (md5/sha1) with context scoring, hardcoded encryption keys/IVs, and plain HTTP URLs. Default: returns response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 3 per severity findings - plus a pagination.next_cursor for drill-down. Prefer this for mixed queries; min_severity / rule_filter drop to response_shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list. Use include_tests / exclude_patterns / min_severity / rule_filter for a filtered flat response. Maps findings to PCI DSS 6.2.4, 4.2.1.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior check_encryption response. When set resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `exclude_patterns` (null|array): Optional glob patterns to exclude. Supports directory patterns (vendor/) and file globs (*.pb.go). Default: vendor/ generated/ *.pb.go testdata/ mocks/
- `include_tests` (boolean): Include _test.go files in scan results. Default false excludes test files per industry SAST consensus
- `include_untracked` (boolean): Scan all files including .gitignored. Default false scans only git-tracked files
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter by minimum severity (CRITICAL/HIGH/MEDIUM/LOW/INFO). Setting this forces the flat response shape.
- `path` (string, required): required,Path to the Go project directory to scan for encryption violations
- `rule_filter` (string): Filter by rule ID, comma list or /regex/. Setting this forces the flat response shape.

### `check_error_handling` (~454 tokens)

Scan Go source files for payment handler error disclosure: detects err.Error() in http.Error, fmt.Fprintf with error variables, w.Write with error bytes, and json.Encode of errors. Default: returns response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 3 per severity findings - plus a pagination.next_cursor for drill-down. Prefer this for mixed queries; min_severity / rule_filter drop to response_shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list. Use include_tests / exclude_patterns / min_severity / rule_filter for a filtered flat response. Maps findings to PCI DSS 6.2.4.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior check_error_handling response. When set resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `exclude_patterns` (null|array): Optional glob patterns to exclude. Supports directory patterns (vendor/) and file globs (*.pb.go). Default: vendor/ generated/ *.pb.go testdata/ mocks/
- `include_tests` (boolean): Include _test.go files in scan results. Default false excludes test files per industry SAST consensus
- `include_untracked` (boolean): Scan all files including .gitignored. Default false scans only git-tracked files
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter by minimum severity (CRITICAL/HIGH/MEDIUM/LOW/INFO). Setting this forces the flat response shape.
- `path` (string, required): required,Path to the Go project directory to scan for error handling violations in payment handlers
- `rule_filter` (string): Filter by rule ID, comma list or /regex/. Setting this forces the flat response shape.

### `check_payment_page_scripts` (~511 tokens)

Scan Go source files and HTML templates for payment page script security violations (PCI DSS 6.4.3, 11.6.1). Detects: missing Content-Security-Policy headers in Go payment handlers, unsafe-inline/unsafe-eval in CSP, external scripts without SRI (integrity attribute) in HTML templates, inline scripts without nonce attribute. Framework-aware: supports net/http, gin, echo handler signatures. Default: returns response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 3 per severity findings - plus a pagination.next_cursor for drill-down. Prefer this for mixed queries; min_severity / rule_filter drop to response_shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list. Use include_tests / exclude_patterns / min_severity / rule_filter for a filtered flat response. Maps findings to PCI DSS 6.4.3, 11.6.1.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior check_payment_page_scripts response. When set resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `exclude_patterns` (null|array): Optional glob patterns to exclude. Default: vendor/ generated/ *.pb.go testdata/ mocks/
- `include_tests` (boolean): Include _test.go files in scan results. Default false excludes test files per industry SAST consensus
- `include_untracked` (boolean): Scan all files including .gitignored. Default false scans only git-tracked files
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter by minimum severity (CRITICAL/HIGH/MEDIUM/LOW/INFO). Setting this forces the flat response shape.
- `path` (string, required): required,Path to the project directory to scan for payment page script security violations (CSP headers in Go handlers and SRI/nonce in HTML templates)
- `rule_filter` (string): Filter by rule ID, comma list or /regex/. Setting this forces the flat response shape.

### `check_secrets_in_configs` (~462 tokens)

Scan configuration files (.env, .yaml, .json, .toml) for hardcoded secrets: API keys, passwords, tokens, and connection strings with embedded credentials. Default: returns response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 3 per severity findings - plus a pagination.next_cursor for drill-down. Prefer this for mixed queries; min_severity / rule_filter drop to response_shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list. Use include_tests / exclude_patterns / min_severity / rule_filter for a filtered flat response. Maps findings to PCI DSS 8.6.2.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior check_secrets_in_configs response. When set resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `exclude_patterns` (null|array): Optional glob patterns to exclude. Supports directory patterns (vendor/) and file globs (*.env). Default: vendor/ generated/ *.pb.go testdata/ mocks/
- `include_tests` (boolean): Include _test.go files in scan results. Default false excludes test files per industry SAST consensus
- `include_untracked` (boolean): Scan all files including .gitignored. Default false scans only git-tracked files
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter by minimum severity (CRITICAL/HIGH/MEDIUM/LOW/INFO). Setting this forces the flat response shape.
- `path` (string, required): required,Path to the project directory to scan for hardcoded secrets in config files (.env .yaml .json .toml)
- `rule_filter` (string): Filter by rule ID, comma list or /regex/. Setting this forces the flat response shape.

### `check_tls_config` (~456 tokens)

Scan Go source files for TLS configuration violations: InsecureSkipVerify, weak MinVersion (below TLS 1.2), missing MinVersion, and prohibited cipher suites (RC4, 3DES, NULL). Default: returns response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 3 per severity findings - plus a pagination.next_cursor for drill-down. Prefer this for mixed queries; min_severity / rule_filter drop to response_shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list. Use include_tests / exclude_patterns / min_severity / rule_filter for a filtered flat response. Maps findings to PCI DSS 4.2.1.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior check_tls_config response. When set resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `exclude_patterns` (null|array): Optional glob patterns to exclude. Supports directory patterns (vendor/) and file globs (*.pb.go). Default: vendor/ generated/ *.pb.go testdata/ mocks/
- `include_tests` (boolean): Include _test.go files in scan results. Default false excludes test files per industry SAST consensus
- `include_untracked` (boolean): Scan all files including .gitignored. Default false scans only git-tracked files
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter by minimum severity (CRITICAL/HIGH/MEDIUM/LOW/INFO). Setting this forces the flat response shape.
- `path` (string, required): required,Path to the Go project directory to scan for TLS configuration violations
- `rule_filter` (string): Filter by rule ID, comma list or /regex/. Setting this forces the flat response shape.

### `explain_requirement` (~67 tokens)

Look up a PCI DSS v4.0.1 requirement by ID. Returns title, description, and testing procedure.

Input parameters:

- `requirement_id` (string, required): PCI DSS v4.0.1 requirement ID (e.g. 3.3.1 or 8.3.6)

Output parameters:

- `requirement` (null|object): PCI DSS v4.0.1 requirement record (title, description, testing procedure, detectability, accuracy metadata)

### `generate_compliance_report` (~588 tokens)

Raw PCI DSS v4.0.1 compliance report without AI triage — intended for CI gates, audit artifacts, and requirement-level pass/fail lists. For interactive "scan this project" prompts call triage_findings instead. Default unfiltered call returns a compact summary (metadata, totals, requirement_statuses, top 20 findings per severity, cursor for follow-up). Supply min_severity / rule_filter / limit to get a paged flat list (60 per page with cursor), or cursor=<token> to resume a prior session (10-minute TTL). min_severity / rule_filter drop the response to shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Taint analysis is ON by default; set include_taint=false for fast dev iteration.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior response. When set, resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `dep_scan_mode` (string): Dependency scanner mode: only 'auto' (default) is supported after v0.6.3. Empty value is treated as 'auto'.
- `include_taint` (null|boolean): Enable flow-based severity adjustment via go/packages type analysis. When true, panscanner downgrades PAN-KEYWORD and suppresses PAN-TYPE findings for transit-only CHD fields (request/response DTOs,…
- `include_tests` (boolean): Include _test.go files in scan results. Default false excludes test files per industry SAST consensus
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter findings by minimum severity. One of CRITICAL / HIGH / MEDIUM / LOW / INFO (case-insensitive). Default: no severity filter. Useful for AI clients that only need HIGH-or-above results.
- `path` (string, required): Path to the Go project to scan for PCI DSS compliance. If empty, uses current directory (.)
- `rule_filter` (string): Filter findings by rule ID. Comma-separated list for exact match (e.g. PAN-KEYWORD,PAN-TYPE) OR a single regex in leading/trailing slashes (e.g. /PAN-.*/). Default: no rule filter.

### `generate_sbom` (~330 tokens)

Generate a CycloneDX v1.6 SBOM for a Go project. Default behavior: writes sbom.json (or sbom.xml when format=xml) next to the scanned go.mod and returns metadata only (output_path, size_bytes, component_count, unknown_licenses). Override the destination with output_path (must be absolute). Pass inline=true to return the serialized SBOM in the MCP response instead (capped at 64 KB; returns SBOM_TOO_LARGE above that). Parses go.mod + go.sum offline against the local GOMODCACHE; cache-miss modules surface as UNKNOWN-LICENSE. Satisfies PCI DSS 6.3.2 (software inventory, mandatory since March 2025).

Input parameters:

- `fixed_serial` (string): Override generated serialNumber. Accepts bare UUID v4 or urn:uuid: form. Use for VEX linking and audit pipeline reproducibility.
- `format` (string): Output format: json (default) or xml
- `inline` (boolean): If true, return serialized SBOM inline in the response (64 KB cap, SBOM_TOO_LARGE on overflow). Default: false, write to file and return metadata only.
- `no_timestamp` (boolean): If true, omit metadata.timestamp for reproducible builds.
- `output_path` (string): Absolute path where the SBOM file should be written. Default: {path}/sbom.json or {path}/sbom.xml. Ignored when inline=true.
- `path` (string, required): required,Absolute path to the Go project directory containing go.mod (and go.sum)

Output parameters:

- `bom_format` (string)
- `component_count` (integer)
- `fixed_serial` (string): Override generated serialNumber (urn:uuid: or bare 36-char form)
- `format` (string)
- `generated_at` (string): RFC3339 UTC
- `mode` (string)
- `no_timestamp` (boolean): Omit metadata.timestamp for reproducible builds
- `output_path` (string)
- `project_path` (string): Absolute scanned path
- `serialized_bom` (string)
- `size_bytes` (integer)
- `spec_version` (string)
- `unknown_licenses` (integer)

### `scan_pan_data` (~481 tokens)

Default: returns response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 3 per severity findings - plus a pagination.next_cursor for drill-down. Prefer this for mixed queries; min_severity / rule_filter drop to response_shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list. Use include_tests / exclude_patterns for a filtered flat response. Maps findings to PCI DSS 3.3.1, 3.4.1, 3.5.1.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior scan_pan_data response. When set resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `exclude_patterns` (null|array): Optional glob patterns to exclude. Supports directory patterns (vendor/) and file globs (*.pb.go). Default: vendor/ generated/ *.pb.go testdata/ mocks/
- `include_taint` (boolean): Enable flow-based severity adjustment using go/packages type analysis. When true PAN-KEYWORD/PAN-TYPE findings on transit-only struct fields are downgraded or suppressed. Adds 5-30 seconds. Default f…
- `include_tests` (boolean): Include _test.go files in scan results. Default false excludes test files per industry SAST consensus
- `include_untracked` (boolean): Scan all files including .gitignored. Default false scans only git-tracked files
- `limit` (integer): Maximum number of findings to return per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter by minimum severity (CRITICAL/HIGH/MEDIUM/LOW/INFO). Setting this forces the flat response shape.
- `path` (string, required): required,Path to the Go project directory to scan for PAN/CVV data exposure
- `rule_filter` (string): Filter by rule ID, comma list or /regex/. Setting this forces the flat response shape.

### `triage_findings` (~513 tokens)

Run all PCI DSS v4.0.1 scanners + AI-assisted prioritization + file:line enrichment on a Go project in a single call. Default: response_shape "summary" with by_severity counts, a capped by_rule histogram (top 10 + more_rules), and top 1 per severity enriched finding, plus pagination.next_cursor for drill-down. min_severity / rule_filter drop the response to shape "flat" but still carry summary.by_severity + summary.by_rule for full-scan context. Follow the cursor for the full paginated list.

Input parameters:

- `cursor` (string): Opaque cursor token from a prior triage_findings response. When set, resumes pagination from the stored session cache (10-minute TTL). Leave empty for a fresh scan.
- `dep_scan_mode` (string): Dependency scanner mode: only 'auto' (default) is supported after v0.6.3. Empty value is treated as 'auto'.
- `include_taint` (null|boolean): Enable flow-based severity adjustment via go/packages type analysis. When true, panscanner downgrades PAN-KEYWORD and suppresses PAN-TYPE findings for transit-only CHD fields. Adds 5-30 seconds to sc…
- `include_tests` (boolean): Include _test.go files in scan results. Default false
- `limit` (integer): Maximum number of findings to enrich per call. Default 0 (summary-first response with next_cursor). To fetch more findings than fit in one response, follow next_cursor; do NOT raise this value to fet…
- `min_severity` (string): Filter findings by minimum severity. One of CRITICAL / HIGH / MEDIUM / LOW / INFO (case-insensitive). Default: no severity filter. Applied BEFORE enrichment to save context-collection cost.
- `path` (string, required): Path to the Go project to triage. If empty, uses current directory (.)
- `rule_filter` (string): Filter findings by rule ID. Comma-separated list for exact match (e.g. PAN-KEYWORD,PAN-TYPE) OR a single regex in leading/trailing slashes (e.g. /PAN-.*/). Default: no rule filter.

### `update_vulnerability_db` (~111 tokens)

Download fresh OSV Go vulnerability snapshot to local cache for offline scanning. Downloads from gs://osv-vulnerabilities/Go/all.zip (~7.5MB). This is the ONLY tool that makes network requests. Cache stored at PCI_MCP_CACHE_DIR or ~/.pci-dss-mcp/vuln-cache/ by default.

Input parameters:

- `output_path` (string): Optional path to save the vulnerability cache. Default: ~/.pci-dss-mcp/vuln-cache/go-osv-{date}.json

Output parameters:

- `cache_path` (string): Absolute path to the refreshed OSV cache file
- `custom_path` (boolean): True when the caller supplied a non-default output_path
- `download_size_bytes` (integer): Raw download size in bytes
- `previous_cache_date` (string): Date of the previous cache (YYYY-MM-DD), empty when no prior cache existed
- `vuln_count` (integer): Number of vulnerabilities indexed in the new cache

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/shyshlakov-pci-dss-mcp/ghcr-io-shyshlakov-pci-dss-mcp-v0-7-1#diagnostics

## Score history

- 2026-08-03: 35
- 2026-08-02: 35
- 2026-08-01: 35
- 2026-07-31: 35
- 2026-07-30: 40
- 2026-07-29: 40
- 2026-07-28: 40
- 2026-07-27: 40
- 2026-07-26: 11

## Links

- Repository: https://github.com/shyshlakov/pci-dss-mcp
- Changelog RSS feed: https://verifymcp.io/servers/shyshlakov-pci-dss-mcp/ghcr-io-shyshlakov-pci-dss-mcp-v0-7-1/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/shyshlakov-pci-dss-mcp/ghcr-io-shyshlakov-pci-dss-mcp-v0-7-1/changelog.json
- HTML version of this page: https://verifymcp.io/servers/shyshlakov-pci-dss-mcp/ghcr-io-shyshlakov-pci-dss-mcp-v0-7-1
