Preface

In DeepSeek Harness (DSH), when letting agents invoke external applications, a common practice is to directly write each Provider’s API Key into the Harness configuration or register a large number of tools into the MCP tool surface all at once. The former exposes credentials at the client boundary, while the latter causes the tool list to bloat and become difficult to maintain.

dsh-oomol is a networked tool plugin maintained by oomol-lab that connects the Harness to the OOMOL Connector (hosted OOMOL Hosted or self-hosted OpenConnector). The Harness only retains the Connector client key, while Provider credentials remain on the Connector side; Actions are exposed on-demand via progressive MCP discovery, rather than presenting the entire toolset upfront.

What This Is

dsh-oomol (npm package name dsh-oomol, current version 0.1.4) is the OOMOL Connector for DeepSeek Harness. Each plugin instance corresponds to a single Connector endpoint, supporting:

  • OOMOL Hosted: Connects by default to https://connector.oomol.com/v1/mcp
  • Self-hosted OpenConnector: Overrides the endpoint in the profile’s cordis.patch.yml

The plugin appears under the Harness’s Settings > Plugins > OOMOL Connector, licensed under MIT.

Core Features

Progressive MCP Discovery

The plugin mounts the Harness’s Streamable HTTP MCP client and connects to the selected Connector endpoint. Connector Actions remain progressively discoverable, keeping the Harness-side resident tool surface small.

Credential Boundary Separation

  • OOMOL Hosted: Provider credentials are stored in the OOMOL Connector; the Harness accesses the Connector via OOMOL_MCP_API_KEY
  • Self-hosted: Provider credentials are stored in the OpenConnector; uses OOMOL_CONNECT_RUNTIME_TOKEN on demand (or custom apiKeyEnv)
  • The browser side only receives credential references and status metadata; the Connector API Key and Provider credentials remain within the Host-side secret boundary

Dual Deployment Modes

Mode Default Endpoint Default Credential Environment Variable Connections Button
OOMOL Hosted https://connector.oomol.com/v1/mcp OOMOL_MCP_API_KEY (required) Opens the Harness native OOMOL Hosted account panel
Self-hosted OpenConnector Must be specified in cordis.patch.yml OOMOL_CONNECT_RUNTIME_TOKEN (depends on deployment) Opens the OpenConnector Console on the endpoint’s origin

Self-hosted HTTP only supports localhost, 127.0.0.1, [::1]; remote deployments require HTTPS.

Configurable Options

Field Default Value Purpose
endpoint https://connector.oomol.com/v1/mcp Streamable HTTP MCP endpoint
apiKeyEnv Derived from endpoint Harness credential reference and startup environment variable name
teamName Not set OOMOL Hosted team identifier
teamNameEnv OOMOL_TEAM_NAME OOMOL Hosted team environment variable name
serverName oomol Harness MCP tool namespace
toolCallTimeoutMs 60000 Tool call timeout (milliseconds)
failOnStartupError false Whether to block Harness startup if MCP discovery fails

Installation & Enablement

Environment requirements:

  • Node.js 22.19 or later (within the Node.js 22 line), or Node.js 24+
  • DeepSeek Harness 0.1.0-rc.7 or 0.1.0-rc.8
  • OOMOL Hosted requires an OOMOL account; self-hosted requires a running OpenConnector instance

Install the plugin to the web profile and restart the Harness:

dsh plugin --profile web add -w dsh-oomol
dsh web

OOMOL Hosted Configuration

Connects to the hosted endpoint by default. A typical snippet in the profile is:

- id: oomol
  name: dsh-oomol
  config:
    endpoint: https://connector.oomol.com/v1/mcp
    teamNameEnv: OOMOL_TEAM_NAME
    serverName: oomol
    toolCallTimeoutMs: 60000
    failOnStartupError: false

Create an OOMOL MCP API Key in the OOMOL Console and write it into the plugin settings; the Harness will save it as OOMOL_MCP_API_KEY. The hosted environment can also be injected before startup:

export OOMOL_MCP_API_KEY="api_..."
dsh web

When team identity is required:

export OOMOL_TEAM_NAME="your-team"
dsh web

Self-hosted OpenConnector Configuration

Override the endpoint in the profile’s cordis.patch.yml, for example, for local:

- update:
    id: oomol
    config:
      endpoint: http://127.0.0.1:3000/mcp

A local OpenConnector can run without authentication. If runtime authentication is enabled in the deployment, use OOMOL_CONNECT_RUNTIME_TOKEN, or save a persistent runtime key created from that OpenConnector Console’s Access page in the plugin settings:

export OOMOL_CONNECT_RUNTIME_TOKEN="oct_..."
dsh web

Remote HTTPS example:

- update:
    id: oomol
    config:
      endpoint: https://connect.example.com/mcp

Custom credential environment variable name:

- update:
    id: oomol
    config:
      endpoint: https://connect.example.com/mcp
      apiKeyEnv: MY_CONNECT_RUNTIME_TOKEN

The Harness Credentials prioritize resolving apiKeyEnv, then read the startup environment variable.

Typical Usage

After installation and credential configuration, you can start by discovering Connectors and Actions. The README provides conversation examples:

Show me the connectors available to this account.
Find Actions that can create a calendar event and inspect the selected Action schema.

For operations with external side effects, the target account and intended parameters should be clearly stated in the request before execution. Before executing Actions that are destructive, externally visible, modify permissions, or are widely shared, their implications should be reviewed.

For local diagnostics, run:

pnpm run doctor

Use Cases & Considerations

Who is this for

  • Developers who have configured application connections on OOMOL or OpenConnector and wish to discover and invoke Actions on-demand in DSH conversations
  • Teams that want to keep Provider credentials on the Connector side, with the Harness holding only the Connector client key
  • Deployment scenarios requiring support for both OOMOL Hosted and self-hosted Connectors

Notes before use

  • The plugin runs with the current dsh process permissions; before installation, review the GitHub source code and MIT license to ensure the behavior meets expectations
  • If the plugin is not visible in Settings, confirm it has been installed to the web profile and dsh web has been restarted
  • If OOMOL Hosted shows “Not configured”, check if OOMOL_MCP_API_KEY has been saved
  • If self-hosted returns “Unauthorized”, confirm the runtime token corresponds to that OpenConnector instance
  • If expected applications do not appear, configure the Provider connection in the corresponding Connector Console
  • If the Connections panel cannot be expanded, adjust the window width to at least 1220 px

The DSH ecosystem follows the “everything is a plugin” principle; the SkillHub directory page is a community site, with no official affiliation to DeepSeek / High-Flyer.

Conclusion

dsh-oomol connects the Harness to the OOMOL Connector, using progressive MCP discovery to reduce the resident tool surface, and keeps Provider credentials on the Connector side. If you already maintain application connections on OOMOL or OpenConnector, you can follow the steps in this article to install it to the web profile, configure the endpoint and keys, and then start invoking from discovering Actions.

  • Directory page: https://www.skillhub.cn/plugins/oomol-lab/dsh-oomol
  • GitHub: https://github.com/oomol-lab/dsh-oomol