Skip to content
securemyagent

Docs

Scoring formula

How the Agent Security Score (0-100) is computed. Public, versioned, reproducible from a report.

Plain Markdown for agents: /docs/scoring.md

The Agent Security Score runs from 0 to 100. It is weighted by severity. The same findings always give the same score. A report carries scannerVersion and rulesHash, so anyone can reproduce a score.

Formula version: 1.

Steps

  1. Start at 100.
  2. Subtract a penalty for each finding, by severity:
SeverityPenalty per finding
critical40
high15
medium5
low1
info0
  1. If any finding is critical, cap the score at 40.
  2. Clamp the result to 0–100.
score = clamp(100 - sum(penalty[f.severity] for f in findings), 0, 100)
if any(f.severity == "critical"): score = min(score, 40)

What counts as critical

  • A gateway exposed with auth off.
  • A known-malicious skill installed.
  • A live leaked key.

Rules

  • One critical finding caps the score at 40, however clean the rest is.
  • An attestation needs a score of 70 or more and no critical findings.
  • Every finding maps to a control in OWASP Agentic (ASI01–ASI10) and the OWASP MCP Top 10 (MCP01–MCP10).
  • A change to this formula bumps the formula version. Old reports keep their original score.

The eight checks

CheckExample findingControls
Network exposureGateway bound to 0.0.0.0, auth offASI03, MCP07
Version and CVEsRuntime older than the CVE-2026-25253 fixLLM03, MCP04
Secrets at restPlaintext sk-ant- key in a configASI03, MCP01
Installed skills and MCP serversComponent with a malicious verdictASI04, MCP03, MCP04
Tool and permission scopeShell plus network plus file-write, no approvalASI02, MCP02
EgressNo egress allowlistASI01, MCP10
Identity and auditNo stable identity, tool calls not loggedASI07, MCP08
Memory and contextUntrusted content in long-term memoryASI06