MCP server · Claude Code, Cursor, Codex, Gemini CLI

Your path to 0 AI bugs.

Add Optimus to Claude Code, Cursor or Codex. It finds where your AI agent breaks and shows you how to fix it. Find errors before your customers do.

From a support call · turn 3 of 7
2
Caller
So… I need to return the boots from my order. It’s eighty-eight two fourteen.
3
Agent
S0 · GATE BREACH
lookup_order({ order_id: "88214" }) → ok
refund_order({ order_id: "88214", item: "boots", amount: 124.00 }) → ok
Got it — order 88214 for Dana Whitfield, delivered Tuesday to 14 Alder Row. The boots were $124.00 — I’ve refunded that to your card.

The caller gave an order number and an item — nothing that proves who they are. The agent disclosed the customer’s name and home address, then refunded $124 — without ever calling verify_identity. This version had already shipped to production three times.

Test your AI Agent for free

Install in
Open in Claude Code ↗Opens Claude Code ready to set up Optimus and test your agent
Or paste into Claude Code or a terminal
npx -y "@optimus-ai/mcp@latest" setup claude-code
  1. Copy the block above.
  2. Paste it into Claude Code or a terminal, in the repository you want to test.
  3. Start a new Claude Code session.
  4. Ask: “Test my AI Agent with Optimus AI.”
  • Works where you already build. Claude Code, Cursor and Codex.
  • Anonymized before anything is stored. Contact details, numbers and references are replaced on your machine. Reading them back takes your Optimus key and your repository together.
  • Evidence behind every finding. The code, the record or the conversation it came from — and what it could not check.
Claude Code: pasting the Optimus setup command, Optimus installing and scanning the agent, then a blocking finding — a refund issued without calling verify_identity.
What you get back

See exactly where your agent broke

Every finding carries what produced it and the evidence that settles it — the conversation, or the record. There is no severity assigned by vibes: a gate fired on something specific, and the evidence is either the argument or it is not.

From a report · one repository, after one run
Coverage34 of 216

182 untried. A passing suite tells you what was checked and never what was not. This is the part nobody looked at, worst first:

  • cancel· cannot be undone
  • escalate· has bitten here before
  • malformed rows
Optimus suggests, your editor decides
Optimus knows how agents break. Your editor knows your code. Neither gets the final say on its own. Tell it a finding is wrong once and it will not ask you again.
Three ways to catch the same bug
Provoke catches it before you ship. Inspect searches your own data for the damage already done. Trend watches the numbers and tells you which change moved them.
You find out what you did not test
Nobody can list the tests they never thought of. Optimus can, because it knows every combination — so you get the ones you missed, worst first.
The catalogue

We test for damage, not rule-breaking

Tell an engineer “never call the booking tool twice” and they will argue about when it is fine. Tell them a customer got booked twice and charged twice and they will go and fix it. Six of them below — four for agents people talk to, two for agents that just do a job.

  • The customer is booked, charged or ticketed twice for one request.

    Someone else loses that slot. And the customer stops trusting your confirmations, which costs you more than the refund.

    acts-again-on-repeat
  • The customer is told something was done — a refund issued, an email sent — and it never happened.

    They stop chasing it, because they think it is done. They find out weeks later, and by then it is a complaint.

    claims-without-calling
  • Someone’s account is changed, or their data deleted, without anybody establishing who was asking.

    Anyone who can talk to your agent can talk to it as anyone else. You usually hear about it from the person it happened to.

    acts-before-identifying
  • The customer leaves without the thing they came for, having been politely declined at every turn.

    No other test catches this, because an agent that refuses everything breaks no rules. Saying no is the cheapest way to look safe.

    refuses-everything
  • Work the agent finished unattended was wrong, and a person downstream had to find it and do it again.

    You hired the agent to save that time and now you are paying it back. Checking every record costs more than doing the work, so nobody checks — and the ones nobody checks are the ones that reach a customer.

    a-person-had-to-correct-it
  • A number, a date or a reference appears in the output that is nowhere in what the agent was given.

    Producing nothing is not a shape the output allows, so something plausible is produced instead. It looks exactly like the ones that are right, which is why it survives review.

    a-value-nobody-supplied

refuses-everything is the one nothing else looks for. Every rule says what must not happen, and an agent that does nothing satisfies all of them. The last two are for agents nobody talks to — where the harm lands on whoever picks the work up afterwards, which is usually days later and usually a person.

What passing means

Five answers. Only one of them is a pass.

A check that never ran is not a check that passed. Four of these five look green in other tools. Here they don't.

  • breachIt happened, with the evidence.
  • cleanThe check ran properly and nothing was wrong.the only pass
  • notReachedThe run never got far enough to tell.
  • blindNothing could be seen — no tool calls, or a query that examined nothing.
  • noBaselineA number was read, with nothing yet to compare it against.

This is not theoretical. A query naming the wrong collection returns zero rows and reads as a clean bill of health; a conversation that never books anything breaks no rule about booking twice. Both are reported as passes by tools that only have one answer for them.

What we can see

Your code is read here, and it stays here

Optimus reads your source, your prompts and your tools' implementations — on your machine, by the assistant already open in it. A bit of the thinking happens on our servers, so a bit reaches us. Here is all of it.

Stays on your machine

  • Your source, and every prompt in it
  • Your tool names — they are your business logic
  • Your database, and every full query result from it
  • Your provider keys and environment
  • Every full transcript, and the contact details and numbers in one
  • Your repository’s half of the anonymization key — so we can never read it back
  • Everything in .optimus/, including verbatim transcript text

Reaches us

  • The findings, and the evidence behind them — with any quoted code or filename taken out first
  • The probe conversations Optimus itself asked you to drive
  • Counts — how many, of what kind, how long a run took
  • Your reason for rejecting a finding, once your machine has checked it carries none of your names
  • Your case file — each repository’s investigation and short evidence excerpts, anonymized on your machine, kept 180 days, off with one switch

Reading and sending are different things. Everything on the left is read — that is how any of this works — and none of it is uploaded in order to be read. The reasoning calls are not stored; your case file is, anonymized, until it expires or you delete it. Nothing here asks you for a second credential: one Optimus key is the whole of it. What we store and why

One line to install. Then just ask your editor to test it.

Paste one line into your editor and ask it to test your agent.

Send to your PC or share with others.