Back to home

meltartica

dsh-mcp-servers

DeepSeek Harness bundle that exposes Model Context Protocol (MCP) servers as native tools, with a settings UI, live status, auto-reconnect, and backup/restore via local files or WebDAV.

Stars
0
Language
TypeScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

dsh-mcp-servers

Expose Model Context Protocol servers as tools inside DeepSeek Harness. A dsh bundle with both a server half (connects to MCP servers, registers their tools) and a client half (a settings UI in the web app).

Made with DeepSeek V4 Flash.

Features

  • stdio, streamable http, and legacy SSE transports — one shared endpoint field, tabs in the UI
  • Tools registered automatically under <serverId>_<toolName> (e.g. server id shadcnshadcn_get_component)
  • Live status dots — green when connected, red with the reason on failure; auto-reconnects with backoff when a connection drops (idle SSE streams, crashed processes)
  • Test button per card — probes connect + tool listing against the current draft without registering anything
  • Edit cards — type tabs, command/args textarea, env variables (or http headers) as key/value rows with show/hide values, paste .env from the clipboard, enabled switch
  • Tabs: All / Local / Remote / Backup & Restore
  • Backup & Restore: export/import the server list as JSON (with inline preview), and optional WebDAV sync (push/pull, https-only, Basic auth) plus an optional daily automatic backup at 12:00 PM — password stored server-side as a secret, never sent back to the browser

Install

Requires DeepSeek Harness with the dsh CLI.

# from a directory containing this repo (or publish it, then use the bare name);
# <name> is the profile you boot, e.g. `web`
dsh plugin --profile <name> add ./dsh-mcp-servers
dsh --profile <name>

Then open Settings → MCP Servers, add a server, hit Test, and Save.

Other install methods

From a built tarball (npm run pack produces dsh-mcp-servers-<version>.tgz):

dsh plugin --profile <name> add ./dsh-mcp-servers-<version>.tgz

Rebuild after changes with npm run build — profiles load the built dist/ and client/client.js, not the sources.

Configuration

stdio server

fieldexample
typestdio
commandnpx
command args-y
@modelcontextprotocol/server-everything (one per line, first line is the command)
envkey/value rows, e.g. API_KEY / your token

http / sse server

fieldexample
typehttp (streamable) or sse (legacy event-stream)
urlhttps://example.com/mcp or https://example.com/sse
headerskey/value rows (e.g. Authorization / Bearer …)

Backup & Restore

  • Local file: export the current config (all servers, endpoints, env, headers) as JSON, import it back, or preview what would be exported.
  • WebDAV: URL, username, password (https only), Push/Pull. Toggle Back up daily at 12:00 PM to auto-push every day at noon local time.

Development

npm install          # note: .npmrc sets legacy-peer-deps (two framework rc lines)
npm run build        # server dist/ + client bundle
npm run check        # typecheck (server + client) + sanitizer test
npm run pack         # build + produce dsh-mcp-servers-<version>.tgz
npm run publish:npm  # build + publish to npm (run `npm login` first)

Versioning is build-based: 1.<YYMMDD>.<build> (e.g. 1.260817.1); the counter increments on every build and resets each day.

The client UI follows the Harness design system: primitives are host-injected externals (@deepseek-ai/dsh-client-ui-primitives) and native controls use --dsw-* theme tokens with hex fallbacks.

Notes / limitations

  • Tool input schemas are whitelist-stripped to the Harness-supported JSON Schema subset (src/sanitize.ts); unsupported keywords (minLength, format, anyOf, schema-form additionalProperties) are dropped.
  • MCP results render as text; image/resource blocks collapse to JSON/text, not rich blocks.
  • WebDAV requires an https endpoint; credentials in the URL are rejected (passed separately).
  • Config/WebDAV routes are loopback-only.