@optimus-ai/mcp
v1.1.19
Published
Catch the ways AI agents go wrong, before your customers do.
Maintainers
Readme
@optimus-ai/mcp
Catch the ways conversational agents go wrong, before your customers do.
Install
Needs Node 20 or newer.
# Paste into the editor's chat or a terminal
npx -y "@optimus-ai/mcp@latest" setup claude-code
npx -y "@optimus-ai/mcp@latest" setup codex
npx -y "@optimus-ai/mcp@latest" setup cursor
npx -y "@optimus-ai/mcp@latest" setup gemini-clisetup uses the editor's own mcp add when it is installed, and otherwise
writes the same entry into the editor's config in your home directory, after a
backup.
There is no key to paste. The first time you use it, your editor shows a code
and a link; sign in with Google or GitHub, approve the code, and a key is made
for that editor and saved in ~/.optimus/. Free, no card.
Cursor, and anything else that speaks MCP, takes the same three fields in
mcp.json:
{
"mcpServers": {
"optimus": {
"command": "npx",
"args": ["-y", "@optimus-ai/mcp@latest"]
}
}
}It needs an assistant with a model behind it — Claude Code, Codex, Cursor or Gemini CLI. Nothing is added to your code.
Upgrading: restart your editor. Keep @latest in the command so a restart
picks up the new version; Optimus tells you when the one answering is behind.
Use
Ask your assistant in your own words — "test this agent before I ship it", "check the refund flow" — or use a command:
| | | Talks to your agent |
| -------------------- | ---------------------------------------- | ------------------- |
| /optimus:scan | a quick look, then an offer to go deeper | no |
| /optimus:full-scan | everything, including test conversations | yes |
| /optimus:ask | anything else, in your own words | no |
Nothing talks to a live system until you have said how: a throwaway record, an emulator, a test account you already keep, or not at all. You are asked once.
What it checks
The harms conversational agents cause in production, such as:
- Booked, charged or ticketed twice for one request
- Told something was done — a refund issued, an email sent — that never happened
- Asked for a human and never reached one
- An account changed without anybody establishing who was asking
- Left with nothing, having been politely declined at every turn
Every finding comes with the evidence behind it, and the report says what it could not check as well as what it did.
In CI
Running a check needs an assistant, so CI reads the verdict of the last run
instead — .optimus/last-gate.json, which carries no conversation text and is
meant to be committed.
npx @optimus-ai/mcp report --fail-on-regression| Flag | Fails the build on |
| ---------------------- | ----------------------------------------------- |
| --fail-on-regression | something that was clean and is breaching again |
| --fail-on S0 | that grade or worse |
| --fail-on-breach | any finding |
--junit and --json change the output format. Exit codes: 0 pass, 1 the
gate failed, 2 nothing to read.
Your data
On your machine. Optimus keeps its state in .optimus/ beside your
repository. It writes a .gitignore there so that files holding conversation
text are never committed.
What reaches us. Your code, prompts, configuration and real customer conversations stay on your machine and with your assistant. What is sent:
- Optimus's own test conversations and findings, for reasoning on our side. They are anonymised on your machine first — names, emails, phone and card numbers, references, URLs, file paths, tool names and credentials become placeholders — and nothing sent for reasoning is stored.
- Customer openers for your domain, paraphrased, and only lines your machine has checked carry no name, email, number, reference or anything from your repository.
- A digest of the repository's first commit with each reasoning call, so the free allowance is counted per repository as well as per account. Never the commit, the path or the name.
- One summary line per run, so another machine or a colleague starts where you left off: a digest of the repository, never its path; verdicts by our check ids; coverage and counts.
- The website visit you came from, when you installed from an Open in
link or a copied command: its random id,
OPTIMUS_REF, on sign-in and runs, so that visit is linked to your account. - Anonymous counts: how many findings, of what kind, how long a run took. Never your code, prompts, transcripts or tool names.
You agree to this when you sign in. See and delete any of it at www.optimustest.ai/data.
License
See LICENSE.
