dsh-rea:在 DeepSeek Harness 中接入 REA 逆向工程 MCP

前言

在 DeepSeek Harness(DSH)里做安全研究或二进制分析时,智能体需要能调用专业逆向工具,而不是只靠通用读写文件。REA(Reverse Engineer Anything)通过 MCP 暴露大量分析能力;若手动改 Harness 配置,还要处理 rea setup --client dsh 与插件化目录两套路径。sqhc 维护的 dsh-rea 是一个仅含配置的 DSH bundle:运行时从 npm 拉取官方 rea-agents,把 REA 的 stdio MCP 注册进当前 profile,工具以 mcp__rea__<tool> 形式供模型调用。本文说明其定位、安装方式与使用注意点;事实以 GitHub 仓库 与 SkillHub 目录页 为准。

这是什么

dsh-rea(sqhc/dsh-rea,bundle 版本 0.1.0,MIT)是非官方的 DeepSeek Harness 集成包:不隶属 REA 项目,仓库内也不包含 REA 源码。上游为 morluto 的 REA,npm 包为 rea-agents,文档见 rea.tools。本仓库只做打包层,把 REA 侧 rea-mcp 注册方式转成可安装的 DSH bundle(含 locale 与图标),安装后由 npx 启动官方 rea-agents 的 MCP 子命令。

安装完成后,智能体可调用 REA 工具链,用于检视原生二进制、应用包、JavaScript/Electron 应用、托管程序集、网站、抓包、固件镜像与运行时行为等(能力以 REA 当前版本工具目录为准;rea-agents@6.7.0 时 advertised 约 207 个工具)。

核心机制

bundle 向 Harness 插件组合插入一行 MCP 客户端配置,核心是 DSH 自带的 @deepseek-ai/dsh-mcp-client,命令为 npx 拉取并运行固定版本的 REA:

- insert:
    - id: rea-mcp
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: rea
        transport: stdio
        command: npx
        args: ['-y', 'rea-agents@6.7.0', 'mcp']

因此 REA 不会被 vendored 或 fork;首次启动需网络,由 npx 下载 rea-agents@6.7.0。

为控制上下文体积,bundle 默认设置:

  • REA_MCP_INPUT_SCHEMA_PROFILE=compact:发现阶段使用有界输入 schema,服务端仍按完整契约校验。
  • REA_MCP_OUTPUT_SCHEMA_PROFILE=off:发现阶段不附带输出 schema。

README 在 REA 6.7.0 下测得工具 JSON 约 215–230 KiB(约 55–57k tokens)的固定成本;未做逆向分析时建议禁用该 bundle。

环境与版本

组件 说明
DeepSeek Harness 需自带 @deepseek-ai/dsh-mcp-client(README 在 0.2.1-rc.2 验证)
Node.js / npm 须在 Harness 进程 PATH 上;REA 官方支持 Node.js 22.x(≥22.19)、24.x(≥24.11)或 26+;20 可启动但不在支持范围
网络 首次启动需能拉取 npm 包
系统 作者在 macOS 验证;Linux 预期相同;Windows 未测

版本对应(摘自 README):

REA 版本 Bundle 版本 DSH(已验证)
rea-agents@6.7.0 0.1.0 0.2.1-rc.2

升级 REA 前应先阅读其 release notes;工具名与 schema 属于模型可见契约。

安装与启用

资料中的安装流程是:将本 bundle 目录放到本机后,由 Harness 智能体通过 plugin_manager 安装,action: install_bundle,并传入该目录的绝对路径。安装会修改当前 DSH profile,重启后仍保留。

安装前可在 bundle 目录执行预检,检查 Node、npm 缓存,并对 rea-agents@6.7.0 做 MCP 初始化与 tools/list,同时预热 npx 缓存:

node scripts/preflight.mjs

首次启动可能较慢(npx 下载 REA)。bundle 默认 failOnStartupError: false 并支持自动重连,慢下载不会直接禁用该行,但在服务就绪前调用会失败;若数分钟后仍无 REA 工具,可查看 Harness 日志。

注意: 同一 profile 下不要同时启用本 bundle 与 rea setup --client dsh,二者都会使用 serverName: rea,MCP 客户端会拒绝重复注册,导致一侧工具集消失。只保留一种集成方式。

插件以当前 DSH 进程的用户与权限运行;安装前请自行阅读仓库源码、LICENSE 与 NOTICE.md,确认许可与免责声明(非官方、不含 REA 源码)。

典型用法与验证

服务就绪后,可让智能体调用无参工具 mcp__rea__binary_session:不启动完整分析,仅回报当前 target/provider/server 身份;健康结果应能识别 REA 服务端版本(基线为 6.7.0)。

日常逆向任务则通过各类 mcp__rea__* 工具完成;具体名称与参数以 REA 文档与当前工具列表为准。原生分析或 provider 启动可能超过默认 60 秒超时,bundle 在 cordis.patch.yml 中将 toolCallTimeoutMs 设为 600000。

配置与排错

需要改超时、schema profile 或 npm 缓存路径时,编辑 bundle 内的 cordis.patch.yml 后重新安装或重载 bundle。常用项(摘自 README):

键 典型值 作用
serverName rea 工具前缀 mcp__rea__
toolCallTimeoutMs 600000 长耗时分析
failOnStartupError false 首次 npx 慢时不失败整行
NPM_CONFIG_CACHE 指向 $DSH_HOME/cache/dsh-rea/npm 等 避免 root 拥有的 ~/.npm 导致 EPERM;可用环境变量 DSH_REA_NPM_CACHE 覆盖
REA_MCP_INPUT_SCHEMA_PROFILE compact(可改为 full) 工具发现体积
REA_MCP_OUTPUT_SCHEMA_PROFILE off 避免数 MB 级输出 schema

若出现 npm error code EPERM,优先使用 bundle 配置的专用 npm 缓存目录,而非对整个用户 npm 缓存 chown。

若无任何 mcp__rea__* 工具:先跑 preflight.mjs;确认 npx 对应受支持的 Node 版本;确认 rea-mcp 行已启用且未 disabled;必要时重载 bundle 或重启 Harness。

适用场景与结尾

适合已在 DSH 中开发智能体、需要把 REA 逆向能力以 MCP 形式纳入同一对话上下文的开发者与安全研究人员。分类上常归入模型推理相关插件(通过 MCP 扩展模型可调用工具),但上下文中会固定占用较大工具目录,非逆向任务时应关闭 bundle。

社区目录 SkillHub 与 DeepSeek Harness 生态并列存在,并非 DeepSeek 或幻方官方应用商店;选用插件时请自行核对维护者与上游 REA 的许可与更新策略。

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

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

Xiaoye