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
read_bytes ~112

Read at most 4,096 analyzed bytes from one provider-normalized virtual address. The hexadecimal payload reports the exact returned length; incomplete reads remain explicit and unsupported provider APIs return typed capability unavailability.

NameTypeReqDescription
addressstringyesA provider-normalized address; default memory uses 0x-prefixed hexadecimal
documentstring–The document name
lengthinteger–Value for length.
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"address":"0x1000","length":16}
read_function_instructions ~130

Read one offset-paginated window of raw instructions for an analyzed procedure without decompilation, caller discovery, or whole-program string/name scans. Use this fast path for instruction-level orientation; follow next_offset when truncated.

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.
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–
{"limit":64,"offset":0,"procedure":"main"}
reconcile_javascript_runtime ~145

Reconcile verified static JavaScript application graphs with existing passive web/Electron CDP, passive V8 Inspector, or provider-owned active Electron Evidence. Active Electron captures contribute an explicitly partial target-only runtime record; they never invent renderer scripts, frames, workers, or execution claims. Exact captured-source digests take priority over caller-declared file/URL mappings; target, frame, script, and worker ambiguity remains explicit, and source-map authority stays separate.

NameTypeReqDescription
limitsobject–Bounded resource-consumption and result-size limits for this operation.
runtime_observationsarrayyesValue for runtime observations.
static_layersarrayyesValue for static layers.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"runtime_observations":[{"authority":"external-service","confidence":"observed","environment":null,"evidence_id":"ev_e9ffe953ecde3cee6f8b1e2e2fc8be64bf58d17b3c680d1230587294f6b02c3a","evidence_links":[],"limitations":["Artifact identity is unavailable for this observation."],"locations":[],"normalized_result":{"browser":{"js_version":"1","product":"Electron/example","protocol_version":"1.3","revision":"example","user_agent":"Electron example"},"capture_window":{"ended_at":"2026-07-15T00:00:00.100Z","observation_ms":100,"started_at":"2026-07-15T00:00:00.000Z"},"completeness":{"attach_limited_sections":[],"conditions":["complete_within_window"],"dropped_events":{"console_events":0,"network_requests":0,"scripts":0,"timeline_events":0,"total":0,"webmcp_tools":0,"websocket_connections":0,"websocket_frames":0},"excluded":[],"policy_filtered_sections":[],"status":"complete_within_window","truncated_sections":[],"unavailable_sections":[]},"dom":{"nodes":[],"total_nodes":0},"frames":[],"limitations":["Example passive capture."],"resources":[],"schema_version":1,"scripts":{"items":[{"cdp_hash":"example","file_path":"/Applications/Example.app/Contents/Resources/app/renderer.js","frame_id":null,"is_module":true,"language":"JavaScript","length":29,"script_key":"electron_script_4444444444444444444444444444444444444444444444444444444444444444","source":{"artifact":{"bytes":29,"charset":"utf-8","media_type":"text/javascript","sha256":"c4c0d760a4c84f0e182de99f6ef89ef10831f8170e486c4d4bd934924151ba64","text":"export const example = true;\n","uri":"rea://web-content/sha256/c4c0d760a4c84f0e182de99f6ef89ef10831f8170e486c4d4bd934924151ba64"},"included":true}}],"total":1},"target":{"attached":false,"file_path":"/Applications/Example.app/Contents/Resources/app/index.html","target_id":"example-target","title":"Example","type":"page"},"workers":[]},"operation":"inspect_electron_page","parameters":{"allowed_file_roots":["/Applications/Example.app/Contents/Resources/app"],"cdp_endpoint":"http://127.0.0.1:9223","include_script_sources":true
record_unknown ~182

Create one deterministic residual unknown and immutable mutation evidence. Requires approved: true, validates all evidence and relationship references, and rejects duplicate stable identity.

NameTypeReqDescription
approvedbooleanyesExplicit operator approval to perform this operation.
contradicting_evidence_idsarray–Ordered Evidence v2 identifiers for the contradicting observations.
domainstringyesValue for domain.
questionstringyesConcrete unresolved question to retain for later investigation.
recommended_probesarrayyesValue for recommended probes.
relationshipsarrayyesValue for relationships.
required_authority–yesValue for required authority.
required_confidencestringyesValue for required confidence.
required_environment–yesValue for required environment.
severitystringyesValue for severity.
supporting_evidence_idsarray–Ordered Evidence v2 identifiers for the supporting observations.
NameTypeReqDescription
resultobjectyes–
{"approved":true,"contradicting_evidence_ids":[],"domain":"protocol","question":"Does this branch require an unavailable external service?","recommended_probes":[{"operation":"capture_process_scenario","rationale":"Replay branch."}],"relationships":[],"required_authority":"controlled-replay","required_confidence":"observed","required_environment":null,"severity":"medium","supporting_evidence_ids":[]}
release_evidence_bundle ~62

Release one immutable session-retained Evidence v2 bundle by exact digest. This is the recovery operation when bounded bundle retention is exhausted; releasing an unknown digest is idempotent and reports released: false.

NameTypeReqDescription
bundle_digeststringyesValue for bundle digest.
NameTypeReqDescription
resultobjectyes–
{"bundle_digest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}
resolve_containing_procedure ~106

Resolve an arbitrary address, including an interior instruction or exact external entry, to its provider-analyzed containing procedure. A negative result distinguishes outside segments from not in a procedure and is never guessed from nearby symbols.

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–
result–yes–
{"address":"0x1000"}
run_controlled_replay ~73

Plan or execute a content-bound extracted-module JavaScript replay inside the Linux Bubblewrap, seccomp, and cgroup boundary. Execution requires approved: true and the exact plan digest. Supports deterministic boundary cases and optional left/right differential comparison; observations have controlled-replay authority and do not claim real application runtime behavior.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

{"cases":[{"arguments":[""],"case_id":"empty"}],"determinism":{"clock_iso":"2000-01-01T00:00:00.000Z","locale":"en-US","platform":"linux","random_seed":0,"timezone":"UTC"},"left":{"entry_alias":"parser","entry_export":"default","modules":[{"alias":"parser","dependencies":{},"format":"esm","path":"/approved/parser.mjs","role":"module"}]},"limits":{"cpu_quota_percent":50,"input_bytes":262144,"memory_bytes":134217728,"module_bytes":4194304,"output_bytes":524288,"protocol_bytes":16777216,"result_depth":16,"result_nodes":10000,"stderr_bytes":32768,"tasks":8,"tmpfs_bytes":16777216,"wall_time_ms":3000},"mode":"plan"}
run_replay_machine ~86

Evaluate ordered HTTP and WebSocket events directly against one validated finite replay machine without opening sockets or launching a target. Returns every decision, a capture-value-free transition journal, one redacted action table entry per used transition, captured aliases, final state, and exact configured and consumed limits.

NameTypeReqDescription
eventsarrayyesValue for events.
machineobjectyesValue for machine.
NameTypeReqDescription
resultobjectyes–
{"events":[{"at_ms":0,"body":"{\"token\":\"opaque\"}","connection":"not_applicable","headers":{},"method":"POST","path":"/callback","protocol":"http"}],"machine":{"initial_state":"waiting","limits":{"bytes":1000000,"connections":100,"duration_ms":30000,"messages":10000},"max_transitions":1,"states":[{"max_visits":100000,"name":"waiting","terminal":false},{"max_visits":100000,"name":"complete","terminal":true}],"transitions":[{"actions":[{"body":"","headers":{},"status":204,"type":"http_response"}],"captures":[{"sensitive":true,"value":{"path":["token"],"source":"request_json"},"variable":"token"}],"from":"waiting","guards":[],"id":"accept_callback","max_uses":1,"priority":100,"to":"complete","trigger":{"body":null,"headers":{},"method":"POST","path":"/callback","protocol":"http"}}]}}
search_procedures ~161

Search analyzed procedure names using literal matching by default or regex opt-in. Providers bound search work and reject regex constructs, paths, candidates, or cumulative work outside their finite budgets. Results are deterministic and offset-paginated.

NameTypeReqDescription
case_sensitiveboolean–Whether to match case
documentstring–The document name
limitinteger–Maximum number of results to return in this page.
modestring–Operation mode that selects the requested behavior.
offsetinteger–Zero-based index of the first result to return.
patternstringyesThe literal text or bounded regex pattern to search for
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"case_sensitive":false,"limit":100,"mode":"literal","offset":0,"pattern":"main"}
search_strings ~162

Search analyzed strings using literal matching by default or regex opt-in. Providers bound search work and reject regex constructs, paths, candidates, or cumulative work outside their finite budgets. Results are deterministic, offset-paginated, and explicitly truncated.

NameTypeReqDescription
case_sensitiveboolean–Whether to match case
documentstring–The document name
limitinteger–Maximum number of results to return in this page.
modestring–Operation mode that selects the requested behavior.
offsetinteger–Zero-based index of the first result to return.
patternstringyesThe literal text or bounded regex pattern to search for
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"case_sensitive":false,"limit":100,"mode":"literal","offset":0,"pattern":"authorization failed"}
set_address_name ~108

Assign an analyst name to one hexadecimal address and report Hopper's boolean result. This mutates analysis metadata; read it back with address_name before relying on it.

NameTypeReqDescription
addressstringyesA provider-normalized address; default memory uses 0x-prefixed hexadecimal
documentstring–The document name
namestringyesExact name used by this operation.
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultbooleanyes–
{"address":"0x1000","name":"entry"}
set_addresses_names ~83

Assign analyst names to an address/name map and return per-address success booleans. This mutates analysis metadata; use for bounded batches and verify failures individually.

NameTypeReqDescription
documentstring–The document name
namesobjectyesValue for names.
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"names":{"0x1000":"entry"}}
set_bookmark ~106

Create or replace a bookmark at a hexadecimal address. This mutates navigation metadata; verify with list_bookmarks and do not treat bookmarks as binary evidence.

NameTypeReqDescription
addressstringyesA provider-normalized address; default memory uses 0x-prefixed hexadecimal
documentstring–The document name
namestring–Exact name used by this operation.
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultbooleanyes–
{"address":"0x1000"}
set_comment ~107

Write a regular analysis comment at a hexadecimal address and return whether readback matched. This mutates the Hopper document; use comments to record evidence IDs or reasoning.

NameTypeReqDescription
addressstringyesA provider-normalized address; default memory uses 0x-prefixed hexadecimal
commentstringyesExact analyst comment text to write.
documentstring–The document name
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultbooleanyes–
{"address":"0x1000","comment":"validated entry point"}
set_current_document ~76

Select an already-open Hopper document by exact document name. This changes subsequent default-document routing; call list_documents first and prefer explicit document inputs where reproducibility matters.

NameTypeReqDescription
documentstringyesExact provider document or program identity.
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultstringyes–
{"document":"fixture"}
set_inline_comment ~103

Write an inline instruction comment at a hexadecimal address and return whether readback matched. This mutates analysis metadata; confirm with inline_comment.

NameTypeReqDescription
addressstringyesA provider-normalized address; default memory uses 0x-prefixed hexadecimal
commentstringyesExact analyst comment text to write.
documentstring–The document name
unknown_registry_approvedboolean–Explicit approval to record typed capability unavailability as a residual unknown
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultbooleanyes–
{"address":"0x1000","comment":"calls parser"}
snapshot_evidence_bundle ~68

Retain the current canonical Evidence v2 bundle as an immutable session resource. Returns a compact digest summary and exact opaque URI; copy that URI unchanged and call MCP resources/read (Codex: read_mcp_resource) for the full bundle. Repeating an unchanged snapshot is idempotent.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultobjectyes–
{}
swift_classes ~64

Discover legacy-mangled Swift class procedures after exhaustively paging analyzed procedures. Returns at most 100 entries and scans at most 5,000 symbols; use analyze_swift_types for other Swift kinds.

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

Trace a typed literal seed through an authenticated JavaScript Application Graph supplied as full Evidence or an Evidence ID returned earlier in this session. Explicit direction, depth, node, edge, and path bounds apply. Original static, native, passive-runtime, inferred, and unknown authorities remain distinct; native addon handoffs never open a provider or execute the application.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"application_evidence_id":"ev_0000000000000000000000000000000000000000000000000000000000000000","direction":"both","seed":{"case_sensitive":false,"kind":"module","match":"exact","value":"renderer.js"}}
trace_call_path ~170

Trace a deterministic bounded caller or callee path from one exact procedure address, optionally stopping at a goal. Returns visited nodes, direct-call edges, one shortest traversal path, failures, frontier, consumed limits, an Evidence ID, and explicit residual unknowns without claiming unresolved indirect calls are absent.

NameTypeReqDescription
directionstring–Direction in which to traverse or compare relationships.
goalstring–An optional provider-normalized destination address
max_depthinteger–Maximum permitted depth for this operation.
max_nodesinteger–Maximum permitted nodes for this operation.
max_operationsinteger–Maximum permitted operations for this operation.
startstringyesA provider-normalized procedure address
unknown_registry_approvedboolean–Explicit approval to record bounded residuals durably
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"direction":"forward","goal":"0x1100","max_depth":5,"max_nodes":100,"max_operations":100,"start":"0x1000"}
trace_feature ~138

Trace a bounded literal feature query through matching strings and procedures, xrefs, and truthful containing-procedure resolution. Returns the operation budget, truncation, and residual unknowns; unknown_registry_approved: true records them durably without inferring reference kinds.

NameTypeReqDescription
case_sensitiveboolean–Whether text matching distinguishes uppercase and lowercase.
limitinteger–Maximum number of results to return in this page.
max_operationsinteger–Maximum permitted operations for this operation.
querystringyesNon-empty feature or text query to investigate.
unknown_registry_approvedboolean–Explicit approval to record bounded residuals durably
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"case_sensitive":false,"limit":20,"max_operations":20,"query":"license"}
trace_javascript_semantics ~73

Trace bounded static JavaScript data-flow, direct call/return, and closure relations from authenticated analyze_javascript_application v2 Evidence. Queries declare direction and exact node, relation, depth, function, module, and page limits. Dynamic or unsupported semantics remain explicit unknowns; static reachability never claims runtime execution.

Input schema present but exposes no named parameters.

NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"application_evidence_id":"ev_0000000000000000000000000000000000000000000000000000000000000000","query":{"direction":"backward-provenance","seed":{"kind":"semantic-node","node_id":"jsrg_node_0000000000000000000000000000000000000000000000000000000000000000"},"source_map_authority":{"authority":"none"}}}
unset_bookmark ~89

Remove the bookmark at a hexadecimal address and return whether it is absent. This mutates navigation metadata and does not alter binary bytes.

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–
resultbooleanyes–
{"address":"0x1000"}
update_unknown ~210

Append one immutable full-state revision and mutation evidence. Requires approved: true and exact expected_revision; stale concurrent writers fail instead of overwriting newer analysis.

NameTypeReqDescription
approvedbooleanyesExplicit operator approval to perform this operation.
contradicting_evidence_idsarrayyesOrdered Evidence v2 identifiers for the contradicting observations.
expected_revisionintegeryesExpected revision used to reject stale or mismatched input.
recommended_probesarrayyesValue for recommended probes.
relationshipsarrayyesValue for relationships.
required_authority–yesValue for required authority.
required_confidencestringyesValue for required confidence.
required_environment–yesValue for required environment.
resolution–yesValue for resolution.
severitystringyesValue for severity.
statusstringyesCurrent lifecycle or verification status.
supporting_evidence_idsarrayyesOrdered Evidence v2 identifiers for the supporting observations.
unknown_idstringyesExact residual-unknown identifier.
NameTypeReqDescription
resultobjectyes–
{"approved":true,"contradicting_evidence_ids":[],"expected_revision":1,"recommended_probes":[],"relationships":[],"required_authority":"controlled-replay","required_confidence":"observed","required_environment":null,"resolution":null,"severity":"medium","status":"investigating","supporting_evidence_ids":[],"unknown_id":"unk_0000000000000000000000000000000000000000000000000000000000000000"}
verify_managed_native_boundaries ~139

Verify managed P/Invoke/native-boundary declarations against authenticated native export or function Evidence without executing managed code or translating managed metadata tokens into native addresses. The workflow preserves declaration-only, verified, inferred, contradicted, and unresolved states.

NameTypeReqDescription
limitsobject–Bounded resource-consumption and result-size limits for this operation.
managed_boundaries_evidence_idstringyesSession-owned inspect_managed_native_boundaries Evidence ID
native_observation_evidence_idsarrayyesUnique session-owned native observation Evidence IDs
unknown_registry_approvedboolean–Explicit approval to record bounded residual uncertainty in the session registry.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"limits":{"max_candidates_per_import":25,"max_native_observations":20},"managed_boundaries_evidence_id":"ev_5e142d4464b916bcff63fb0835c686152b5b0473a9f1d5f5060d329b1b29739d","native_observation_evidence_ids":["ev_74758ad108882d5752dae4f8fa030c1ed6c7dd62857cb9d2d3a7ce931b52ee7c"]}
verify_reconstruction ~129

Verify a finite typed behavioral and structural specification against a canonical Evidence bundle. Pass means every declared claim has complete comparable authority—not global source equivalence; changed claims fail and missing, limited, or unresolved evidence stays unknown.

NameTypeReqDescription
coverageobject–Exact reconstruction-coverage commitment to verify.
limitinteger–Maximum number of results to return in this page.
offsetinteger–Zero-based index of the first result to return.
specificationobjectyesValue for specification.
unknown_registry_approvedboolean–Explicit approval to record bounded residual uncertainty in the session registry.
NameTypeReqDescription
evidence_idstringyes–
evidence_uristringyes–
resultobjectyes–
{"limit":100,"offset":0,"specification":{"claims":[{"claim_id":"terminal-output","comparison_evidence_id":"ev_2ffc472e561cea4b5e65ddaf7b80bc112b7ed6d0d023f0cf7398bc2068a12e2d","dimension":"terminal","kind":"behavioral","title":"Terminal output remains equivalent"}],"name":"Terminal compatibility","schema_version":1}}
verify_unknown_resolution ~59

Revalidate the current residual-unknown head against live bundled evidence, exact authority/confidence/environment requirements, and revision integrity. Withdrawn and out-of-scope dispositions are not truth claims.

NameTypeReqDescription
unknown_idstringyesExact residual-unknown identifier.
NameTypeReqDescription
resultobjectyes–
{"unknown_id":"unk_0000000000000000000000000000000000000000000000000000000000000000"}
xrefs ~103

Return analyzed references to a code or data address, defaulting to the current cursor. Use to connect strings, globals, selectors, and functions; bare addresses are untyped and indirect references may be incomplete.

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–
resultarrayyes–
{}
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.