Find test gaps, generate grounded tests, and dynamically prove behavior with mutation testing.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by OrangePro.
orangepro_startOne-command setup: analyze + report + next actions
orangepro_analyze_sourcesBuild/refresh the evidence graph
orangepro_generate_testsGenerate grounded tests for gaps
orangepro_proveRun mutation-kill oracle on a behavior
orangepro_prove_loopSetup commands + dynamic proof + report refresh for one behavior
orangepro_find_test_gapsList behaviors with weak/missing tests, ranked by risk
Find the behaviors your tests miss. Generate grounded tests that actually run.
OrangePro maps every public behavior in your codebase, scores each one by real test evidence, and shows you the structural blind spots before your users find them. Runs locally. Your code never leaves your machine.
One command produces an interactive HTML report:
The report has two modes: Simple (integration-level blind spots, plain English) and Expert (full behavior list, evidence tiers, flows, system map). Toggle with the pill switch at the top.
β Live example: Twenty CRM (5,237 behaviors mapped)
System map β entry lanes (GraphQL, HTTP, Jobs) flowing into services, sized by traffic, colored by evidence tier, red-ringed by risk.
Priority gaps of another open source Project HONO β top 20 unproven behaviors ranked by blast radius, with generated test drafts.
Every behavior gets exactly one tier. Nothing is labeled "tested" on faith.
| Tier | Color | What it means |
|---|---|---|
| Dynamically Proven | π’ | A real test kills a targeted mutation of this behavior |
| Runtime-covered | π’ | Coverage tool executed this code |
| Statically Linked | π‘ | A test imports and calls this code β structural link, not proof |
| Unconfirmed Candidate | βͺ | A similar test file exists β a lead, not evidence |
| No Signal | π΄ | Nothing tests this behavior |
"Dynamically Proven 0" is normal on first run. Proof requires running tests against targeted mutations. That's the trust model.
No API key needed. The report shows your system map, evidence tiers, priority gaps, and delta since last run.
Want test generation? Add a model key (BYOK):
AI output never changes evidence tiers. Only the mutation-kill oracle can mint Dynamically Proven.
Output:
Each rerun shows a delta banner: what entered the codebase, what moved up in risk, what got resolved.
OrangePro runs as an MCP server. Add to your client's config:
| Client | Where to put it |
|---|---|
| Claude Code | .mcp.json or ~/.claude.json |
| Cursor | ~/.cursor/mcp.json or Settings β MCP |
| VS Code / Copilot | MCP settings |
| Codex / OpenCode | Run npx -y @orangepro/mcp-server@latest agent --client codex |
The workflow: Tell your agent:
"Use
orangepro_start, thenorangepro_generate_testswith base_ref=main. Write each test to its suggested_path, run it, and report pass/fail."
The agent writes the test, runs it, calls orangepro_prove, and the behavior turns Dynamically Proven. One prompt, full loop.
Claude Code Β· Cursor Β· GitHub Copilot Β· Codex Β· Windsurf Β· OpenCode Β· VS Code
Any MCP-compatible agent can drive OrangePro. No vendor lock-in.
| Phase | What happens | Needs a model key? |
|---|---|---|
| Analyze | AST walk β behaviors, flows, evidence tiers | No |
| Score | Graph readiness score (0β100) | No |
| Generate | Grounded tests for top gaps | Yes (BYOK) |
| Prove | Mutation-kill oracle confirms test breaks if behavior changes | No |
Same code = same score. Deterministic. Always.
| Language | Static mapping | Generated tests | Dynamic proof |
|---|---|---|---|
| TypeScript / JavaScript | β | β Jest / Vitest / Mocha | β |
| Python | β | β pytest | β |
| Go | β | β *_test.go | β |
| Java | β | β JUnit 4/5 | β |
| Kotlin, Rust, PHP, C#, Ruby, Swift, C, C++ | β | planned | planned |
Static mapping works across many languages via tree-sitter. Dynamic proof is deliberately narrower β each language needs a runner, mutation locator, and sandbox profile.
Use the repository's own setup and test commands first, and keep unit and integration
coverage in separate artifacts. Then run opro start; it performs analysis, ingests
the artifacts, attempts targeted proof, generates report-visible drafts, and writes the
final report. A separate opro analyze is unnecessary when opro start follows it.
Without this manifest, OrangePro conservatively infers clear unit/integration names
and labels everything else unclassified; it never guesses that an aggregate profile is
unit-only. The report shows unit, integration, their overlap, unclassified coverage, and
the combined union separately. --proof-limit controls dynamic proof attempts (which
may draft a test for proof); --generate-limit independently controls the additional
report-visible risk-gap drafting lane. A generation run
also records its terminal status and exact reason, so a compiler/import failure is not
misreported as a generic dependency problem.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/orangepro)<a href="https://allmcps.com/mcp/orangepro"><img src="https://allmcps.com/api/badge/orangepro?style=directory" alt="OrangePro on AllMCPs" /></a>