dsh-mcp-rea: On-Demand Integration of the REA Reverse Gateway in DeepSeek Harness

前言

在 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 + @local scope,适合本地 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 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye