dsh-obscura:在 DeepSeek Harness 里托管 Obscura MCP 服务

前言

在 DeepSeek Harness(DSH)里接 headless 浏览器类 MCP,常见做法是手动维护 obscura 进程、在 profile 里写 mcp-obscura 行,并自己核对端口与 harness 是否真连上。端口改了、服务没健康、配置行和实际地址不一致时,排查往往要来回对好几处。

dsh-obscura(仓库 SodiumLayer/dsh-obscura)是第三方工作流插件:在 DSH 启动序列里解析 obscura 可执行文件、拉起 MCP HTTP 服务并做握手健康检查,同时在设置页里同步 profile 中的 mcp-obscura 配置、提供版本探测与「测试接入」。本文介绍其定位、能力与安装用法;事实以仓库 README 与 package 元数据为准。

这是什么

  • 名称:dsh-obscura-plugin(社区目录条目:sodiumlayer/dsh-obscura)
  • 维护者:SodiumLayer
  • 分类:工作流(DeepSeek Harness 插件目录:SkillHub 条目)
  • 上游关系:非官方第三方插件,与 DeepSeek Harness、Obscura(h4ckf0r0day/obscura)无隶属关系;本仓库不包含、也不分发 obscura 二进制,需自行从上游获取并遵守其许可。

一句话:Obscura 的 DSH 设置页插件——启动与健康检查 obscura MCP 服务、从 PATH 或插件 bin/ 解析二进制,并保持 profile 里 mcp-obscura 条目与面板设置一致。

核心功能

下面按 README 中的需求—实现对照说明(仅列资料已写明的能力)。

DSH 启动时自动拉起 MCP 服务

宿主侧在启动序列里解析可执行文件并执行类似 spawn obscura mcp --http --port <port>,轮询 MCP 握手确认可用;随 DSH 退出时停止本插件自己启动的进程,不结束他人占用的实例。

可执行文件解析与版本展示

解析优先级:自定义路径 → 系统 PATH → 插件目录 bin/(含解压出的子目录)。自定义路径既可以是可执行文件,也可以是其所在文件夹。

面板只显示一条版本信息,来自真实执行的 obscura --version;拿不到版本则显示「不可用」。插件包内提供 bin\ 目录与「打开文件夹」按钮,便于放置自行下载的二进制(Windows 下资料示例为 bin\)。

MCP 配置开关与接入地址

  • 开关(开):在 profile 的 cordis.patch.yml 写入或复用一行 mcp-obscura。
  • 开关(关):移除该行。
  • 接入地址:文本框留空则按 --port 自动生成 http://localhost:<端口>/mcp;填写则使用你的地址。端口或地址变化时配置行自动跟随;若与文件内手工修改不一致,面板会明确提示。

实现上采用逐行编辑 patch 文件,保留文件头注释、其他插件行及无法解释的 !!js 表达式;配置行由有效 MCP URL 投影生成,避免面板测新端口、harness 仍指向旧端口。

服务控制与启动参数

设置页提供 启动服务 / 重启服务 / 停止服务,以及 自定义启动参数 文本框。插件固定子命令为 mcp;host、port、stealth 等均由参数框决定,默认值为:

--http --host 127.0.0.1 --port 3000

--port 决定健康检查与 harness 接入地址;缺少 --http 会明确报错,而不是静默走 stdio。

一键测试 harness 是否已接入

「测试接入」分两段:

  1. 服务段:直接请求面板上显示的 MCP 接入地址,执行 initialize 与 tools/list。
  2. 接入段:读取 loader 条目与 mcp__obscura__* 工具数量。

分开报告,便于区分「服务没跑」与「服务在跑但未接入 harness」。MCP 开关反映的是 patch 文件中是否存在该行,是否已挂载以接入段为准;修改 MCP 相关配置后通常需重启 DSH 才挂载生效(资料强调写入配置 ≠ 已生效)。

设计约束(使用时的预期行为)

  • Obscura 相关失败收敛为面板状态与原因,不阻断 DSH 启动。
  • 不联网代下 obscura、不结束非本插件持有的进程;端口冲突会报冲突而非强杀占用者。
  • 宿主实现仅依赖 Node 内置模块;设置页不引入额外前端库(使用宿主注入的 react)。
  • 兼容声明(package.json):DSH >=0.2.0-rc.1 <0.3.0,profile 支持 web、desktop;Node >=22.19。

安装与启用

安装与使用的详细说明见仓库 INSTALL.md。README 给出的添加命令如下(针对 web profile):

dsh plugin --profile web add github:SodiumLayer/dsh-obscura

添加插件后,在 DSH 设置页中配置 obscura 路径(或放入插件 bin/)、启动参数与 MCP 开关;首次使用前请自行准备 obscura 可执行文件。

典型用法

可按下面顺序在设置页完成一次完整接入(步骤来自 README 功能描述,无额外案例数据)。

  1. 将 obscura 二进制放到系统 PATH、插件 bin/,或在面板指定自定义路径。
  2. 确认面板版本行能显示 obscura --version 的结果;否则先解决「不可用」再开 MCP。
  3. 按需编辑启动参数(须含 --http 与 --port),用 启动服务 拉起进程;必要时用 重启服务 / 停止服务 调整。
  4. 打开 MCP 开关,核对生成的 mcp-obscura 接入地址与参数中的端口一致。
  5. 点击 测试接入:先看服务段是否通过,再看接入段是否列出 mcp__obscura__* 工具;若接入段失败而服务段成功,重点查 profile 是否已重启加载 patch。
  6. 重启 DSH(在修改 MCP 配置或 patch 后按面板提示操作),再在 harness 对话中调用 obscura 提供的 MCP 工具。

适用场景与注意

适合谁:已在或计划在 DSH 中使用 Obscura 作为 headless 浏览器 MCP,希望把进程生命周期、健康检查与 cordis.patch.yml 里的 mcp-obscura 行交给插件统一维护的工作流用户。

安装前建议:

  • 插件以当前 DSH 进程权限运行;安装前应阅读 GitHub 源码 与 MIT 许可证,并自行评估 obscura 上游许可与安全策略。
  • 社区插件目录(如 SkillHub)为独立生态站点,与 DeepSeek / 幻方无官方从属关系,勿当作官方应用商店。
  • 当前 package 版本为 0.1.0;仓库星标以目录页展示为准(资料抓取时为 0)。

结尾

dsh-obscura 把「拉 obscura MCP、验健康、写 patch、测 harness 接入」收进一个设置页,减少手工对端口与配置行的来回修改。进一步了解可访问 SkillHub 插件页 与 GitHub 仓库。

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

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

Xiaoye