FOR AGENTS

Use it from your agent.

Your coding agent already lives in the repository. Give it a token and it can ask what is open, start a deep scan, read the verified attack path and pull the fix prompt, all without opening a dashboard.

Connect over MCP Plain HTTP
01 · WHAT YOU CAN DO

Everything the dashboard does, as tool calls.

Same data, same scope, same verified findings.

ASK

“What is open on this repo?”

List repositories, open findings by severity, advisories that are actually imported in code, and the last scan on each repository. Your agent gets the answer, not a PDF.

SCAN

Start a deep scan and watch it run.

Kick off a deep scan or a quick recon on any branch, then poll the scan and tail its event log: threat model, hunters, skeptic, validation, cost and lines read.

FIX

Pull the fix prompt and ship the patch.

Every finding carries its attack path with code excerpts, a proof of concept, what the fix must guarantee, what it must not break, a regression test and a ready-to-run fix prompt. Your agent reads it and gets to work.

TUNE

Change the setup in a sentence.

Switch PR reviews to “when asked”, move a repository to weekly deep scans, raise the check-run fail threshold, mark a finding fixed or dismissed with a reason.

02 · CONNECT OVER MCP

One URL, one header.

A hosted MCP server over Streamable HTTP. No install, no local process: paste the config, add your token, start asking.

Endpointhttps://agentcernis-api.dean-964.workers.dev/mcp AuthAuthorization: Bearer ac_live_…
Claude Code · one command
claude mcp add --transport http agentcernis https://agentcernis-api.dean-964.workers.dev/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"
Cursor · .cursor/mcp.json in your project, or ~/.cursor/mcp.json for every project
{
  "mcpServers": {
    "agentcernis": {
      "url": "https://agentcernis-api.dean-964.workers.dev/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}
Codex · ~/.codex/config.toml
[mcp_servers.agentcernis]
url = "https://agentcernis-api.dean-964.workers.dev/mcp"
http_headers = { Authorization = "Bearer YOUR_TOKEN" }

Any other MCP client: point it at the URL above as a Streamable HTTP server and send the bearer header. The server is stateless, answers each JSON-RPC request with a single JSON response, and supports initialize, ping, tools/list and tools/call. Every tool returns a short text summary plus structured JSON.

03 · PLAIN HTTP

No MCP? Just curl it.

The same token works on the JSON API behind the dashboard. Scripts, CI jobs and home-grown agents welcome.

List your repositories
curl -s https://agentcernis-api.dean-964.workers.dev/api/repos \
  -H "Authorization: Bearer $AGENTCERNIS_TOKEN"
# → { "repos": [ { "id": "…", "full_name": "acme/api", "open": { "critical": 1, "high": 2, … }, … } ] }
Start a deep scan
curl -s -X POST https://agentcernis-api.dean-964.workers.dev/api/repos/REPO_ID/scan \
  -H "Authorization: Bearer $AGENTCERNIS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "kind": "deep", "ref": "main" }'
# → { "scanId": "…", "status": "running" }   then poll GET /api/scans/SCAN_ID and /api/scans/SCAN_ID/events
Fetch a finding's fix prompt
curl -s https://agentcernis-api.dean-964.workers.dev/api/findings/FINDING_ID \
  -H "Authorization: Bearer $AGENTCERNIS_TOKEN" | jq -r '.finding.detail.fixPrompt'
# FINDING_ID comes from GET /api/findings?status=open  (ids look like REPO_ID:fingerprint)
04 · TOKENS

Create a token in Settings.

A personal token acts as you: it sees exactly the organizations you see in the dashboard, nothing more. Revoke it in one click and everything using it stops immediately.

  1. Sign in to the dashboard and open Settings → Account → API access.
  2. Give the token a name you will recognise later (“Claude Code on my laptop”, “nightly triage agent”) and create it.
  3. Copy it right away. It starts with ac_live_, is shown once, and only a hash is stored on our side.
  4. Paste it into the config above. The dashboard shows when each token was last used, so a forgotten one is easy to spot and revoke.
Open API access See it in the demo

Tokens cannot create or revoke other tokens and cannot buy credits; both stay with a signed-in person. Scans started from an agent are metered exactly like scans started from the dashboard.

05 · TOOLS

What your agent can call.

Generated from the server's own tool list. * marks required inputs.

ToolWhat it doesInputs
list_reposRepositories connected to Agent Cernis, with open findings by severity, PR review mode, deep scan schedule, fail threshold and last scan. Start here to get repo ids.owner
get_repoOne repository's settings plus its remembered threat model summary (stack, entry points, auth model) from the last deep scan.repo*
update_repo_settingsChange a repository's PR review mode (every_push | when_asked | off), deep scan schedule (off | daily | weekly | monthly) or check-run fail threshold (critical | high | medium | any).repo* prReviewMode deepScanSchedule failThreshold
start_deep_scanQueue a deep scan (threat model, hunters, skeptic, validation) of a repository's default branch or a given ref. Returns the scan id to poll with get_scan. Rejected if a scan of that kind is already running.repo* kind ref
list_scansRecent scans (PR reviews, deep scans, recon, fix checks) with status, findings count, cost and duration. Filter by repo, kind or status.repo kind status limit
get_scanOne scan's status, stage, findings by severity, lines read, cost, duration, error and threat model summary.scanId*
get_scan_eventsThe tail of a scan's progress log (stage changes, hunter and skeptic messages, stats). Use it to follow a running scan.scanId* limit
list_findingsFindings across your repositories. Filter by repo, owner, severity (comma-separated), status (open | fixed | dismissed) or a text query. Open includes findings not re-seen by the latest scan.repo owner severity status q includeLowConfidence limit
get_findingThe full finding: impact, preconditions, attack path with code excerpts, proof of concept, validation result, fix guidance, the ready-to-run fix prompt, regression test and patch when one was drafted.findingId*
set_finding_statusMark a finding open, fixed or dismissed, with an optional reason.findingId* status* reason
list_cvesKnown advisories (CVE/GHSA) affecting your repositories' dependencies, with reachability: in_code (imported where it matters), installed (present, not imported) or resolved.repo owner tab q
get_settingsOrganization defaults: PR review mode, check-run fail threshold and email notifications.owner*
update_settingsChange organization defaults. Set applyToAll to push PR review mode and fail threshold onto every connected repository.owner* prReviewMode failThreshold emailNotifications applyToAll
get_accountWho this token acts as, which organizations it can see, the billing mode and remaining credits, and what each scan kind costs.none

Your agent writes the code. Let it fix the bugs too.

Connect the repositories, create a token, and ask your agent what is open.

Get started See pricing