MCP
The k9 MCP server brings Reachable Risk to your AI coding agent. It scores your CVE and dependency backlog by what is actually reachable in your code and actively exploited in the wild (KEV + EPSS), and returns a Fix Today / Review / Schedule / Defer verdict with the evidence behind each call. Your agent supplies the reachability read; k9 supplies KEV + EPSS and the verdict.
It runs as a remote MCP server. Your agent connects over HTTP and you sign in with your k9 account on first connect. There is no API key or token to copy.
- Endpoint:
https://mcp.k9security.io/mcp(Streamable HTTP) - Authentication: OAuth (browser sign-in on first connect; no API key)
- Tools:
score_risk,resolve_vuln_ids,lookup_vulns,lookup_kev,lookup_epss - Guidance: the rubric and procedures your agent reads before scoring, each published as a tool (
get_risk_scoring_rubric,get_basis_procedure,gather_risk_context), a resource, and a prompt, so clients that do not surface prompts and resources can still call them
Terminology
Three words carry precise meanings across these pages, and the API's field names do not always match them.
- Alert: one vulnerability, in one dependency, in one place you declare it, identified by one
finding_key. This is what you send to score_risk, and the unit k9 meters. - Binding: one execution context an alert's vulnerable code runs in. You declare your contexts in your risk-context file and send them per alert in
context_bindings. - Verdict: the result for one alert in one binding, carrying a bucket, the factors behind it, and a NIST SP 800-30 score. An alert sent with three bindings comes back with three verdicts, and still meters as one alert.
The API says "finding" in several field names, where it means the alert in findings and finding_key but the verdict in findings_total. The practical consequence: reconcile a fetched alert count against alerts_total, not against findings_total.
Guides
- Configure the k9 MCP Server — connect Claude, Claude Code, Opencode, and other MCP-capable agents.
- score_risk — score alerts into FIX_TODAY / REVIEW / SCHEDULE / DEFER using reachability + NIST SP 800-30.
- Risk context — record your project's criticality, exposure, trust model, and accepted risks in
.k9security/risk-context.yaml, so every scoring run reads the same facts. - resolve_vuln_ids — resolve GHSA / GO / ALAS advisory ids to their CVE, to read the right advisory and look up KEV and EPSS yourself.
- lookup_vulns — read the full advisory body (description, affected ranges, CWE, vulnerable configurations) for any vulnerability id, without leaving your environment.
- lookup_kev — check CVEs against the VulnCheck KEV catalog of vulnerabilities known to be exploited in the wild.
- lookup_epss — get FIRST EPSS exploit-probability scores and percentiles for CVEs.