前言¶
在 DeepSeek Harness(DSH)里让智能体调用外部应用,常见做法是把各 Provider 的 API Key 直接写进 Harness 配置,或把大量工具一次性注册进 MCP 工具面。前者把凭证暴露在客户端边界,后者会让工具列表膨胀、难以维护。
dsh-oomol 是 oomol-lab 维护的联网工具类插件,把 Harness 接到 OOMOL Connector(托管版 OOMOL Hosted 或自托管 OpenConnector)。Harness 只保存 Connector 客户端密钥,Provider 凭证留在 Connector 侧;Actions 通过渐进式 MCP 发现按需暴露,而不是一次性铺开全部工具。
这是什么¶
dsh-oomol(npm 包名 dsh-oomol,当前版本 0.1.4)是 OOMOL Connector for DeepSeek Harness。一个插件实例对应一个 Connector 端点,支持:
- OOMOL Hosted:默认连接
https://connector.oomol.com/v1/mcp - 自托管 OpenConnector:在 profile 的
cordis.patch.yml中覆盖endpoint
插件在 Harness 的 Settings > Plugins > OOMOL Connector 下出现,许可证为 MIT。
核心功能¶
渐进式 MCP 发现¶
插件挂载 Harness 的 Streamable HTTP MCP 客户端,连到所选 Connector 端点。Connector Actions 保持可渐进发现,Harness 侧常驻工具面保持较小。
凭证边界分离¶
- OOMOL Hosted:Provider 凭证存在 OOMOL Connector;Harness 通过
OOMOL_MCP_API_KEY访问 Connector - 自托管:Provider 凭证存在 OpenConnector;按需使用
OOMOL_CONNECT_RUNTIME_TOKEN(或自定义apiKeyEnv) - 浏览器侧只收到凭证引用与状态元数据,Connector API Key 与 Provider 凭证留在 Host 侧秘密边界
双部署模式¶
| 模式 | 默认端点 | 默认凭证环境变量 | Connections 按钮 |
|---|---|---|---|
| OOMOL Hosted | https://connector.oomol.com/v1/mcp |
OOMOL_MCP_API_KEY(必填) |
打开 Harness 原生 OOMOL Hosted 账户面板 |
| 自托管 OpenConnector | 需在 cordis.patch.yml 指定 |
OOMOL_CONNECT_RUNTIME_TOKEN(视部署而定) |
打开端点 origin 上的 OpenConnector Console |
自托管 HTTP 仅支持 localhost、127.0.0.1、[::1];远程部署需 HTTPS。
可配置项¶
| 字段 | 默认值 | 用途 |
|---|---|---|
endpoint |
https://connector.oomol.com/v1/mcp |
Streamable HTTP MCP 端点 |
apiKeyEnv |
由 endpoint 推导 |
Harness 凭证引用与启动环境变量名 |
teamName |
未设置 | OOMOL Hosted 团队标识 |
teamNameEnv |
OOMOL_TEAM_NAME |
OOMOL Hosted 团队环境变量名 |
serverName |
oomol |
Harness MCP 工具命名空间 |
toolCallTimeoutMs |
60000 |
工具调用超时(毫秒) |
failOnStartupError |
false |
MCP 发现失败时是否阻止 Harness 启动 |
安装与启用¶
环境要求:
- Node.js 22.19 及以上(仍在 Node.js 22 线内),或 Node.js 24+
- DeepSeek Harness
0.1.0-rc.7或0.1.0-rc.8 - OOMOL Hosted 需 OOMOL 账户;自托管需运行中的 OpenConnector 实例
下面把插件安装到 web profile 并重启 Harness:
dsh plugin --profile web add -w dsh-oomol
dsh web
OOMOL Hosted 配置¶
默认连接托管端点,profile 中典型片段如下:
- id: oomol
name: dsh-oomol
config:
endpoint: https://connector.oomol.com/v1/mcp
teamNameEnv: OOMOL_TEAM_NAME
serverName: oomol
toolCallTimeoutMs: 60000
failOnStartupError: false
在 OOMOL Console 创建 OOMOL MCP API Key,写入插件设置;Harness Credentials 会以 OOMOL_MCP_API_KEY 保存。托管环境也可在启动前注入:
export OOMOL_MCP_API_KEY="api_..."
dsh web
需要团队身份时:
export OOMOL_TEAM_NAME="your-team"
dsh web
自托管 OpenConnector 配置¶
在 profile 的 cordis.patch.yml 覆盖端点,例如本地:
- update:
id: oomol
config:
endpoint: http://127.0.0.1:3000/mcp
本地 OpenConnector 可无认证运行。若部署启用了运行时认证,使用 OOMOL_CONNECT_RUNTIME_TOKEN,或在插件设置中保存由该 OpenConnector Console Access 页创建的持久运行时密钥:
export OOMOL_CONNECT_RUNTIME_TOKEN="oct_..."
dsh web
远程 HTTPS 示例:
- update:
id: oomol
config:
endpoint: https://connect.example.com/mcp
自定义凭证环境变量名:
- update:
id: oomol
config:
endpoint: https://connect.example.com/mcp
apiKeyEnv: MY_CONNECT_RUNTIME_TOKEN
Harness Credentials 优先解析 apiKeyEnv,其次读取启动环境变量。
典型用法¶
安装并完成凭证配置后,可从发现 Connector 与 Actions 开始。README 给出的对话示例:
Show me the connectors available to this account.
Find Actions that can create a calendar event and inspect the selected Action schema.
对有外部副作用的操作,在执行前应在请求中写明目标账户与拟用参数。执行具有破坏性、对外可见、改权限或广泛共享的 Actions 前,应先审阅其含义。
本地诊断可运行:
pnpm run doctor
适用场景与注意¶
适合谁
- 已在 OOMOL 或 OpenConnector 上配置好应用连接,希望在 DSH 对话里按需发现并调用 Actions 的开发者
- 希望把 Provider 凭证留在 Connector 侧、Harness 只持 Connector 客户端密钥的团队
- 需要同时支持 OOMOL Hosted 与自托管 Connector 的部署场景
使用前注意
- 插件以当前
dsh进程权限运行;安装前应查看 GitHub 源码 与 MIT 许可证,确认行为符合预期 - Settings 中看不到插件时,确认已安装到
webprofile 并重启dsh web - OOMOL Hosted 显示 Not configured 时,检查是否已保存
OOMOL_MCP_API_KEY - 自托管返回 Unauthorized 时,确认运行时密钥对应该 OpenConnector 实例
- 预期应用未出现时,到对应 Connector Console 配置 Provider 连接
- Connections 面板无法展开时,将窗口宽度调至至少 1220 px
DSH 生态遵循「一切皆插件」;SkillHub 目录页 是社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-oomol 把 Harness 接到 OOMOL Connector,用渐进式 MCP 发现缩小常驻工具面,并把 Provider 凭证留在 Connector 侧。若你已在 OOMOL 或 OpenConnector 上维护应用连接,可按本文步骤安装到 web profile、配置端点与密钥,再从发现 Actions 开始调用。
- 目录页:https://www.skillhub.cn/plugins/oomol-lab/dsh-oomol
- GitHub:https://github.com/oomol-lab/dsh-oomol