DeepSeek Guide — whale logoDeepSeek GuideFAN SITE
TUTORIAL3 MIN READ

DeepSeek Harness MCP Setup: Connect Model Context Protocol Servers

UPDATED: AUG 16, 2026AUTHOR: INDEPENDENT FAN GUIDE
OVERVIEW

DeepSeek Harness has no native MCP — it arrives via plugins. Setup dsh-plugin-setting-mcp, the dsh-mcp-lens gateway, and community MCP servers.

01

How MCP Works in dsh

DeepSeek Harness does not speak MCP natively — Model Context Protocol arrives as plugins, configured through the settings panel or cordis configuration[1].

Because everything in dsh is a plugin, MCP support is a family of plugins rather than one built-in protocol: an official community plugin for panel-based configuration, a gateway plugin for large tool directories, and community servers that expose dsh's own capabilities back to MCP clients like Cursor or Codex[1][2].

  • MCP integration is plugin-based, not a native protocol
  • Configure via Settings → Plugins or cordis config layers
  • Three main routes: settings plugin, gateway, community server
02

Option 1: Settings-Panel MCP Plugin

The official community plugin dsh-plugin-setting-mcp lets you configure MCP servers from the dsh settings panel instead of hand-editing YAML[2].

NOTE

For users of the visual alternative, the community plugin dsh-mcp-manager (Js2Hou) provides a dedicated UI for managing MCP servers[2].

example_code.py
# Install the settings-panel MCP plugin into the web profile
dsh plugin --profile web add dsh-plugin-setting-mcp

# Then open the Web UI at http://127.0.0.1:3080
# Settings → Plugins → MCP → add your server URL / command
# (stdio servers are declared in the profile's cordis.patch.yml)
03

Option 2: dsh-mcp-lens Gateway

If you maintain a large remote tool directory, dsh-mcp-lens acts as an MCP gateway with progressive disclosure: two stable interfaces for searching big tool catalogs, lazy connection, and bounded caching[1].

Progressive disclosure means the model only loads the tool definitions it actually queries — which keeps context small and latency low even when thousands of tools are registered. That is the pattern for enterprise MCP estates.

The gateway is the right choice when a single MCP server would dump an overwhelming tool list into every request.

Sponsored
04

Option 3: Community MCP Server

The dsh-cursor-codex project ships a zero-dependency MCP stdio server that exposes dsh itself as MCP tools — dsh_delegate and dsh_health — callable from Cursor or Codex[1].

This is the reverse direction: instead of dsh consuming MCP servers, dsh becomes an MCP server. Combined with the Cursor integration guide, it closes the loop between the IDE and the harness.

example_code.py
# Expose dsh as MCP tools for Cursor / Codex
# Merge the server into Cursor:
#   merge templates/cursor/mcp.json into ~/.cursor/mcp.json
# Codex uses dsh.config.toml instead

# dsh_delegate — hand a task to dsh from any MCP client
# dsh_health — check the harness profile status
05

Web Search MCP Plugins

For agent web search, community plugins wrap existing search MCP services with DeepSeek-friendly defaults[1].

Both are drop-in tool plugins; add them with dsh plugin add and they register as agent search tools. Keys are stored per profile in $DSH_HOME/.credentials.yaml[3].

  • dsh-web-search-exa — keyless anonymous MCP fallback (mcp.exa.ai/mcp) plus keyed REST mode
  • dsh-tavily — multiple-key rotation for Tavily
Sponsored
06

Troubleshooting MCP Connections

Most MCP failures in dsh come from configuration layering or credential handling, not from the servers themselves[2][3].

  • Plugin not loading: confirm it is installed into the profile you launched (dsh plugin --profile web add ...)
  • Server not reachable: check the URL/command in the profile's cordis.patch.yml
  • Credential errors: store keys via the Models/settings screen — they are written to .credentials.yaml and not readable afterwards
  • Changed config not applying: model and provider changes apply on the next request; plugin changes need a profile restart
NOTE

Stuck on a config-layer issue? The common errors guide covers MISSING_CREDENTIAL, UNKNOWN_MODEL, and the rest of the official troubleshooting table.

Sponsored
Sponsored