Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

OrangePro

NPM · @ORANGEPRO/MCP-SERVER · SCANNED OCT 1

Find test gaps, generate grounded tests, and dynamically prove behavior with mutation testing.

0 this week 82 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 97 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3891 tokens (~216/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 18 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the OrangePro MCP server?

OrangePro runs locally as an npm package, launched with npx -y @orangepro/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @orangepro/mcp-server

# add to Claude Code
claude mcp add orangeproai-orangepro -- npx -y @orangepro/mcp-server
// .cursor/mcp.json
{
  "mcpServers": {
    "orangeproai-orangepro": {
      "command": "npx",
      "args": [
        "-y",
        "@orangepro/mcp-server"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "orangeproai-orangepro": {
      "command": "npx",
      "args": [
        "-y",
        "@orangepro/mcp-server"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add orangeproai-orangepro -- npx -y @orangepro/mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "orangeproai-orangepro": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@orangepro/mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add orangeproai-orangepro --command npx --arg -y --arg @orangepro/mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  orangeproai-orangepro:
    command: "npx"
    args: ["-y", "@orangepro/mcp-server"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "orangeproai-orangepro": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@orangepro/mcp-server"
      ]
    }
  }
}
# add to Vellum
assistant mcp add orangeproai-orangepro -t stdio -c npx -a -y @orangepro/mcp-server
// mcp.json
{
  "mcpServers": {
    "orangeproai-orangepro": {
      "command": "npx",
      "args": [
        "-y",
        "@orangepro/mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 1 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 22 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 1 Oct 2026 · Analysed npm/@orangepro/mcp-server@0.2.12

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 97 packages
Packages resolved 97
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 18 exposed · ~3,891 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
orangepro_ai_flows ~133

Opt-in AI lane: propose candidate behavior-flow chains over existing deterministic entry and CodeSymbol ids. Generate writes .orangepro/flows.json only; apply=true stores survivors under analysis.candidate_flows. Candidate flows are a verify-these worklist and never affect Proven, deterministic flow counts, tiers, or coverage.

NameTypeReqDescription
applyboolean–Apply staged flows into analysis.candidate_flows. Default false stages flows only.
modelstring–Model name override.
providerstring–BYOK provider override.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_ai_links ~189

Opt-in AI lane: propose weak MAY_RELATE_TO candidate links between existing deterministic behavior and CodeSymbol nodes. Generate writes .orangepro/ai/links.json only; apply=true explicitly merges survivors into candidate_edges. These links never affect proven coverage.

NameTypeReqDescription
allboolean–Link across all behavior nodes instead of the default gaps-only scope.
applyboolean–Apply staged links into candidate_edges. Default false stages links only.
max_behaviorsinteger–Maximum behavior targets to process in this AI linking run.
max_prompt_tokensinteger–Approximate per-batch prompt token ceiling.
modelstring–Model name override.
providerstring–BYOK provider override.
symbols_per_behaviorinteger–Deterministic CodeSymbol shortlist size per behavior.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_analyze_sources ~229

Build or refresh the local OrangePro evidence graph from a local checkout/path plus optional CSV/Markdown enrichers. Metadata-only by default — reads source in-process but never stores or uploads code. Optionally stages/applies AI candidate flows and refreshes the report when ai_flows=true.

NameTypeReqDescription
ai_flowsboolean–Generate and apply AI-suggested candidate flows after analyze, then refresh the behavior report. Requires a BYOK provider; skips without failing analyze if none is configured.
include_markdownboolean–Enrich requirements-like Markdown docs. Default true.
include_source_snippetsboolean–Deferred: source snippets are never persisted in the first slice.
modestring–Persistence privacy mode. Only metadata_only is supported.
modelstring–Model name override for ai_flows.
pathsarray–Extra template/doc files (.csv/.md) to enrich the graph.
providerstring–BYOK provider override for ai_flows.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_changed_impact ~159

DIFF/PR TOOL — only for real code-review situations. Summarizes what changed vs a base git ref and which local graph behaviors/tests are affected (basic changed-file impact; no deep route/API shape analysis). Requires a git repo and a real diff: returns status 'no_diff' / 'no_code_changes' (diff was docs-only) / 'missing_base_ref' / 'not_a_git_repo' with guidance instead of fabricated impact when there is nothing to analyze. For baseline (no-PR) test opportunities use orangepro_find_test_gaps.

NameTypeReqDescription
base_refstring–Base git ref to diff against. Default 'main'.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_doctor ~104

Recommend the smallest next source that would most improve generated-test quality, with expected score impact. Teaches what data improves output.

NameTypeReqDescription
goalstring–Optimization goal hint, e.g. 'better_tests'.
proofboolean–Proof-focused mode: explain why top targets are not Dynamically Proven (deduped blockers + smallest next steps). Read-only; mints nothing.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_explain_test ~86

Explain why a generated test exists: which graph evidence anchors support it, source refs, and whether weak/candidate evidence was used. Exposes trust artifacts only, not internal generation logic.

NameTypeReqDescription
generated_test_idstringyesThe generated test id (or title) from orangepro_generate_tests.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_export_evidence_pack ~171

Export a portable evidence pack (JSON) plus a human-readable Markdown summary for review or later hosted promotion. Includes facts, provenance, generated outputs, and high-level score metadata — never prompts, weights, traces, or raw source. Validates against the local schema.

NameTypeReqDescription
graph_htmlboolean–Also write a self-contained offline evidence-graph explorer (metadata only, no network).
include_generated_bodiesboolean–Embed generated test bodies in the pack. Default false: bodies stay in the local workspace so the exported pack is metadata-only. Raw source snippets never cross the boundary regardless of this flag.
output_pathstring–Output JSON path. Default 'orangepro-evidence-pack.json'.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_find_test_gaps ~115

List requirements/flows with weak or missing test evidence, plus top_risk_gaps for unproven code symbols ranked by the OrangePro Risk Score (Probability × Impact × DetectionDifficulty). Risk is prioritization only; it never changes coverage/proof status.

NameTypeReqDescription
limitinteger–Max gaps to return. Default 10.
min_prioritystring–Minimum priority to include (low|medium|high|critical).
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_generate_tests ~621

Generate a small capped set (1-5) of grounded tests from local evidence using your own model key (BYOK: OpenAI-compatible, Ollama, or Anthropic). Tests are diversified across lightweight LOCAL scenario buckets (happy_path, validation_error, edge_case, integration_flow, security_privacy, regression) chosen from the evidence — unjustified buckets are skipped, never padded. By default it focuses the top-gap behavior and returns up to `limit` bucket-diverse tests for it; pass multiple target_ids to split the budget across them. Each test reports its bucket plus VALIDATED grounding `evidence` (every cited entity resolved against the local graph with its kind, evidence strength, and source_ref) and discloses weak/candidate evidence; `evidence_summary` reports proof coverage and any broken citations, so the grounding is verifiable rather than asserted. If evidence is too thin, returns missing-evidence guidance instead of generic tests. Returns each test's code plus `run_hints` (a suggested file path + run command) and an `agent_workflow`: YOU (the agent) write each file and run it with your shell tools, then report pass/fail + stack traces — OrangePro never writes to or runs anything in the repo. Requires the repo's test framework/deps to already be installed.

NameTypeReqDescription
base_refstring–PR-scoped generation: restrict to the behaviors the diff vs this ref touches (e.g. 'main') — for branch/PR review, target only the changed code. Requires a git repo + a real diff; returns structured…
compareboolean–Run BOTH arms — prompt-only baseline vs Local KG, same model + system prompt — and return side-by-side scores (completeness, context awareness, accuracy, domain specificity) plus both test suites. No…
frameworkstring–Framework hint, e.g. 'playwright', 'vitest', 'pytest'.
limitinteger–Total tests to generate (1-5), spread across local scenario buckets. Default 3.
modelstring–Model name override.
prompt_versionstring–Prompt strategy. Defaults to v2; v5 is opt-in until corpus validation clears it as default.
providerstring–BYOK provider override (auto-detected from env if omitted). Use 'deterministic' for an offline stand-in; without any provider configured, generation returns setup guidance instead of degrading.
target_idsarray–Behavior/requirement external ids to target. Default: the top-gap behavior. Pass several to split the budget across them (each gets a test when the budget allows, in priority order).
workspacestring–Local workspace root. Defaults to the current directory.
write_filesboolean–Deferred/premium: repo file writing is disabled in the first slice; always treated as false.

No output schema declared.

No examples provided.

orangepro_graph_score ~61

Return the local graph readiness score (0-100), band, per-dimension breakdown, and plain-language missing evidence. Readiness signal, not a proof of test lift.

NameTypeReqDescription
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_prove ~463

Run the dynamic targeted-proof oracle for a CodeSymbol and append a metadata-only ledger certificate. Public Proven closes only when baseline green plus a valid sentinel mutation of the credited symbol fails the same test at an assertion. Static record_run is diagnostics only.

NameTypeReqDescription
jest_configstring–Repo-relative Jest config path.
link_node_modulesboolean–Trusted-repo speed mode: symlink node_modules into temp copies.
methodstring–Optional consistency check. If provided, must match the member derived from target_symbol.
replacementstring–TS/JS: inert sentinel body, e.g. 'return null;' or 'return {"ok":false};'. Must be JSON-only per the oracle (required for TS/JS targets). Go derives its own sentinel.
replacement_modestring–Sentinel wrapping mode. Default return-json.
run_idstring–Optional caller-supplied run id. Defaults to a local monotonic id.
runnerstring–Test runner override. Default auto.
sourcestring–Source checkout containing the test and target files. Defaults to workspace.
target_filestring–Optional consistency check. If provided, must match the file derived from target_symbol.
target_idstring–Optional graph target id that must resolve to exactly one hard-linked CodeSymbol.
target_symbolstring–Exact CodeSymbol external id, e.g. sym:src/service.ts#OrderService.createOrder. Preferred.
test_envarray–Explicit non-secret KEY=value env entries for the test run.
test_pathstring–TS/JS: repo-relative test file to run (required for TS/JS targets).
test_runstring–Go: fully-anchored test name for `go test -run`, e.g. '^TestCompute$' (required for Go targets). Java: 'TestClass#testMethod', e.g. 'CalculatorTest#addsTwoNumbers' (required for Java targets).
timeout_msinteger–Per baseline/mutant test timeout.
vitest_configstring–Repo-relative Vitest config path.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_prove_loop ~557

Product wrapper around orangepro_prove: run trusted-local setup_commands in the source checkout, then the UNCHANGED dynamic targeted-proof oracle, then refresh the behavior report. Setup is non-secret repo prep only (build/install/shim); a setup failure returns unrunnable, does not run the oracle, and leaves the ledger untouched (never Proven). Public Proven still closes only through the unchanged certificate.

NameTypeReqDescription
jest_configstring–Repo-relative Jest config path.
link_node_modulesboolean–Trusted-repo speed mode: symlink node_modules into temp copies.
methodstring–Optional consistency check. If provided, must match the member derived from target_symbol.
replacementstring–TS/JS: inert sentinel body, e.g. 'return null;' or 'return {"ok":false};'. Must be JSON-only per the oracle (required for TS/JS targets). Go derives its own sentinel.
replacement_modestring–Sentinel wrapping mode. Default return-json.
run_idstring–Optional caller-supplied run id. Defaults to a local monotonic id.
runnerstring–Test runner override. Default auto.
setup_commandsarray–Trusted-local repo prep run in the source checkout before the oracle. Non-secret only (build/install/shim). First non-zero exit returns unrunnable.
setup_timeout_msinteger–Default per-setup-command timeout (ms). Default 30000.
sourcestring–Source checkout containing the test and target files. Setup runs here. Defaults to workspace.
target_filestring–Optional consistency check. If provided, must match the file derived from target_symbol.
target_idstring–Optional graph target id that must resolve to exactly one hard-linked CodeSymbol.
target_symbolstring–Exact CodeSymbol external id, e.g. sym:src/service.ts#OrderService.createOrder. Preferred.
test_envarray–Explicit non-secret KEY=value env entries for the test run.
test_pathstring–TS/JS: repo-relative test file to run (required for TS/JS targets).
test_runstring–Go: fully-anchored test name for `go test -run`, e.g. '^TestCompute$' (required for Go targets). Java: 'TestClass#testMethod', e.g. 'CalculatorTest#addsTwoNumbers' (required for Java targets).
timeout_msinteger–Per baseline/mutant test timeout.
vitest_configstring–Repo-relative Vitest config path.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_record_run ~313

Record an agent test-writing attempt as static diagnostics. When test_path is provided for TS/JS, OrangePro first tries scoped deterministic re-prove; otherwise it re-analyzes the repo. Static hard COVERS edges render as Associated signal; public Proven requires orangepro_prove.

NameTypeReqDescription
agent_passboolean–Whether the agent-reported test command passed. Advisory only.
evidence_idsarray–Generated-test/evidence ids tied to this attempt. Metadata only.
modelstring–Model name used by the agent/generator, if any.
prompt_versionstring–Prompt or workflow version used, if any.
providerstring–Model provider used by the agent/generator, if any.
run_idstring–Optional caller-supplied run id. Defaults to a local monotonic id.
sourcestring–Source checkout to re-analyze. Defaults to workspace.
target_idstring–Optional graph target id that must resolve to exactly one hard-linked CodeSymbol.
target_symbolstring–Exact CodeSymbol external id, e.g. sym:svc/add.go#Add. Preferred.
test_pathstring–Workspace-relative test file the agent just wrote. Enables scoped deterministic re-prove for TS/JS.
vacuousboolean–Whether the agent judged the test vacuous/non-assertive. Advisory only.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_rtm ~180

Write and return a deterministic Requirements Traceability Matrix. Status comes only from the local graph and gap-fill ledger: Proven, Runtime-covered, Associated signal, No integration signal, Reproven, or Generated-unverifiable. No LLM calls.

NameTypeReqDescription
base_refstring–Optional PR/diff scope. Restricts rows to behaviors touched vs this ref.
formatstring–Output format. Default md.
limitinteger–Optional max rows to emit. Markdown defaults to 500 rows; JSON/CSV are uncapped unless set.
output_pathstring–Output path. Default .orangepro/rtm.<format>.
statusarray–Optional status filter, e.g. ['no-link','runtime','associated'].
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_start ~319

One-command local setup for a repo or PR: analyze sources, auto-apply weak AI candidate links and candidate flows when a real BYOK provider is configured, write behavior-coverage.html + rtm.md, summarize changed/gap targets, and return agent next actions. AI lanes stay separate and never affect Proven coverage.

NameTypeReqDescription
ai_allboolean–Run AI weak-linking over all deterministic behavior nodes instead of gaps-only.
base_refstring–Optional PR/diff base ref. Default auto-detects main/master when possible.
coverage_timeout_msinteger–Per-command coverage-generation timeout.
generate_coverageboolean–Run safe local coverage generation before analyze where supported. Default false.
include_markdownboolean–Enrich requirements-like Markdown docs. Default true.
modelstring–Model name override.
no_aiboolean–Disable automatic AI weak-link and candidate-flow passes even if a provider key is configured.
no_ai_flowsboolean–Disable automatic AI candidate-flow discovery while keeping weak AI links enabled.
prompt_versionstring–Opt-in generation strategy for the auto-prove generation lane. Default v2/deterministic; v5 uses batched two-phase generation. The prove/mint gate is unchanged either way.
providerstring–BYOK provider override for the AI passes.
sourcestring–Source path to analyze. Defaults to workspace.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_stats ~62

Summarize the local gap-fill ledger: attempted, dynamic-reproven, unproven, legacy static-associated, generated-but-unverifiable, and kept rate. Metadata-only.

NameTypeReqDescription
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_status ~58

Show local workspace state without generating anything: whether the graph is fresh/stale/missing, source mix, score, and privacy settings (always local, no upload).

NameTypeReqDescription
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

orangepro_update_graph ~71

Refresh the local graph from changed files. Incremental and non-destructive by default — preserves evidence and marks affected generated tests stale.

NameTypeReqDescription
force_full_rebuildboolean–Force a full rebuild instead of an incremental update.
workspacestring–Local workspace root. Defaults to the current directory.

No output schema declared.

No examples provided.

Common questions

What is the OrangePro MCP server?

OrangePro is an MCP server listed in the public MCP registry as io.github.OrangeproAI/orangepro. Find test gaps, generate grounded tests, and dynamically prove behavior with mutation testing. This page covers its npm package (@orangepro/mcp-server).

Is the OrangePro MCP server safe to use?

OrangePro scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 1 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the OrangePro MCP server expose?

OrangePro exposes 18 tools: orangepro_start, orangepro_analyze_sources, orangepro_graph_score, orangepro_status, orangepro_doctor, and 13 more. Their descriptions and schemas cost roughly 3,891 tokens of context every time the server is loaded.

Is the OrangePro MCP server still maintained?

OrangePro is still listed as active in the MCP registry. We last reached this channel on 1 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the OrangePro MCP server under?

OrangePro declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.