Introduction¶
When performing security audits, compatibility analysis, or understanding closed-source/compiled artifact behavior in DeepSeek Harness (DSH), it is often necessary to hook reverse engineering capabilities into the session’s tool list. Running a separate MCP service and hand-writing Cordis line configurations involves many steps and is prone to pitfalls with startup commands on Windows vs. macOS/Linux. The dsh-rea introduced below is a community-maintained DSH bundle: it integrates the upstream REA (Reverse Engineer Anything) rea --mcp stdio service into the Harness, registers it as mcp__rea__* tools in the session, and provides installation checks, example prompts, and saveable settings on the Web-side Plugins page.
What Is This¶
dsh-rea (npm package name dsh-rea, current version 1.2.0, MIT) is maintained by dushudou and categorized as a networked tool plugin in the DSH community catalog. It does not include REA’s analysis implementation; it merely mounts the locally installed REA CLI via @deepseek-ai/dsh-mcp-client, along with a configuration page and cross-platform command auto-detection. Analysis capabilities and limitations follow the upstream REA; issues with REA itself should go to morluto/rea, while issues with this plugin should go to dsh-rea issues.
Once connected, the Harness session exposes many tools prefixed with mcp__rea__ (the README reports 207 tools verified under REA 6.5.0). The bundle sets failOnStartupError: false for startup failures, so if REA is not installed or fails to start, it will not crash the entire Harness, but the corresponding tools will not appear.
Core Features¶
MCP Tool Registration¶
The bundle adds a single rea entry to the profile, launching a subprocess to run the stdio form specified by the upstream documentation: rea --mcp. The patch uses !!js to select the command at runtime:
- Windows:
cmd.exe /c rea --mcp(the npm shim is.cmdand needs to go through a shell) - macOS / Linux:
rea --mcp(the executable is on the PATH)
Switching platforms generally does not require manual configuration changes.
Plugins Page¶
Open Plugins from the DSH Web sidebar, select REA reverse engineering; the page is divided into three sections:
- Setup check: checks the REA CLI and its version (requires 6.3.0+), whether
mcp__rea__*is loaded, optional Ghidra, and the Java required by Ghidra; missing items are explained with reasons and copyable commands, and Check again re-runs the check. - Try it: example prompts that can be pasted into a conversation.
- Settings: written to the profile; after saving, REA restarts with the new values:
| Setting | Default | Description |
|---|---|---|
ghidraInstallDir |
empty | GHIDRA_INSTALL_DIR passed to REA; if empty, inherits from environment variable |
toolCallTimeoutMs |
300000 |
Timeout per tool call; decompiling large programs may take several minutes |
You can also manually override it in the profile’s cordis.patch.yml, for example:
- id: rea
config:
ghidraInstallDir: /Applications/ghidra_12.1.1_PUBLIC
Capability Boundaries (Upstream Contract Summary)¶
This plugin does not implement analysis logic, but the README explicitly lists expectations for results to avoid misuse:
- It cannot restore complete source code: native binaries mostly yield pseudocode and assembly; Android APKs yield decompiled methods; JEB units yield pseudocode; JavaScript/Electron yields modules and relationships. Pseudocode is decompiler output and is not equivalent to original source code.
- In practice it is difficult to recover: original identifier names, types, comments, macro and template expansion, build scripts and resources, etc.; optimization, stripping, obfuscation, and packers further reduce readability.
- Results carry confidence / limitations (
observed/derived/inferredand a limitation list) and should be read as evidence rather than treated as recovered source. - Suitable for: understanding behavior, locating implementations, interoperability and compatibility rewrites, security reviews, and migration references. To obtain source code legally, you should go through upstream repositories, vendor licensing, or official SDKs.
Without Ghidra, static analysis for JavaScript/Electron and .NET is still possible; analyzing native binaries (exe / ELF / Mach-O) requires Ghidra 12.1.x and JDK 21+ (Hopper / IDA are other engines supported upstream, with separate licenses).
Environment and Versions¶
Before installing, it is recommended to check the verification matrix in the README:
| Component | Version requirement |
|---|---|
REA (rea-agents) |
6.3.0 or newer (README verified with 6.5.0) |
| DeepSeek Harness CLI | 0.2.1-alpha.5 (npm) |
@deepseek-ai/dsh-mcp-client |
0.2.1-alpha.5 (bundled with Harness) |
| Node.js | ^22.19.0 \|\| ^24.11.0 \|\| >=26.0.0 (REA engine requirement); plugin package engines is >=20 |
Install REA globally:
npm i -g rea-agents@latest
REA versions below 6.3.0 use regexes in the tool schema that are rejected by DeepSeek native models (e.g., containing \0 escapes), which may cause the entire request to fail once REA is connected; you need to upgrade according to the troubleshooting section.
Installation and Enabling¶
Prerequisites: meet the Node and REA versions above; native analysis additionally requires Ghidra 12.1.x and Java.
Install the plugin (command from the official README):
dsh plugin --profile <profile> add dsh-rea
You can also install dsh-rea from the DSH Web Plugins page.
Updates (both are independent and require manual action):
- This plugin:
dsh plugin --profile <profile> add dsh-rea@latestor via the Plugins page. - Upstream REA: run
npm i -g rea-agents@latest, then restart Harness so the MCP subprocess loads the new binary.
Typical Usage¶
- After installing this plugin and REA globally, complete the Setup check on the Plugins page, confirming REA CLI and
mcp__rea__*are green. - When analyzing native programs, fill in
ghidraInstallDirin Settings or set the environment variableGHIDRA_INSTALL_DIR. - Describe the task directly in the conversation. The README example: have the model use REA to analyze a local Electron application, e.g., pointing to
/Applications/Visual Studio Code.app. After configuring Ghidra, you can usebinary_sessionto check whether engine check items (configuration/installation/headless/native_decompiler/java) are allok: true.
The Try it area on the Plugins page provides more copyable prompts suitable as templates for first-time integration testing.
Use Cases and Notes¶
Suitable for: developers and security analysts who need REA capabilities in their DSH workflows, want to write less MCP line configuration, and want to see at a glance in the Web interface “what’s missing and how to fix it.”
Notes:
- REA exposes 207 tools in 6.5.0, so after enabling, the tool list in a single session will become noticeably longer; you can turn off the bundle on the Plugins page when not needed.
- Some REA tools may launch processes, write files, or access the network; their behavior is subject to DSH permission policies; only analyze artifacts you are authorized to inspect.
- The plugin runs as the current DSH process user and PATH; before installing, please read the repository source code and the MIT license, and assess the trust boundary yourself.
- The DSH community plugin catalog (such as the dsh-rea page on SkillHub) is an independent ecosystem site with no official affiliation with DeepSeek / High-Flyer; “everything is a plugin” is the Harness product philosophy; this article introduces a third-party adaptation layer, not an official REA release.
Common failures:
- Schema error
Invalid schema for function 'mcp__rea__...': REA version is too old; runnpm i -g rea-agents@latest, confirm ≥ 6.3.0 withrea --version, and restart Harness. - No
mcp__rea__*tools:reais not on the PATH visible to Harness (verify withwhich rea), or REA failed to start; check Harness logs.
Conclusion¶
dsh-rea standardizes the local REA MCP service into DeepSeek Harness, unifies tool names as mcp__rea__*, and uses the Plugins page to reduce environment and version troubleshooting costs. If you are already using or plan to use REA for reverse engineering-assisted analysis, you can check the documentation and changelog via the catalog page or GitHub.
- Catalog page: https://www.skillhub.cn/plugins/dushudou/dsh-rea
- GitHub: https://github.com/dushudou/dsh-rea
- Upstream REA: https://github.com/morluto/rea · Documentation rea.tools