DeepSeek Harness Plugin

imaused/dsh-mcp-bridge

Stars ★ 0 Downloads (30d) 321 Category Tools & Capabilities Added 2026-10-22 npm dsh-mcp-host

Exposes a stdio MCP server as native DeepSeek Harness tools. Ships with the official Microsoft Playwright MCP preset, so the agent browses through the Edge or Chrome you already have open, with your logins intact; any other stdio MCP command can be configured instead. Host-only, no client bundle, no npm dependencies. To drive your own browser, start Edge/Chrome with remote debugging and allow npx to fetch @playwright/mcp.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-mcp-host

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:imaused/dsh-mcp-bridge

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

Expose any stdio MCP server as native DeepSeek Harness tools. Host-only plugin, no browser UI, no npm dependencies.

Built for one job: let a DSH agent drive a browser through the official Microsoft Playwright MCP server, attached to the Edge/Chrome you are already using.

What it does

  1. On load, spawns the MCP server once (default npx --yes @playwright/mcp@latest --cdp-endpoint=msedge).
  2. Calls initialize + tools/list, converts each tool's JSON Schema into a DSH parameter schema, and registers it with ctx.tools.register.
  3. Every tool call is forwarded as tools/call; the result is returned as JSON. Images (screenshots) are written to a temp file and returned as a path, not as base64.

Tools are renamed: browser_navigate becomes edge_navigate (prefix configurable).

Default tool set (12 of Playwright's 25)

edge_navigate, edge_navigate_back, edge_snapshot, edge_click, edge_type, edge_fill_form, edge_press_key, edge_tabs, edge_take_screenshot, edge_evaluate, edge_wait_for, edge_close.

The full set costs prompt space in every session, which is why it is not the default. Set MCP_BRIDGE_ALL=1 to expose everything.

Install

cd E:\dsh
.\rollback.cmd guard add "file:C:\path\to\dsh-mcp-host"
.\rollback.cmd health

Restart DSH (or rely on hot-load) and open a new session.

Configuration

Env var Default Meaning
MCP_BRIDGE_COMMAND npx --yes @playwright/mcp@latest --cdp-endpoint=msedge The MCP server command line (any stdio MCP server)
MCP_BRIDGE_PREFIX edge Tool name prefix
MCP_BRIDGE_ALL unset 1 = register every tool the server offers
MCP_BRIDGE_TOOLS unset Comma-separated allow-list of MCP tool names
MCP_BRIDGE_TIMEOUT 120000 Per-call timeout (ms)
MCP_BRIDGE_INIT_TIMEOUT 30000 Startup timeout (ms)

Prerequisite for the Edge/Chrome you are already using

Open edge://inspect/#remote-debugging (or chrome://inspect/#remote-debugging) and enable Allow remote debugging for this browser instance. Then --cdp-endpoint=msedge (or =chrome) attaches to that running browser with your logins and extensions. Without the toggle, Playwright launches a fresh browser instead.

Failure behaviour

If the MCP server cannot start or does not answer, the plugin registers nothing and logs the reason 鈥?it never throws, so it cannot take the host boot down. Check MCP_BRIDGE_INIT_TIMEOUT and the stderr tail printed in the DSH console.

Privacy

The bridge itself makes no network calls. It spawns exactly one child process (the MCP server you configured) and forwards bytes between it and the tool call. With --cdp-endpoint, the MCP server attaches to your existing browser, which means it can see and act on the tabs you have open 鈥?treat that as giving the agent your browser session.

License

MIT.

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.