前言¶
在 DeepSeek Harness(DSH)里直接挂载 rea 的 MCP 服务时,每一轮对话都要把两百多个工具的完整定义发给模型。README 实测 rea 6.5.0 约 207 个工具的 name + description + inputSchema 合计约 780 KB,按常见分词估算约 20 万 token;6.8.0 已是 229 个工具。即便任务与逆向无关,也会承担这份上下文成本。直接挂 MCP 还往往缺少方便的开关,卸载也不顺手。
下面介绍社区插件 dsh-mcp-rea(维护者 kkk-yoyo,GitHub 仓库 kkk-yoyo/dsh-mcp-rea,当前版本 1.2.0,MIT 许可证)。它把 rea 做成可开关的 Harness bundle:默认只向模型暴露 2 个网关工具,按需代理全部 REA 能力,并把工具定义压到约 1.4 KB(README 标注约 400 token 量级)。
这是什么¶
dsh-mcp-rea 是 DeepSeek Harness 的 bundle 插件(@local/dsh-mcp-rea),分类上属于模型推理相关能力。一句话定位:让 rea 逆向分析 MCP 在 Harness 里可开关,并用 rea_list / rea_call 网关代替全量工具注册。
插件不负责替代 Ghidra、IDA、JEB 等外部引擎;它解决的是 Harness 侧的接入成本、路径解析和缺失 rea 时的私有安装。
核心功能¶
网关模式与 token 成本¶
| 状态 | 工具数 | 每步请求的工具定义(README 表述) |
|---|---|---|
| 直接挂载 rea MCP | 200+(另加 Harness 自带) | 约 780 KB / 20 万 token |
| 本插件网关模式 | 2 | 约 1–2 KB / 几百 token |
| 关掉本插件 | 0 | 0 |
默认注册的两个工具:
rea_list:按名字或描述搜索 REA 工具,或对单个工具取完整 input schema。rea_call:用原始工具名和参数调用对应 REA 工具。
全量能力仍在 rea 进程里;token 主要花在真正调用时返回的结果上,而不是每一步携带两百多份 schema。
零路径与开箱安装¶
入口由 lib/rea.js 按顺序解析:环境变量 REA_ENTRY、Windows / POSIX 下常见全局 npm 安装位置、最后兜底到 $DSH_HOME/cache/dsh-mcp-rea/rea 的私有安装。全局已装的 rea 优先于插件缓存。
本机没有 rea 时,可在第一次调用时用 DSH 运行时自带的 pnpm 装到私有目录(README 称不需要 npm、也不依赖 PATH 里的 node);首次安装实测约 8–13 秒。默认安装 spec 为 rea-agents@latest(README 写明当前 6.8.0);Node 要求与 rea-agents 一致:^22.19.0 || ^24.11.0 || >=26.0.0。
技能与开关¶
插件会向 $DSH_HOME/skills(默认 ~/.dsh/skills)安装 reverse-engineer-anything(rea 自带技能,链接或复制)和 rea-gateway(说明如何通过网关调用)。目标位置已有同名用户技能时不会覆盖,只报告 occupied。
侧边栏「插件」页有 「rea MCP 服务器」 开关:关闭后工具归零;打开后仅多上述 2 个网关工具。README 注明 Web 端「设置」里的插件列表为只读,开关在侧边栏「插件」页操作。
开箱边界(README 表格摘要)¶
- 插件装载、入口解析、技能安装、网关列出 229/229 工具:支持。
- 依赖 Ghidra / IDA / JEB / apktool / frida / adb 的深层能力:需按 rea 文档自备外部工具。
- 从 npm / 插件市场一键安装:本包
private: true+@localscope,适合本地 link 安装。 - README 标注 tested on Windows only。
安装与启用¶
先做安装,再重启 DSH,最后在侧边栏打开开关。
1. 安装¶
在 Harness 侧边栏「插件」页选择本目录的绝对路径安装,或执行(将 <profile> 与路径换成你的实际值):
dsh plugin --profile <profile> add "link:<本目录绝对路径>"
dsh plugin add 会把声明了 dsh.bundle 的包写入 <profile>/package.json 的 dsh.profile.bundles。若曾用 pnpm add link: 手工安装导致 bundle 未进列表,可重跑上述命令。
社区目录页:https://www.skillhub.cn/plugins/kkk-yoyo/dsh-mcp-rea(独立站点,与 DeepSeek / 幻方无官方从属关系)。
2. 重启 DSH¶
dsh.profile.bundles 在启动时读取,修改后需重启 Harness。
3. 打开开关¶
侧边栏 「插件」 → 「rea MCP 服务器」 → 拨动开关。
典型用法¶
模型不必一次加载全部 schema。README 给出的典型流程如下:
1. rea_list({ query: "artifact" })
→ 返回名字/描述匹配的工具,例如 inspect_artifact、extract_artifact
2. rea_list({ tool: "inspect_artifact" })
→ 返回 inspect_artifact 的完整 input schema
3. rea_call({ tool: "inspect_artifact", arguments: { path: "C:\\target.exe" } })
→ 返回该工具的结果(Evidence 文本)
参数要点:
rea_list:query(搜索)、tool(精确名取 schema)、limit(默认 15,最大 50)。rea_call:tool(必填)、arguments(对象)、timeoutMs(可选,默认 120000,最大 600000)。- 单次返回超过
gatewayMaxOutputBytes(默认 200000)会截断;可优先用工具自带的detail: "summary"或分页参数。
网关通过 stdio 启动 rea mcp,每次调用为短命子进程,不在 Harness 进程内保留分析状态;跨调用状态可用 REA 的 evidence_export / evidence_import。
配置(可选)¶
在 profile 的 cordis.patch.yml 中覆盖 bundle 条目 rea-preflight,例如:
- id: rea-preflight
config:
installSkill: true
autoInstall: true
gateway: true
gatewayTimeoutMs: 120000
gatewayMaxOutputBytes: 200000
# installDir: 'D:\rea-cache'
# packageSpec: rea-agents@6.5.0
常用字段:gateway(是否注册网关)、autoInstall(入口缺失时私有安装)、entry(显式路径,严格使用不回退)、installSkill、verbose 等。若确需模型直接看到全部 mcp__rea__* 工具,可设 gateway: false 并手工插入 @deepseek-ai/dsh-mcp-client;README 明确这会恢复每步约 20 万 token 的成本。
适用场景与注意¶
适合谁:在 DSH 里偶尔或经常做二进制 / 移动应用逆向,希望用 rea 能力,又不想每轮对话背负全量 MCP 工具定义的团队或个人。
运行与安全:插件以当前 DSH 进程权限运行;网关会启动子进程并可能自动下载安装 rea-agents。安装前应阅读仓库源码与 MIT 许可证,确认网络与磁盘路径可接受。
故障提示(README 摘要):若能看到开关但没有 rea_list / rea_call,检查 dsh.profile.bundles 并重启后拨开关;若 REA entry not found,可开启 autoInstall、运行 node scripts/install-rea.mjs,或设置 REA_ENTRY。
结尾¶
dsh-mcp-rea 把 rea 从「常驻两百多工具、每步约 20 万 token」收成「可开关的 2 个网关工具 + 按需调用」,并处理入口解析与缺失时的私有安装。需要细节、自检命令与全量 MCP 切换方式时,以仓库 README 为准。