blender
FreeUse when inspecting or editing Blender scenes through the official Blender Lab MCP server. Check the add-on connection, read the scene first, and verify edits.
The English summary is being prepared. Showing the original description.
Reverse engineer native, managed, Electron/JavaScript, packaged, firmware, and browser targets with REA. Use shipped-artifact or requested runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Use REA when a claim depends on a shipped binary or package, decompilation, passive application runtime evidence, or comparison with behavior not established by available source. For ordinary analysis of a complete source repository, use normal repository tools and do not run REA readiness or provider commands.
In Hermes this skill ships inside the rea plugin, and the same plugin
registers the REA MCP server (rea-agents@6.7.0, stdio over npx). Nothing
else needs registering: never run rea-agents setup, rea setup or
hermes mcp add rea. Setup would add a second mcp_servers.rea entry to
config.yaml that replaces the plugin's server and its pinned version.
Hermes loads MCP tools on demand. REA's tools (about 200) are behind the
tool_search / tool_describe / tool_call bridge, not in the visible tool
list. Search by capability (rea open binary, rea javascript application,
rea android package), load the schema with tool_describe, then invoke it
with tool_call. A tool name you cannot find this way is not available in
this session.
If no REA tools are found, a call fails to start, or a required provider is unavailable, read connection and recovery. Diagnose the observed blocker, continue useful supported work, and resume the original task after repair.
Choose the first tool from the target the user supplied. Use open_binary for
active-target native or archive workflows; target-free tools take their own
explicit path or endpoint and do not need it.
ASAR or extracted JavaScript/Electron tree:
analyze_javascript_application.
Archive/package member inventory (ZIP/APK/IPA/MSIX/AppX or DMG):
open_binary with the supplied local path; use inspect_artifact when its
graph and findings help answer the question.
Android APK code, classes, methods, or incoming references:
inspect_android_package, then focused Android tools when advertised.
Archive member inventory still uses the archive route above.
Managed PE/CLI assembly: inspect_managed_artifact.
Firmware image: inspect_firmware_regions when advertised. Use
extract_firmware when extraction is requested, with a caller-selected new
absolute output directory. These tools use caller-supplied Binwalk/Unblob on
Linux; see the firmware guide.
.NET NativeAOT PE/ELF: native Ghidra analysis. Native code can yield pseudocode;
consult the NativeAOT workflow in references/native-and-artifacts.md for
optional metadata recovery and its supported host/layout boundary.
User-owned browser page already open: list_browser_targets.
Browser action the agent must perform (click, type, navigate):
capture_browser_scenario with declared actions. See
runtime observation for connect/launch
and the focused follow-up browser tools.
Fiddler Everywhere traffic or a native .saz capture: read the
Fiddler workflow.
Inspect saved SAZ with inspect_web_network_capture and format: "saz";
connect Everywhere's separate MCP server for live traffic.
Retained HAR/SAZ/native mitmproxy/aioquic qlog capture: inspect_web_network_capture. Select
original record ordinals when useful; inspect producer fields and byte/number
sidecars without fetching recorded URLs or claiming live attribution. See
historical captures for the exact upstream
profile and credential exclusions. Qlog support starts with aioquic 1.5.0
JSON 0.3; stream coverage and endpoint loss declarations do not recover bodies
or establish network loss. Prefer detail summary, then kind qlog trace/stream
pages; select one trace, stream ID and direction for contribution/range pages.
Facts retain all-recorded-events-before-selection scope. Other qlog layouts
and PCAP correlation are unsupported.
User-owned Electron runtime already open: list_electron_targets. Before an electron-main Inspector attempt, check packaged fuses with inspect_electron_fuses; disabled EnableNodeCliInspectArguments means the app ignores --inspect.
Packet-field discovery: inspect_packet_fields searches installed protocols
and field names/types before choosing fields for inspect_packet_capture.
Query/page the relevant records; registrations do not establish observed traffic.
Recorded packet captures: inspect_packet_capture with selected TShark fields,
display filters and decode-as rules. Requires Linux, util-linux prlimit and REA_TSHARK_COMMAND; see
capture guide.
Packet limits count input packets before filtering. Output defaults to 50 matching
frames; use match_offset / match_limit for later pages, or explicit null
limit for complete matching output. Preserve the source digest across pages.
This does not perform live capture.
For address/DNS/SNI/protocol summaries use inspect_pcap_capture with MCP
detail summary, then retained kind pcap pages. Requires Wireshark 4.x tshark
and capinfos, with Linux prlimit or Windows Job Objects; see
packet summaries.
Select an exact DNS question for address pages; page exhaustion does not prove
network completeness. This reads recordings and does not acquire traffic.
Decoder discovery: inspect_signal_decoders searches installed decoder IDs
or selected decoder help, including channels and options. Query and page the
relevant details before choosing settings; this does not scan hardware.
Recorded logic/signal traces: decode_signal_recording with explicit decoder,
channel and protocol settings. On Linux with util-linux prlimit, supply sigrok-cli 0.7.2 through
REA_SIGROK_COMMAND; see recording guide.
Output defaults to 50 literal lines; select annotation classes and page with
line_offset / line_limit, or explicit null for all remaining output.
Window counts are display lines, not annotations or samples. Preserve source digests across pages.
This reads existing files; it does not acquire hardware signals.
Explicit local WebAssembly artifact: inspect_wasm_artifact. Supply WABT 1.0.42
through REA_WABT_BIN_DIRECTORY; retain exact byte/tool identity and decoded WAT.
Select JavaScript glue and candidate paths explicitly and preserve URL/path
ambiguity. No implicit fetch or target execution; WAT is not original source.
See the WASM guide.
Explicit local EVM bytecode carrier: inspect_evm_interface with caller-selected
raw or hex encoding. Preserve carrier/decoded digests and treat selectors,
argument strings and mutability as inferred candidates; this performs no chain
lookup or target execution. For the complete inferred interface without hex or
duplicate stdout, discover support and select detail: "summary"; complete
Evidence stays retained under its original identity. Use the returned
parent_evidence_id for exact function or bytecode_hex/stdout/stderr pages.
Candidate coverage does not establish interface completeness. See the
EVM bytecode guide.
Embedded Go compiler, module or build-setting metadata: inspect_go_binary
with the explicit local file. This built-in target-free inspection requires no
Go installation or disassembler. Preserve raw module bytes and source ranges;
absent metadata does not prove a binary is not Go, and unparsed text records
remain explicit. See the
Go binary guide.
Embedded cargo-auditable Rust dependency metadata: inspect_rust_binary
with the explicit local ELF, PE, or thin Mach-O file. This built-in
target-free inspection requires no Rust installation or disassembler. Preserve
package order, dependency indices, and the section file range. A missing
.dep-v0 section is null metadata, not proof the binary has no dependencies.
A rustc commit hash is an inference from a read-only /rustc/<40-hex>/ path.
See the
Rust binary guide.
Explicit local SQLite database snapshot: inspect_sqlite_database. Inspect
with Node.js 24.x >=24.15 or 26+ providing native SQLite limits. Read schema
first (compact inventory by default), or select an exact ordinary table
and columns when rows are needed. Defaults are selected-table schema and
20 rows; request schema_scope: "database" for the complete stored schema. Preserve both database and existing sibling WAL identity; row samples
report truncation and have unspecified order. Use a quiescent snapshot rather
than assuming a live database/WAL pair was copied atomically. See the
SQLite guide.
Explicit Linux ELF file for offline layout, symbols, relocations or static
mitigation evidence: inspect_binary_layout. This target-free operation uses
caller-supplied pwntools without opening a disassembler database. Preserve its
raw locations and inference/coverage limits; see the
offline binary guide.
Supplied Linux x86-64 ELF core: inspect_recorded_crash. Read every recorded
thread, raw note and source-bound register without opening a live target.
Historical PIDs do not select live processes. Request include_debugger_context
only when core-only mapping candidates help; see the
recorded crash guide.
PE resource type/name/language trees and static icon group references:
inspect_pe_resources with an explicit path. This portable operation requires
no active target or engine; opaque payloads retain file ranges and SHA-256.
Native executable, library, or analysis database: open_binary, then
use focused analysis tools directly; call binary_overview when metadata or
inventory context is useful and available from the selected provider.
For an existing IDA MCP configuration, use open_binary with the original
input binary and provider_id: "ida"; do not pass an .idb or .i64 database.
The legacy attached profile binds the already-open GUI input by SHA-256 and
leaves its database open. The modern headless profile creates and closes an
owned private database without saving. Installation and registration reuse
mrexodia/ida-pro-mcp; see the
IDA provider guide.
Proceed directly to analyze_function, pseudocode, or function/string searches
after opening; IDA does not supply binary_overview. Consult session availability
when composing broader workflows. Modern direct callers and unsupported dossier
facets remain unknown; live IDA results are not replayed from snapshots.
With REA_KUNA_COMMAND configured, provider_id: "kuna" answers procedure
lists, lookups, pseudocode, assembly and analyze_function from Kuna's cached
whole-program export. Callers/callees use a separate body-free graph shared by
the session; xrefs returns exact-address incoming sites and filters forwarding
aliases. These queries and inventory lookups do not trigger a C export. Indirect
targets remain unknown and can make relationship coverage partial. Reference
caches expire on close; a fresh CLI process repeats the native reference walk.
Typed references, CFG, raw-memory tools and annotations remain unsupported. A cold first
answer can come from a single-function run (its limitations say so); assembly
waits for the export. For pseudocode and assembly, raw_result.source names the
cached .c/.asm file and byte span, which you may search directly instead of
calling per function. See the
Kuna provider guide.
If the user says only "my app" without a name, path, or target already selected for this task, ask which app before searching for artifacts. Paths in unrelated saved reports and nearby test fixtures do not select the user's target. Resolve an actual human-readable app name to one clear installed artifact when possible; ask when matches are ambiguous. Never choose an example app on the user's behalf.
In a target-free session, use open_binary to bind any archive/package or
native target whose analysis tool operates on the active target. Do not call an
unadvertised tool; inspect binary_session with {} and its
result.tool_availability for availability reasons and remediation. Expand each
group's names into entries, inheriting the inventory-level client requirements
unless the group overrides them. In its closed effect and annotation vocabularies,
listed flags are true and omitted known flags are false. The grouped name union
is the complete tool inventory; use tools/list for canonical tool schemas.
Provider candidate facts describe possible providers, while top-level session
capabilities describe the current route and analysis_provider_binding names the
selected provider. Do not treat those scopes as interchangeable.
Before the first Ghidra-backed query, explain that importing and analyzing a
large executable can take several minutes. open_binary validates the target;
it does not mean native analysis has completed. This plugin allows 900 seconds
for Ghidra startup; each Hermes MCP call uses Hermes' normal tool deadline (300
seconds by default). The user can still cancel. Do not invent progress percentages or promise a fixed completion time.
Keep the target open for related queries: the first native query does the expensive import, and later queries reuse that analysis. Do not reopen the binary or start another server to "check progress". On a timeout, read connection and recovery before retrying.
Generated pseudocode is an interpretation, not original source. Corroborate important branches with assembly, references and callers. Keep inferred function names/types distinct from symbols actually present in the artifact; report type-propagation warnings and missing symbols rather than filling gaps with plausible source. When evaluating an unfamiliar target, record findings before reading matching-version source, then label source-only corrections.
Start with the default result and use its inline Evidence and graph context.
For a JavaScript application or ELF layout whose size is unknown or large,
call analyze_javascript_application or inspect_binary_layout with
"detail": "summary", then inspect the retained parent_evidence_id with
inspect_analysis_view.
Page module identities and select the returned node_id before requesting an
item; a single file path can represent several graph roles. Do not repeat an
identical analysis or rejected call without a changed input or resolved blocker.
Recheck session state when a lifecycle change makes that status useful.
Make a focused follow-up only when the
returned result leaves a specific question unanswered.
If MCP reports resource_constraint with details.resource: "transport", call
inspect_analysis_view with its reported same-session Evidence reference for a
summary, one section/module, or a stable page. Use trace_application_feature
once a seed is known, or call export_evidence_bundle to write the complete
session to a selected path. The analysis remains complete in the ledger; avoid
repeating it merely to request the same oversized response. Complete CLI JSON
output also streams without a single MCP frame.
When the retained parent ID is unknown, use get_evidence_bundle with
detail: "summary" and exact filters for operation, target SHA-256,
analysis-profile digest or canonical procedure address. Select its returned
Evidence ID for the next view instead of requesting the complete bundle.
retention: "complete-record" means the whole record is stored; native
value-flow truncation and unknown metadata remain separate. For an exported
portable bundle, use rea inspect-evidence-bundle with JSON containing path,
detail: "summary" and the same filters. Reading that file still requires
validating its full contents within the local memory budget.
A client can also truncate a successful tool result without a REA transport error. Treat that preview as incomplete; use the retained parent ID for smaller views or export when the full record is needed. Do not parse the preview as canonical JSON or repeat the producer. For JavaScript, read the module-view and trace recipes before drilling into a large graph; a broad bidirectional trace can expand unrelated containment relationships even after summary analysis.
Every conclusion must distinguish observations, inferences, and unknowns. Cite Evidence IDs, preserve limitations and incomplete coverage, and never imply that static analysis observed execution. Runtime requests execute the declared target and lifecycle; do not broaden the target or action beyond those fields.
Within the user's requested investigation, call static analysis tools directly. Hermes does not prompt before REA tools run, so ask the user first, naming the exact command, process, app or device, before any call that executes or changes something outside REA's own session:
capture_process_scenario (runs a command under a PTY) and
observe_native_calls (launches the active Mach-O under LLDB);capture_browser_scenario, capture_electron_scenario and
capture_native_ui_scenario (launch or drive an application);install_adb_package, uninstall_adb_package, push_adb_file,
start_adb_app, start_adb_activity and stop_adb_app (change a connected
Android device);instrument_with_frida, start_frida_session, load_frida_script,
resume_frida_session, unload_frida_script and close_frida_session
(attach to, spawn, inject into or resume a process; local or remote);start_gdb_session, gdb_console and close_gdb_session (an unrestricted
GDB that can run the inferior; closing can detach and resume it);start_rizin_debug_session, rizin_debug_command and
close_rizin_debug_session (an unrestricted Rizin debugger that runs the
target);execute_rizin_command and cutter_command (one arbitrary Rizin command;
commands and plugins can execute code, write files or reach the network);export_evidence_bundle or close_binary with an output path that already
exists (overwrites a file).Ask once per target and action; the read-only status tools
(frida_session_status, gdb_session_status, rizin_debug_session_status)
and device/process listings need no approval.
Never run an untrusted target outside an environment the user chose for it. In a scheduled or unattended run with nobody to ask, skip these calls and report the step that needs approval.
For requests that span multiple features or subsystems, use a staged workflow:
Before finishing, revisit the original checklist. Mark each question as answered, partially answered, or unresolved based on its evidence; keep bounded negative searches bounded, and do not describe a broad investigation as complete while required questions remain open.
Explain findings in plain language and tie them to returned evidence. When the
user asks to build something, use normal coding tools and separate observed
behavior from design choices. Close an opened native session with
close_binary when the investigation is complete.
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Use when inspecting or editing Blender scenes through the official Blender Lab MCP server. Check the add-on connection, read the scene first, and verify edits.
The English summary is being prepared. Showing the original description.
Find out why a native Linux program crashed, from its core dump and the binary, with REA, and turn that into a root cause and a bug report. Use when the user has a core file (./core, coredumpctl, a crash artifact from CI or production) or a segfault, abort, SIGFPE, SIGBUS or SIGILL in a C, C++, Rust, Go or other native program, and asks why it died. Works on stripped binaries with no source (functions named from unwind tables, then a walk back from the crashing function to its caller). Read-only - never runs the program.
The English summary is being prepared. Showing the original description.
Scan code, dependencies, containers, IaC and SBOMs with Snyk via its first-party MCP server: authenticate, trust a folder, run the right scanner, read the findings, fix and re-scan. Includes package-health checks before adding a dependency.
The English summary is being prepared. Showing the original description.
Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.
The English summary is being prepared. Showing the original description.