Skip to main content
Golf Scanner produces two types of output: scan results (server discovery) and audit results (security assessment). This page explains how to read both.

Output Formats

Styled terminal output with color-coded severity, boxed headers, and a summary table. Adapts to terminal width. Shows an animated progress spinner during audit (auto-disabled when piped).

Scan Output

The scan command discovers MCP servers and reports where they were found.

JSON Fields

Server Entry Fields

Each server entry includes: Argument scrubbing: Sensitive flags (--password, --token, --secret) are masked to ****. API key prefixes, high-entropy strings, URLs with credentials, and email addresses are also masked. Package names, environment variable references (${VAR}), and port numbers are preserved.

Audit Output

The audit command runs security checks and produces a structured report.

Report Structure

Per-Server Result

Score Object

Finding Object

Summary Object

Severity Levels

Server Types

Golf Scanner classifies each server based on its transport and command: The detected server type determines which checks apply. See the applicability matrix for details.

How Scoring Works

Golf Scanner computes a 0–100 risk score for each server through six steps:
  1. Per-check scoring: Each check produces findings. The worst severity across all findings for that check determines its per-check score (critical = 0/10, high = 2/10, medium = 4/10, note = 10/10).
  2. Severity-weighted average: Per-check scores are combined using severity weights. Worse findings carry disproportionately more weight — a critical finding has 10x the influence of a note.
  3. Scale to 0–100: The weighted average is normalized to a 0–100 scale.
  4. Hard caps: Any critical finding caps the score at 30. Any high finding caps the score at 59. The hard_cap_applied field tells you which cap was applied.
  5. Coverage gating: The score’s reliability depends on how many checks produced data:
    • Graded: Sufficient coverage (≥5 checks for STDIO servers, ≥3 for HTTP) — score is reliable
    • Attention required: Some data but insufficient coverage — score may be unreliable
    • Unknown: No checks produced data — cannot score
  6. Risk level assignment:
    • Low: Score ≥60
    • Moderate: Score >30
    • High: Score ≤30