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.

REA

NPM · REA-AGENTS · SCANNED SEP 27

Reverse engineer anything from your terminal or agent with one CLI and MCP server.

Available components

0 this week 96 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
  • 47 of 147 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to morluto/rea). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 48 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability86
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 13746 tokens (~116/item across 118 items; 116 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Tools include usage examples.Pass
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
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 118 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the REA MCP server?

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

npm · rea-agents

# add to Claude Code
claude mcp add morluto-rea -- npx -y rea-agents
// .cursor/mcp.json
{
  "mcpServers": {
    "morluto-rea": {
      "command": "npx",
      "args": [
        "-y",
        "rea-agents"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "morluto-rea": {
      "command": "npx",
      "args": [
        "-y",
        "rea-agents"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add morluto-rea -- npx -y rea-agents
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "morluto-rea": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "rea-agents"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add morluto-rea --command npx --arg -y --arg rea-agents
# ~/.hermes/config.yaml
mcp_servers:
  morluto-rea:
    command: "npx"
    args: ["-y", "rea-agents"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "morluto-rea": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "rea-agents"
      ]
    }
  }
}
# add to Vellum
assistant mcp add morluto-rea -t stdio -c npx -a -y rea-agents
// mcp.json
{
  "mcpServers": {
    "morluto-rea": {
      "command": "npx",
      "args": [
        "-y",
        "rea-agents"
      ]
    }
  }
}
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.

  • 26 Sept 26 +1

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

  • 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
  • 23 Sept 26 −2
    • Stability: pass → 0.83 functional
  • 22 Sept 26 +1
    • Stability: 0.97 → pass security
  • 20 Sept 26 +1

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

  • 17 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.

  • 16 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 15 Sept 26 +1
    • Stability: 0.97 → pass security
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 27 Sept 2026 · Analysed npm/rea-agents@3.1.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo morluto/rea
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/morluto/rea/.github/workflows/release.yml@refs/heads/main
Rekor log index 2399048204
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:8a9f637633af4ec2b034be57a2bf69860919a93c48fb8a08e3436bfd2743126e734d3c06bf12213b4e661d43f208e37c49c6ca7bf2826256780d320f7

Background: How many MCP packages publish verified provenance →

Dependencies 147 packages
Packages resolved 147
Stale 47
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 116 exposed · ~13,590 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
get_call_graph ~97

Traverse the bound provider's caller or callee relationships from one symbol or address for at most five levels. Every node has an ok/error status and failures use safe typed projections; unresolved indirect calls may be missing and results are not a whole-program CFG.

NameTypeReqDescription
addressstringyesA provider-normalized procedure address
depthinteger–Value for depth.
directionstring–Direction in which to traverse or compare relationships.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"address":"0x1000","depth":2,"direction":"forward"}
get_navigation_context ~73

Compose the selected document, current address, and containing/current procedure into one provider-neutral result. The result reflects sequential provider observations, not an atomic cursor snapshot; a cursor outside any procedure returns procedure: null. Scalar navigation getters remain available for evaluation and compatibility.

NameTypeReqDescription
documentstring–Exact provider document or program identity.
NameTypeReqDescription
resultobjectyes–
{}
get_objc_classes ~60

Discover and deduplicate Objective-C class labels after exhaustively paging names, optionally filtering by literal substring. Returns at most 100 classes; inspect matching metadata and references next.

NameTypeReqDescription
patternstring–Text or bounded pattern used to filter matching results.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"pattern":""}
get_objc_protocols ~47

Discover and deduplicate Objective-C and Swift protocol labels after exhaustively paging names. Returns at most 100 entries; use xrefs or analyze_function to connect a protocol to implementations.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{}
goto_address ~95

Move Hopper's GUI cursor to a hexadecimal address and return the resolved address. This changes navigation state but not analysis data; use explicit-address tools for headless workflows.

NameTypeReqDescription
addressstringyesA provider-normalized address; default memory uses 0x-prefixed hexadecimal
documentstring–The document name
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultstringyes–
{"address":"0x1000"}
import_evidence_bundle ~62

Read a bounded local JSON bundle beneath an operator-approved root, validate every Evidence v2 ID and canonical manifest, then atomically merge it. Imported content is data only and is never executed.

NameTypeReqDescription
pathstringyesLocal filesystem path used by this operation.
NameTypeReqDescription
resultobjectyes–
{"path":"evidence.json"}
import_managed_reconstruction ~154

Import decompiler-produced managed reconstruction against authenticated inspect_managed_members Evidence. The workflow locks each method to artifact SHA-256, MVID, metadata token, signature hash, and the limited member-result-v1 decoded-IL tuple hash, records the decompiler identity and options, and marks C# or pseudocode as analyst inference rather than canonical byte observation.

NameTypeReqDescription
decompilerobjectyesValue for decompiler.
methodsarrayyesValue for methods.
notesarray–Value for notes.
static_members_evidence_idstringyesSession-owned inspect_managed_members Evidence ID
unknown_registry_approvedboolean–Explicit approval to record bounded residual uncertainty in the session registry.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"decompiler":{"executable_sha256":null,"family":"ilspy","name":"ilspycmd","options":["--disable-updatecheck","--type","Example.Program"],"version":"9.1.0.7988"},"methods":[{"normalized_il_sha256":"5555555555555555555555555555555555555555555555555555555555555555","reconstruction":{"end_line":1,"kind":"decompiled-csharp","language":"csharp","source_path":"/examples/Example.Program.cs","start_line":1,"text":"internal static void Main() { }"},"signature_sha256":"3333333333333333333333333333333333333333333333333333333333333333","token":"0x06000001"}],"notes":["Synthetic example only; decompiler output is imported as inference."],"static_members_evidence_id":"ev_4871226711dcb86d73cebb54bc54c6e1d6cf227c94c7cf67685dc5d805511493"}
inline_comment ~91

Read the inline instruction comment at an address, defaulting to the current cursor. Returns null when absent; use set_inline_comment to write one.

NameTypeReqDescription
addressstring–A provider-normalized address; default memory uses 0x-prefixed hexadecimal
documentstring–The document name
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
result–yes–
{}
inspect_address_context ~78

Inspect one explicit reproducible address for its analyzed name, containing procedure, regular and inline comments, and matching bookmarks. Each unsupported facet returns a typed unavailable outcome; xrefs, assembly, and pseudocode remain separate bounded follow-ups.

NameTypeReqDescription
addressstringyesValue for address.
documentstring–Exact provider document or program identity.
NameTypeReqDescription
resultobjectyes–
{"address":"0x1000"}
inspect_artifact ~98

After open_binary binds a local archive, application package, or other artifact—or when one is already active—inspect it through one bounded, cancellable inventory substep. This tool accepts no path; in a target-free session open the target first. Returns the full substep Evidence and its ID, observations, derived relationships, hypotheses, contradictions, unexplored branches, limitations, and format-specific next probes. Any substep failure fails the whole call.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{}
inspect_electron_page ~52

Passively inspect one approved Electron file page through CDP. Returns root-confined frames, DOM structure, resource paths, and scripts without evaluating renderer JavaScript or invoking Electron APIs; script contents require separate approval.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"allowed_file_roots":["/Applications/Example.app/Contents/Resources"],"approved":true,"cdp_endpoint":"http://127.0.0.1:9223","include_script_sources":false,"limits":{"max_dom_nodes":2000,"max_frames":200,"max_resources":2000,"max_script_source_bytes":1048576,"max_scripts":500,"max_total_script_source_bytes":4194304,"max_workers":500},"observation_ms":100,"source_capture_approved":false,"target_id":"TARGET_ID_FROM_LIST_ELECTRON_TARGETS"}
inspect_macho ~40

Inspect Mach-O slices, load commands, imports, exports, dependencies, build metadata, segments, sections, permissions, and exact command provenance without launching Hopper.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{}
inspect_managed_artifact ~252

Open and classify an explicit managed PE/CLI path, or inspect the active managed target, then inventory exact assembly/module identity, target framework evidence, references, resources, and custom attributes without loading or executing target code. Returns bounded pages and explicit partial or malformed coverage.

NameTypeReqDescription
attribute_limitinteger–Maximum number of attribute entries to return.
attribute_offsetinteger–Zero-based index of the first attribute to return.
max_file_bytesinteger–Maximum permitted file bytes for this operation.
max_heap_item_bytesinteger–Maximum permitted heap item bytes for this operation.
max_metadata_bytesinteger–Maximum permitted metadata bytes for this operation.
max_table_rowsinteger–Maximum permitted table rows for this operation.
pathstring–Managed PE/CLI path to open before inspection; omit only when a managed target is already active
reference_limitinteger–Maximum number of reference entries to return.
reference_offsetinteger–Zero-based index of the first reference to return.
resource_limitinteger–Maximum number of resource entries to return.
resource_offsetinteger–Zero-based index of the first resource to return.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"path":"/tmp/Example.dll"}
inspect_managed_members ~372

Inspect bounded PE/CLI metadata members, signatures, raw CIL hashes, limited member-result-v1 decoded-instruction-tuple hashes, separately reported exception regions, call edges, and field-access anchors without loading or executing target code. Metadata tokens are reported as build-local coordinates bound to the artifact SHA-256 and MVID; the v1 tuple hash does not resolve them or fully commit control flow.

NameTypeReqDescription
edge_limitinteger–Maximum number of edge entries to return.
edge_offsetinteger–Zero-based index of the first edge to return.
field_limitinteger–Maximum number of field entries to return.
field_offsetinteger–Zero-based index of the first field to return.
instruction_anchor_limitinteger–Maximum number of instruction anchor entries to return.
max_file_bytesinteger–Maximum permitted file bytes for this operation.
max_heap_item_bytesinteger–Maximum permitted heap item bytes for this operation.
max_metadata_bytesinteger–Maximum permitted metadata bytes for this operation.
max_method_body_bytesinteger–Maximum permitted method body bytes for this operation.
max_method_instructionsinteger–Maximum permitted method instructions for this operation.
max_table_rowsinteger–Maximum permitted table rows for this operation.
member_ref_limitinteger–Maximum number of member ref entries to return.
member_ref_offsetinteger–Zero-based index of the first member ref to return.
method_limitinteger–Maximum number of method entries to return.
method_offsetinteger–Zero-based index of the first method to return.
type_limitinteger–Maximum number of type entries to return.
type_offsetinteger–Zero-based index of the first type to return.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"edge_limit":100,"method_limit":25}
inspect_managed_native_boundaries ~228

Inspect PE/CLI ModuleRef, ImplMap/PInvoke declarations, CLI native-header indicators, and non-IL method implementation flags without loading or executing target code. Results are managed declarations and degraded native-boundary observations, not verified native exports or addresses.

NameTypeReqDescription
implementation_limitinteger–Maximum number of implementation entries to return.
implementation_offsetinteger–Zero-based index of the first implementation to return.
import_limitinteger–Maximum number of import entries to return.
import_offsetinteger–Zero-based index of the first import to return.
max_file_bytesinteger–Maximum permitted file bytes for this operation.
max_heap_item_bytesinteger–Maximum permitted heap item bytes for this operation.
max_metadata_bytesinteger–Maximum permitted metadata bytes for this operation.
max_table_rowsinteger–Maximum permitted table rows for this operation.
module_ref_limitinteger–Maximum number of module ref entries to return.
module_ref_offsetinteger–Zero-based index of the first module ref to return.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"implementation_limit":50,"import_limit":50}
inspect_native_api ~122

Reconstruct one native function boundary through inspectable substeps. Returns structured inferred return/parameter types with confidence and evidence, jump-table dispatch/data/target mappings, explicit decompiler-artifact labels, unsupported branches, and residual unknowns.

NameTypeReqDescription
max_instructionsinteger–Maximum permitted instructions for this operation.
max_pseudocode_charsinteger–Maximum permitted pseudocode chars for this operation.
procedurestringyesA procedure name or address
unknown_registry_approvedboolean–Explicit approval to record unsupported native API branches durably
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"max_instructions":500,"max_pseudocode_chars":20000,"procedure":"main"}
inspect_plist ~54

Parse a plist at a bounded relative path beneath the active artifact container. Symlink and traversal escapes are rejected; output is normalized JSON rather than plutil text.

NameTypeReqDescription
relative_pathstring–Local filesystem path for relative.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"relative_path":"Contents/Info.plist"}
inspect_signature ~36

Inspect the active artifact's code-signing identity, hashes, authorities, requirements, entitlements, hardened-runtime state, and bounded command provenance.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{}
inspect_web_page ~66

Passively inspect one approved page target through CDP without evaluating JavaScript, navigating, clicking, closing, or mutating the page. Returns bounded DOM structure, accessibility, scripts, resources, attach-window network and console metadata, workers, and redacted storage inventory as Evidence v2.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"allowed_origins":["https://app.example.test"],"approved":true,"cdp_endpoint":"http://127.0.0.1:9222","console_text_approved":false,"include_accessibility_text":false,"include_console_text":false,"include_json_body_shapes":false,"include_script_sources":false,"include_storage_fingerprints":false,"include_storage_keys":false,"include_websocket_shapes":false,"json_body_schema_approved":false,"limits":{"max_ax_nodes":2000,"max_ax_text_field_bytes":1024,"max_console_events":200,"max_console_text_field_bytes":1024,"max_dom_nodes":2000,"max_frames":200,"max_json_body_bytes":1048576,"max_json_shape_depth":20,"max_json_shape_nodes":5000,"max_network_events":1000,"max_resources":2000,"max_script_source_bytes":1048576,"max_scripts":200,"max_storage_keys":1000,"max_total_ax_text_bytes":65536,"max_total_console_text_bytes":65536,"max_total_json_body_bytes":4194304,"max_total_script_source_bytes":4194304,"max_total_websocket_shape_bytes":1048576,"max_websocket_events":500,"max_websocket_shape_bytes":65536,"max_workers":500},"observation_ms":500,"target_id":"TARGET_ID_FROM_LIST_BROWSER_TARGETS","websocket_shape_approved":false}
inventory_artifact ~71

After open_binary binds a local archive, application package, or other artifact—or when one is already active—inventory it as a deterministic, content-addressed artifact graph. This tool accepts no path; in a target-free session open the target first. Returns bounded node and edge pages without extracting or mounting by default.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{}
list_architectures ~33

List thin or universal Mach-O slices with offsets, sizes, alignment, explicit coverage, and bounded native-tool provenance.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{}
list_bookmarks ~71

List every bookmark in the selected Hopper document as address and name pairs. Use bookmarks as analyst-authored navigation aids; this does not discover code references.

NameTypeReqDescription
documentstring–The document name
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultarrayyes–
{}
list_browser_targets ~126

List bounded page targets from an approved user-owned loopback Chrome DevTools Protocol endpoint. Only targets whose current URL matches an approved exact origin are returned; URL credentials, query values, and fragments are redacted.

NameTypeReqDescription
allowed_originsarrayyesValue for allowed origins.
approvedbooleanyesExplicit approval for browser observation
cdp_endpointstringyesApproved literal loopback Chrome DevTools Protocol endpoint.
limitinteger–Maximum number of results to return in this page.
offsetinteger–Zero-based index of the first result to return.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"allowed_origins":["https://app.example.test"],"approved":true,"cdp_endpoint":"http://127.0.0.1:9222","limit":100,"offset":0}
list_documents ~57

List provider program or document identities. Hopper may expose several documents; a Ghidra headless session contains exactly its one imported Program.

NameTypeReqDescription
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultarrayyes–
{}
list_electron_targets ~128

List Electron file:// page targets from an approved user-owned loopback CDP endpoint. Every path is canonicalized and must remain contained by an approved filesystem root, including after symlink resolution.

NameTypeReqDescription
allowed_file_rootsarrayyesApproved canonical filesystem allowed file roots.
approvedbooleanyesExplicit operator approval to perform this operation.
cdp_endpointstringyesApproved literal loopback Chrome DevTools Protocol endpoint.
limitinteger–Maximum number of results to return in this page.
offsetinteger–Zero-based index of the first result to return.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"allowed_file_roots":["/Applications/Example.app/Contents/Resources"],"approved":true,"cdp_endpoint":"http://127.0.0.1:9223","limit":100,"offset":0}
list_javascript_runtime_targets ~139

List attachable Node/Electron V8 Inspector targets from one approved literal-loopback endpoint. Only targets inside exact canonical file roots or exact HTTP(S) origins are retained; excluded target locations never enter Evidence.

NameTypeReqDescription
allowed_file_rootsarray–Approved canonical filesystem allowed file roots.
allowed_originsarray–Value for allowed origins.
approvedbooleanyesExplicit operator approval to perform this operation.
inspector_endpointstringyesValue for inspector endpoint.
limitinteger–Maximum number of results to return in this page.
offsetinteger–Zero-based index of the first result to return.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"allowed_file_roots":["/opt/example-app"],"allowed_origins":[],"approved":true,"inspector_endpoint":"http://127.0.0.1:9229","limit":100,"offset":0}
list_names ~134

Page through analyzed memory and external symbols as address/value pairs. Provider metadata distinguishes Ghidra primary, dynamic, external, type, and source facts when available; follow next_offset before claiming exhaustive coverage.

NameTypeReqDescription
addressstring–A provider-normalized address; default memory uses 0x-prefixed hexadecimal
documentstring–The document name
limitinteger–Maximum number of results to return in this page.
offsetinteger–Zero-based index of the first result to return.
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"limit":100,"offset":0}
list_procedures ~112

Page through analyzed procedures as address/value pairs after provider analysis. Ghidra metadata distinguishes thunks and external functions; follow next_offset for exhaustive coverage and use returned addresses in later function operations.

NameTypeReqDescription
documentstring–The document name
limitinteger–Maximum number of results to return in this page.
offsetinteger–Zero-based index of the first result to return.
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"limit":100,"offset":0}
list_segments ~75

List segments or memory blocks using exclusive end addresses. Ghidra reports block permissions, address space, image base, initialization, and overlay facts; Hopper marks unavailable permissions explicitly.

NameTypeReqDescription
documentstring–The document name
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultarrayyes–
{}
list_strings ~139

Page through provider-defined strings, or filter to one address, as address/value pairs. Ghidra reports charset, missing-terminator status, byte length, and explicit value truncation; follow next_offset for exhaustive results.

NameTypeReqDescription
addressstring–A provider-normalized address; default memory uses 0x-prefixed hexadecimal
documentstring–The document name
limitinteger–Maximum number of results to return in this page.
offsetinteger–Zero-based index of the first result to return.
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"limit":100,"offset":0}
list_unknowns ~136

List current residual-unknown heads in deterministic ID order, with optional exact status, severity, and domain filters. Pages default to 100 items; while has_more is true, pass next_offset as offset and continue until false. This is read-only; unresolved, contradicted, and non-truth dispositions remain distinct.

NameTypeReqDescription
domainstring–Value for domain.
limitinteger–Maximum number of results to return in this page.
offsetinteger–Zero-based index of the first result to return.
severitystring–Value for severity.
statusstring–Current lifecycle or verification status.
NameTypeReqDescription
resultobjectyes–
{"limit":100,"offset":0}
next_address ~89

Return the next analyzed object address after an explicit address or current cursor. This is a navigation primitive, not instruction-flow or CFG analysis.

NameTypeReqDescription
addressstring–A provider-normalized address; default memory uses 0x-prefixed hexadecimal
documentstring–The document name
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultstringyes–
{}
observe_javascript_runtime ~207

Attach passively to one exact approved Node/Electron V8 Inspector target and capture bounded Debugger.scriptParsed plus Runtime execution-context events. REA sends only Runtime.enable and Debugger.enable: it never evaluates, pauses, resumes, reads source, or instruments the target. require/import edges, EventEmitter activity, and Electron IPC remain explicit unknowns; reconcile the returned Evidence with static Application Graph Evidence using reconcile_javascript_runtime.

NameTypeReqDescription
allowed_file_rootsarray–Approved canonical filesystem allowed file roots.
allowed_originsarray–Value for allowed origins.
approvedbooleanyesExplicit operator approval to perform this operation.
inspector_endpointstringyesValue for inspector endpoint.
limitsobject–Bounded resource-consumption and result-size limits for this operation.
observation_msinteger–Value for observation ms.
runtime_kindstringyesValue for runtime kind.
target_idstringyesExact authorized CDP target identifier.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"allowed_file_roots":["/opt/example-app"],"allowed_origins":[],"approved":true,"inspector_endpoint":"http://127.0.0.1:9229","limits":{"max_events":10000,"max_execution_contexts":1000,"max_location_bytes":16384,"max_scripts":2000,"max_total_metadata_bytes":4194304},"observation_ms":100,"runtime_kind":"node","target_id":"TARGET_ID_FROM_LIST_JAVASCRIPT_RUNTIME_TARGETS"}
observe_web_session ~142

Arm a bounded CDP observation window while the user operates the page. Allows approved same-origin reload and SPA navigation, records ordered navigation, redirect, lifecycle, and failure metadata, and stops before retaining an out-of-policy destination.

NameTypeReqDescription
allowed_originsarrayyesValue for allowed origins.
approvedbooleanyesExplicit operator approval to perform this operation.
cdp_endpointstringyesApproved literal loopback Chrome DevTools Protocol endpoint.
max_timeline_eventsinteger–Maximum permitted timeline events for this operation.
observation_msinteger–Value for observation ms.
target_idstringyesExact authorized CDP target identifier.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"allowed_origins":["https://app.example.test"],"approved":true,"cdp_endpoint":"http://127.0.0.1:9222","max_timeline_events":2000,"observation_ms":10000,"target_id":"TARGET_ID_FROM_LIST_BROWSER_TARGETS"}
open_binary ~128

Open a local executable, application bundle, archive, JavaScript, source map, plist, or analysis database after validation. provider_id selects one deep provider or deterministic auto selection; the binding remains stable until close or an explicit switch, with no failure fallback. An optional snapshot v2 is imported atomically and must match the binary identity, concrete provider, and canonical analysis profile exactly.

NameTypeReqDescription
pathstringyesLocal filesystem path used by this operation.
provider_id––Exact deep-analysis provider ID, or automatic selection when omitted.
snapshot_pathstring–Local filesystem path for snapshot.
NameTypeReqDescription
resultobjectyes–
{"path":"/tmp/fixture"}
plan_managed_runtime_correlation ~174

Prepare a separately authorized managed runtime-correlation admission plan from authenticated inspect_managed_members Evidence. The operation is default-disabled, requires the managed_runtime permission ceiling and grant, locks the exact artifact SHA-256, MVID, method signature, and limited member-result-v1 decoded-IL tuple hash, distinguishes attach/load/debugger/reflection/instrumentation effects, and records that no target code was executed.

NameTypeReqDescription
boundsobject–Value for bounds.
hostobjectyesValue for host.
methodobjectyesValue for method.
requested_effectstringyesValue for requested effect.
static_members_evidence_idstringyesSession-owned inspect_managed_members Evidence ID
unknown_registry_approvedboolean–Explicit approval to record bounded residual uncertainty in the session registry.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"bounds":{"allow_network":false,"allow_ui":false,"max_output_bytes":65536,"max_threads":32,"timeout_ms":5000},"host":{"architecture":"x86_64","clr_family":"dotnet","os":"linux"},"method":{"normalized_il_sha256":"5555555555555555555555555555555555555555555555555555555555555555","signature_sha256":"3333333333333333333333333333333333333333333333333333333333333333","token":"0x06000001"},"requested_effect":"attach","static_members_evidence_id":"ev_4871226711dcb86d73cebb54bc54c6e1d6cf227c94c7cf67685dc5d805511493"}
prepare_node_characterization ~119

Prepare a hash-bound Node/JavaScript characterization plan and deterministic reversible export transformation without executing target code. The exact source, selected byte range, runtime closure, sandbox profile, cases, and limits are committed for separate execution approval.

NameTypeReqDescription
expected_effectstringyesExpected effect used to reject stale or mismatched input.
instrumentationobjectyesValue for instrumentation.
preparation_approvedbooleanyesExplicit operator approval for preparation.
replayobjectyesValue for replay.
selected_aliasstringyesValue for selected alias.
NameTypeReqDescription
phasestringyes–
planobjectyes–
replayobjectyes–
schema_versionnumberyes–
transformationobjectyes–
transformation_evidence–yes–
{"expected_effect":"pure","instrumentation":{"artifact_path":"/approved/bundle.js","artifact_sha256":"0000000000000000000000000000000000000000000000000000000000000000","selection":{"byte_end":120,"byte_start":100,"export_name":"selected","selected_sha256":"0000000000000000000000000000000000000000000000000000000000000000"}},"preparation_approved":true,"replay":{"cases":[{"arguments":[""],"case_id":"empty"}],"left":{"entry_alias":"bundle","entry_export":"selected","modules":[{"alias":"bundle","dependencies":{},"format":"commonjs-factory","path":"/approved/bundle.js","role":"module"}]},"mode":"plan"},"selected_alias":"bundle"}
prev_address ~88

Return the previous analyzed instruction start before an explicit address or current cursor. This is a navigation primitive and may fail at document boundaries.

NameTypeReqDescription
addressstring–A provider-normalized address; default memory uses 0x-prefixed hexadecimal
documentstring–The document name
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultstringyes–
{}
procedure_address ~91

Resolve an unambiguous procedure symbol name or provider-normalized address to its canonical entry address. External address spaces remain explicit; use the result before xrefs, assembly, or decompilation.

NameTypeReqDescription
documentstring–The document name
procedurestringyesThe procedure name or address
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultstringyes–
{"procedure":"main"}
procedure_assembly ~90

Return assembly for one analyzed procedure identified by symbol or hexadecimal address. Use when pseudocode loses calling-convention or instruction-level detail; output is currently returned as one unpaginated string.

NameTypeReqDescription
documentstring–The document name
procedurestringyesThe procedure name or address
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultstringyes–
{"procedure":"main"}
procedure_callees ~91

Return the provider's resolved direct callees for one procedure identified by symbol or address. Unresolved indirect calls may be absent; use analyze_function and typed references to preserve available edge uncertainty.

NameTypeReqDescription
documentstring–The document name
procedurestringyesThe procedure name or address
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultarrayyes–
{"procedure":"main"}
procedure_callers ~81

Return the provider's resolved direct callers for one procedure identified by symbol or address. Results reflect completed static analysis and may omit unresolved indirect references.

NameTypeReqDescription
documentstring–The document name
procedurestringyesThe procedure name or address
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultarrayyes–
{"procedure":"main"}
procedure_info ~87

Return bounded metadata for one procedure identified by symbol or address: entrypoint, signature, locals, size, and block count. Follow with decompilation or assembly for behavior.

NameTypeReqDescription
documentstring–The document name
procedurestringyesThe procedure name or address
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"procedure":"main"}
procedure_pseudo_code ~98

Decompile one analyzed procedure by symbol name or provider-normalized address. Returns provider-specific pseudocode, never original source or cross-provider text equivalence, and may return null; request procedure_assembly when instruction precision matters.

NameTypeReqDescription
documentstring–The document name
procedurestringyesThe procedure name or address
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
result–yes–
{"procedure":"main"}
procedure_references ~155

Return a bounded set of raw incoming or outgoing reference edges for one procedure. Endpoint procedures are resolved only from provider containment; Ghidra preserves observed reference kinds while providers without kind authority mark them unavailable.

NameTypeReqDescription
directionstring–Direction in which to traverse or compare relationships.
documentstring–The document name
limitinteger–Maximum number of results to return in this page.
max_instructionsinteger–Maximum permitted instructions for this operation.
offsetinteger–Zero-based index of the first result to return.
procedurestringyesThe procedure name or address
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"direction":"outgoing","limit":100,"max_instructions":500,"offset":0,"procedure":"main"}
project_managed_application_graph ~61

Project authenticated managed artifact, member, and native-boundary Evidence into the provider-neutral application graph without executing managed code, loading assemblies, or translating managed metadata tokens to native addresses. The graph preserves managed static observations as managed-specific nodes linked to source Evidence.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"limits":{"max_fields":100,"max_methods":100,"max_native_implementations":100,"max_pinvoke_imports":100,"max_types":100},"managed_members_evidence_id":"ev_4871226711dcb86d73cebb54bc54c6e1d6cf227c94c7cf67685dc5d805511493"}
query_reconstruction_coverage ~87

Evaluate one named reconstruction boundary from a canonical coverage workspace. Missing ownership or inventory is partial; stale, weak, truncated, skipped, or unresolved proof is unknown; contradictions, failed proof, missing owners, and authority routing fail closed.

NameTypeReqDescription
boundary_idstringyesExact reconstruction boundary identifier to evaluate.
workspace_pathstringyesApproved local path of the persistent investigation workspace.
NameTypeReqDescription
boundary_idstringyes–
evidence_idsarrayyes–
reasonsarrayyes–
recommended_probesarrayyes–
statusstringyes–
summaryobjectyes–
workspace_revision_sha256stringyes–
{"boundary_id":"replacement.cli","workspace_path":"/approved/coverage.json"}
Common questions

What is the REA MCP server?

REA is an MCP server listed in the public MCP registry as io.github.morluto/rea. Reverse engineer anything from your terminal or agent with one CLI and MCP server. This page covers its npm package (rea-agents).

Is the REA MCP server safe to use?

REA scores 96 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 27 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 REA MCP server expose?

REA exposes 116 tools: address_name, comment, current_address, current_procedure, current_document, and 111 more. Their descriptions and schemas cost roughly 13,590 tokens of context every time the server is loaded.

Is the REA MCP server still maintained?

REA is still listed as active in the MCP registry. We last reached this channel on 27 September 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 REA MCP server under?

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