TestMaze is the MCP-native verifier for Claude Code, Cursor, Cline, and every coding agent that speaks Model Context Protocol. Your agent writes the code. We author the tests, run them headlessly, and return deterministic verdicts — with KPI gates the agent can't override.
Works with any MCP client. No vendor lock-in. Self-hosted or managed.
When the same agent that writes the code also decides whether it works, every CI green-light is a self-graded exam. You ship faster — and you ship more bugs.
Agent edits the assertion until the test passes. The diff looks clean. The bug ships.
Every agent invents its own KPI. Selector-failure share, snippet quality, reliability — none of it is enforced.
Retries hide real regressions. "Transient" failures pile up until the suite is unrunnable.
Every coding session becomes a PdlcSession — a finite state machine that only the MCP server can advance. The agent drives; we verify.
Repo surveyed, product metadata populated, PdlcSession opened. JWT bound to the space.
feature.list runs first so duplicates are skipped. Then the feature-spec prompt expands the spec into user stories + 8-facet acceptance criteria — rendered locally by your IDE’s LLM.
ac-to-testcase prompt fleshes out AC shells into complete test bodies with facet-appropriate assertions. Both prompts run client-side via prompts/get — we never see the rendered expansion, only the structured JSON your agent posts back.
Your coding agent writes the application code that satisfies each AC. We hold the line.
testrun.create executes headlessly; per-case evidence screenshots attach via testrun.record_results. pdlc.verify composes the verdict — failure buckets, reliability KPI, deterministic nextStep.
Verdict=pass. gitSha pinned. Working tree clean. The release moves to status=shipped.
Your repository lives on your laptop, in your IDE, with your own LLM. Test Maze only ever sees what your agent explicitly hands us: test artefacts, run results, and git identifiers. No diffs, no files, no streamed source — by design.
The entire MCP server is open source and lives in your repo. PointTESTMAZE_MCP_URLat your own Test Maze deployment and the verifier loop runs inside your perimeter.
Whether you're starting a fresh project in Claude Code or pushing a new feature into an existing repo with Codex, the workflow is the same: hand us the description, get back a tested, graded build.
A PRD, a Linear ticket, a back-of-napkin one-pager — whatever you fed your agent. Fresh project? Use the high-level spec. New branch? Hand us just the delta.
Each feature becomes a structured Test Suite inside your space — the contract your agent is building toward. Existing repo? We graft the suite into your current test plan; we don't duplicate what's already covered.
For each suite we generate a wide test case set. Not just the happy path. Coverage spans every facet of how the feature can be used, abused, and broken.
Claude Code or Cursor implements the acceptance criteria. When ready to grade, the agent calls testrun.create to execute the suite headlessly, then pdlc.verify composes the verdict — failure buckets, reliability KPI, deterministic nextStep — and feeds the result back into your IDE.
Every Test Run produces a verdict pinned to a specific gitSha. Pass — merge it. Fail — categorised hints route back to your agent. You ship with a per-feature reliability grade, not just a green CI badge you can't explain in standup.
No LLM in the pass/fail decision path. Failure buckets are machine-categorised. Every run carries gitSha, branch, and workingTreeClean — so the verdict is bound to exactly the code that ran.
// pdlc.verify → returns
{
"verdict": "fail",
"passed": 14,
"failed": 2,
"failureBuckets": {
"selector-not-found": 1,
"text-mismatch": 1
},
"reliabilityKpi": {
"passRateMet": false,
"selectorShareMet": true,
"passRate": 0.875,
"selectorFailureShare": 0.5
},
"gitSha": "a4f9e2c",
"branch": "feat/checkout-v2",
"workingTreeClean": true,
"testRunId": "tr_a4f9e2c-001",
"sessionId": "pdlc_q4-checkout-v2",
"nextStep": {
"action": "repair_code",
"caseId": "tc_204",
"failureBucket": "text-mismatch",
"hint": null
}
}Issue an MCP token from your TestMaze space and point any MCP-compatible client at the server. Stdio for IDE plugins and stateless HTTP for hosted scale — both live today, sharing the same tool surface.
claude mcp add testmaze \ --env TESTMAZE_MCP_TOKEN=tmt_xxx \ -- npx -y @testmaze/mcp
@testmaze/mcp is a thin stdio wrapper that exchanges your token and forwards to your Test Maze backend (defaults to https://testmaze.com; override with TESTMAZE_MCP_URL). Published on npm.One canonical contract — tools/list, resources/read, sampling — that every modern coding agent already speaks. No plugins to maintain. No bespoke integrations.
Five minutes to install. Deterministic verdicts from the first run. Your source code never leaves your machine — only the verdicts come back. Free for solo developers; pay only when your team scales.