← Back to directory
O

OrangePro MCP Server

Official
Find test gaps, generate grounded tests, and dynamically prove behavior with mutation testing.
Category
Dev Tools #5 of 438
Stars
★ 18 Popular
Transport
stdio (local process)
Runtime
Node.js
Credentials
Optional API key
License
MIT
Last commit
Tools
18
75FMRS · B

OrangePro MCP is a rigorously designed local testing tool: it strictly separates deterministic analysis from mutation-based proof, treats AI as an auxiliary lane that never pollutes evidence tiers, and ships 18 well-documented MCP tools with clear privacy guarantees. Dynamic proof currently covers only TypeScript/JavaScript, Python, Go, and Java; hosted platform features are out of scope for this repo. A solid choice for teams wanting auditable gap analysis and grounded test generation.

Strongest · Security and permissions 18/20 Weakest · Reliability 12/20

Reliability
12/20
Security and permissions
18/20
Maintenance
14/20
Documentation
16/20
Setup experience
15/20
Why each score
Reliability 12/20
The MCP server provides a complete tool list and functionality descriptions with stdio transport. The code structure is clear with proper error handling mechanisms. However, without executing the actual code, we cannot verify the functionality of all tools, hence the score of 12.
Security and permissions 18/20
The server handles security well, with API keys passed via environment variables without storage in configuration. All sensitive operations have clear confirmation mechanisms. Data boundaries are clear and existing source code is not modified. No obvious security risks were found, justifying the score of 18.
Maintenance 14/20
The project is at version 0.2.40 with continuous update records. The MIT license is clear and contribution guidelines are mentioned. However, with only 15 stars on GitHub and 0 open issues, community activity is limited, resulting in a score of 14.
Documentation 16/20
Documentation is very detailed, including installation guides, usage methods, tool parameter descriptions, and workflows. Configuration examples are provided for multiple IDEs and clients with clear limitations and troubleshooting instructions. High documentation quality justifies the score of 16.
Setup experience 15/20
Installation is straightforward and supports direct execution via npx. Configuration guides are provided for multiple IDEs and clients. However, the need to install the target repository's dependencies first adds complexity to the setup process, resulting in a score of 15.

Static review · not runListed 2026-09-07

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesWrites / deletes local filesRuns commands or codeUses the network

Best for

  • Teams with medium-to-large TypeScript/JavaScript, Python, Go, or Java codebases wanting a deterministic, local-first testing workflow
  • Developers using MCP-compatible coding agents such as Claude Code, Cursor, Codex, Copilot, or OpenCode
  • Privacy-conscious teams: code never leaves the machine and keys stay in environment variables

Not for

  • Projects in Kotlin, Rust, PHP, C#, Ruby, Swift, C/C++ needing generated tests, runtime coverage, or dynamic proof (only static behavior extraction is supported for these)
  • Teams wanting hosted lifecycle management, cross-repo intelligence, or CI policy gates (this repo is the free local tool only)
  • Users who need test generation but won't configure a model key — generation requires BYOK

Required permissions

  • Reads local repository files and git metadata to build the evidence graph
  • Writes reports and metadata to .orangepro/
  • Writes new generated tests under orangepro_generated/ (existing source files untouched)
  • Optionally reads OpenAI / Anthropic / Ollama credentials from env and sends grounded code context directly to your configured provider

Risks and side effects

  • Generated tests land in orangepro_generated/ and should be reviewed before running
  • AI candidate links and flows are suggestions, never evidence; AI output does not change evidence tiers
  • opro generate --pr checks out a PR and mutates your working tree; prefer --base
  • With AI lanes enabled, grounded code context is sent directly to the configured model provider
  • The MCP server has local filesystem and command execution access to the repository — use only on trusted codebases

Setup

Before you start

Runtime:Node.js

OPENAI_API_KEY optionalsecret Optional OpenAI BYOK key for AI candidate links and test generation; get one from your OpenAI account.
ANTHROPIC_API_KEY optionalsecret Optional Anthropic BYOK key for AI candidate links and test generation; get one from the Anthropic console.
Other optional settings (5)
OLLAMA_BASE_URL optional Optional local Ollama endpoint (no key needed) for local AI generation; point it at your locally running Ollama service.
OPENAI_BASE_URL optional Optional override for an OpenAI-compatible endpoint URL (custom or proxied providers).
OPENAI_MODEL optional Optional override for the default OpenAI model name.
ANTHROPIC_MODEL optional Optional override for the default Anthropic model name.
OLLAMA_MODEL optional Optional override for the default Ollama model name.

1) Install the target repository's dependencies first (npm/pnpm/bun install). 2) Optional: export ANTHROPIC_API_KEY, OPENAI_API_KEY, or OLLAMA_BASE_URL to enable AI candidate links and test generation. 3) Run npx -y @orangepro/mcp-server@latest start . --prompt-version v5, then open .orangepro/behavior-coverage.html. 4) Run as an MCP server: npx -y @orangepro/mcp-server@latest mcp; or add {"mcpServers":{"orangepro-local":{"command":"npx","args":["-y","@orangepro/mcp-server@latest","mcp"]}}} to your client's MCP config. Alternatively use opro agent --client claude-code (or cursor/codex/opencode/generic) to print exact client config.

.mcp.json
{"mcpServers":{"orangepro-local":{"command":"npx","args":["-y","@orangepro/mcp-server@latest","mcp"]}}}

Shown for Claude Code. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "orangepro-local": {
      "command": "npx",
      "args": [
        "-y",
        "@orangepro/mcp-server@latest",
        "mcp"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add orangepro-local -- npx -y @orangepro/mcp-server@latest mcp

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

Confirm the 18 orangepro_* tools (starting with orangepro_start) appear in your client's tool list, then ask it to run orangepro_start on the current repo; a report written to .orangepro/behavior-coverage.html proves the connection works.

Troubleshooting

  1. Dynamically Proven 0 on first run is normal — proof requires running tests that kill mutants
  2. If the environment can't run tests, rejected drafts are kept as Manual tests; install dependencies and re-run opro start to convert them
  3. Use opro doctor or opro doctor --proof to see which evidence to add and why dynamic proof didn't close
  4. Add -- to any read command for machine output; run opro help for the full reference
  5. Verify env var names and auto-detect order (OpenAI → Ollama → Anthropic); override with --provider and --model

Things to try

Once connected, you can ask your AI assistant things like:

  • Use orangepro_start to analyze this repo and build the coverage report.
  • Call orangepro_find_test_gaps and list the highest-risk untested behaviors.
  • Use orangepro_generate_tests with base_ref=main, write each test to its suggested_path, run it, and report pass/fail.
  • Run orangepro_prove_loop on one behavior to complete dynamic proof and refresh the report.

Tools 18

orangepro_start writes
One-command setup: analyze + report + next actions
orangepro_analyze_sources writes
Build/refresh the evidence graph
orangepro_generate_tests writes
Generate grounded tests for gaps
orangepro_prove writes
Run the mutation-kill oracle on a behavior
orangepro_prove_loop writes
Setup commands + dynamic proof + report refresh for one behavior
orangepro_find_test_gaps read-only
List behaviors with weak/missing tests, ranked by risk
orangepro_graph_score read-only
Graph readiness score (0–100)
orangepro_status read-only
Workspace state without generating anything
Show 10 more tools
orangepro_doctor read-only
Recommend next evidence to improve quality
orangepro_rtm read-only
Requirements traceability matrix
orangepro_stats read-only
Aggregate statistics
orangepro_changed_impact read-only
What a diff touches (requires git + base ref)
orangepro_record_run writes
Record a test run result
orangepro_explain_test read-only
Explain why a test was generated
orangepro_export_evidence_pack writes
Export a metadata-only evidence pack
orangepro_update_graph writes
Incremental graph update
orangepro_ai_links read-only
Weak behavior→symbol suggestions (optional AI)
orangepro_ai_flows read-only
Candidate flow discovery (optional AI)

Use cases

Find untested behaviors ranked by blast radius before writing new tests
Generate grounded tests for PR diffs or a specific branch's changes
Promote a behavior to Dynamically Proven by writing and running a test that kills a targeted mutant
Produce a system map, coverage report, requirements traceability matrix, and metadata-only evidence pack

Supported clients

Claude Code
Cursor
Codex
Copilot / VS Code
OpenCode
Generic MCP clients

Listed from the project's documentation, not tested by this site.

Overview

OrangePro is a local-first CLI and MCP server (stdio transport) that builds a knowledge graph from your local checkout using tree-sitter, maps every behavior, and assigns each an evidence tier (Dynamically Proven, Runtime-covered, Statically Linked, Unconfirmed Candidate, No Signal). It ranks test gaps by blast radius, generates integration-level tests grounded in real symbols rather than hallucinated imports, and dynamically proves behaviors via a mutation-kill oracle. Analysis, scoring, and proof require no model key; AI candidate links and test generation use an optional BYOK key (OpenAI, Anthropic, or local Ollama). AI output never changes evidence tiers — only a mutation kill can mint Dynamically Proven. All code reading happens in-process; source is never uploaded and existing files are never mutated.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 63.3k · Tools 2 Compare with this →

Source revision 405209f3c533 Data synced 2026-10-19 Read the FMRS scoring method