NexusAgentX / dsh-mcp-adapter

Listed

MCP adapter for DeepSeek Harness — one proxy tool instead of dumping every MCP schema into context.

mainTool View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:NexusAgentX/dsh-mcp-adapter

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 39c5aabSynced Aug 18, 2026

dsh-mcp-adapter

Use MCP servers with DeepSeek Harness without burning the context window.

One mcp proxy tool. Lazy server start. On-demand search / describe / call. Configure from the Web /mcp menu.

English | 中文

Why this exists

DeepSeek Harness already ships @deepseek-ai/dsh-mcp-client. That client connects at startup and registers every advertised MCP tool as a native mcp__<server>__<tool> function. Schema cost is paid on every request.

This adapter follows the pi-mcp-adapter contract instead:

  • one mcp proxy tool instead of hundreds of schemas
  • lazy server start
  • on-demand search / describe / call
  • standard .mcp.json discovery, plus a Web /mcp menu that can write the project file
  • optional directTools promotion for hot-path tools
  • metadata cache so search works before a live connect

It is an independent plugin. It is not affiliated with DeepSeek AI.

Do not mount this adapter and @deepseek-ai/dsh-mcp-client against the same servers. They would double-connect and fight over names.

Install

dsh plugin --profile web add dsh-mcp-adapter

Restart dsh web and hard-refresh the browser. The package is dual-face: the Host half registers tools and commands; the Web client half adds the /mcp popup and MCP tool cards.

There is no MCP form under Settings → Plugins. Official plugin settings are an allowlist; out-of-tree plugins cannot register a card there. Configuration happens in the /mcp menu or in JSON files.

Web UI (primary)

In Chat, type /mcp:

MenuWhat it does
Status / Sources / PromptsInspect state
DeepWiki, Context7, Notion, GitHub, Chrome DevToolsOne-click add to project .mcp.json
server · Connect / AuthorizeConnect, or open the OAuth browser flow
server · Disable / RemoveConfirm, then stop or delete

Custom server (also writes .mcp.json and reloads in-process):

/mcp add docs url=https://mcp.example.com/mcp
/mcp add fs command=npx args=-y,@modelcontextprotocol/server-filesystem,/tmp

Then ask the model to mcp({ search: "screenshot" }). Tool cards use the same DisclosureRow / StateDot / SearchBlock chrome as first-party Skill and Tool rows. approveTools uses the Chat Ask dialog.

File config (shared / power user)

Preferred project file is still .mcp.json if you want the same servers in Cursor or other hosts:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": ["-y", "chrome-devtools-mcp@1.6.0"]
    }
  }
}
FilePurpose
~/.config/mcp/mcp.jsonUser-global shared MCP config
~/.agents/mcp.jsonUser-global tool-agnostic MCP config
~/.agents/mcp/mcp.jsonUser-global tool-agnostic MCP config
.mcp.jsonProject-local shared MCP config (Web add/remove writes here)
$DSH_HOME/mcp.jsondsh global override (~/.dsh/mcp.json by default)
.dsh/mcp.jsondsh project override

Later files win. /mcp disable and /mcp enable write only the disabled field to .dsh/mcp.json. They never copy credentials.

Host-specific configs (Cursor, Claude Code, Codex, OpenCode, Windsurf, VS Code) are detected by dsh-mcp-adapter init and /mcp list. They are not loaded unless you set settings.hostConfigDiscovery to "on" or list them in imports.

{
  "imports": ["cursor"],
  "settings": {
    "hostConfigDiscovery": "off",
    "toolPrefix": "server",
    "idleTimeout": 10
  },
  "mcpServers": {}
}

Server options

{
  "mcpServers": {
    "my-server": {
      "command": "npx",
      "args": ["-y", "some-mcp-server"],
      "lifecycle": "lazy",
      "idleTimeout": 10,
      "requestTimeoutMs": 30000,
      "directTools": ["search"],
      "includeTools": ["search", "get_*"],
      "excludeTools": ["admin_*"],
      "searchKeywords": {
        "search": ["find", "lookup"]
      }
    }
  }
}
FieldMeaning
lifecyclelazy (default), eager, keep-alive, lazy-keep-alive
idleTimeoutMinutes before an idle lazy server is closed (default 10, 0 disables)
directToolstrue or a name list — register those tools as native dsh tools
url / headers / bearerToken / bearerTokenEnvStreamable HTTP; SSE fallback on 404/405
auth / oauth"oauth" or "bearer"; OAuth tokens go in the OS credential store
socketrmcp-mux Unix-domain socket (mutually exclusive with command / url)
approveToolstrue or globs — Chat Ask before those tools run
disabledKeep the entry visible but do not connect

Model tools

mcp({ search: "screenshot" })
mcp({ describe: "chrome-devtools_take_screenshot" })
mcp({ tool: "chrome-devtools_take_screenshot", args: { format: "png" } })
mcp({ connect: "chrome-devtools" })
mcp({ action: "auth-start", server: "notion" })
mcp({ action: "auth-complete", server: "notion", args: { redirectUrl: "http://localhost:.../callback?code=..." } })
mcp({ prompt: "create_plan", server: "agent-board", args: "harden retry policy" })

args can be a JSON object or a JSON string. mcpScript can loop / search / call several MCP tools in one JavaScript request.

Human commands

/mcp
/mcp status
/mcp list
/mcp json
/mcp setup
/mcp prompts
/mcp add-preset <deepwiki|context7|notion|github|chrome-devtools>
/mcp add <name> url=<url>
/mcp add <name> command=<cmd> [args=a,b] [auth=oauth]
/mcp connect <server>
/mcp auth <server>
/mcp enable <server>
/mcp disable <server>
/mcp remove <server>

CLI

dsh-mcp-adapter init
dsh-mcp-adapter status

Status

Piece0.6.3
mcp proxy + lazy lifecycle + metadata cacheyes
Web /mcp configure / connect / authyes
Web cards (DisclosureRow / SearchBlock)yes
Web Ask for approveToolsyes
OAuth, prompts, mcpScript, Agent Plugins, socketsyes
Settings → Plugins formno (host allowlist)
elicitation / sampling / MCP UI appsnot in dsh host yet

License

MIT

Inspired by pi-mcp-adapter (MIT). See NOTICE.


中文

DeepSeek Harness 用的 MCP 适配器:一个代理工具,按需搜索 / 描述 / 调用,不把每个 MCP schema 塞进上下文。

配置入口是 Web 的 /mcp,不是 Settings。 官方插件设置页不允许外部插件挂表单。

dsh plugin --profile web add dsh-mcp-adapter

重启 dsh web,硬刷新,在输入框敲 /mcp

  • 一键添加 DeepWiki / Context7 / Notion / GitHub / Chrome DevTools(写入项目 .mcp.json,立刻生效)
  • 对已有 server:连接、授权、停用、移除
  • 自定义:/mcp add docs url=https://…/mcp add fs command=npx args=-y,pkg

然后让模型 mcp({ search: "screenshot" })。卡片和官方 Skill / Tool 行同一套 DisclosureRow / StateDot / SearchBlock

也可以继续用手写 .mcp.json / ~/.config/mcp/mcp.json,和其他 MCP 宿主共用。不要和 @deepseek-ai/dsh-mcp-client 挂同一批 server。

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected

Repository information

Language
TypeScript
License
MIT
Latest release
v0.6.3
Last updated
Aug 14, 2026, 5:42 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.