New to scoring? Start with the Scoring developer guide — it explains the two scores, CI flags, and JSON fields in plain language.
This page covers configuration and migration details not repeated in the main guide.
--scoring |
score.overall |
score_v2 in JSON |
|---|---|---|
both (default) |
Yes | Yes |
v2 |
Yes | Yes |
legacy |
Yes | No |
mcts scan <target> # both (default)
mcts scan <target> --scoring legacy # legacy only# Legacy
min_score: 70
max_critical: 0
# v2 (optional)
min_security_score: 50
max_absolute_risk: 500
max_risk_level: medium
min_category_score_v2:
injection: 80
privilege: 70Use with mcts scan --policy .mcts/policy.yaml.
Optional v2 asset_value tuning:
overrides:
customer_db: 0.9
temp_cache: 0.2mcts scan <target> --assets-path .mcts/assets.yamlmcts_analysis/history.json entries include:
scoring_versionabsolute_risk,security_score,risk_level(when v2 ran)
Trend charts never mix legacy and v2 on the same Y-axis.
mcts scan --machine-wide and mcts inventory --scan-all add per-server v2 fields and worst_absolute_risk in summaries when v2 is enabled.
- Request fields:
scoring_mode,weights_profile,corpus_stats_path,assets_path, v2 gate fields - Response:
gate_violationsarray; HTTP 200 even when gates fail (use CLI for exit codes)
See REST API.
- No rush —
--min-scorestill works onscore.overall. - Add v2 gate alongside — e.g.
--max-absolute-riskwithout removing--min-score. - Tune thresholds on your corpus servers (baseline vs vulnerable).
- Switch primary metric when team is ready — v2.2+ may repoint default CI docs to
security_score.