helloHub1212/dsh-windows-mcp ↗★ 4
dsh-windows-mcp
Windows desktop automation for DeepSeek Harness — plugs CursorTouch/Windows-MCP (screenshot, UI automation, input, clipboard, processes, registry) into DSH through the official MCP client bridge.
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:helloHub1212/dsh-windows-mcpREADME
Read the full README ↗Configuration
The defaults live in cordis.patch.yml. Everything below is set through the env block of the windows-mcp-bridge row.
| Variable | Default here | Effect |
|---|---|---|
WINDOWS_MCP_SCREENSHOT_SCALE | 0.75 | Screenshot downscale, 0.1–1.0. The single biggest lever on image token cost. |
WINDOWS_MCP_DISABLE_FLASH | 1 | Suppresses upstream's orange "control taken over" border on every capture. |
WINDOWS_MCP_SCREENSHOT_BACKEND | auto | Capture backend; see upstream docs before overriding. |
WINDOWS_MCP_MAX_TREE_ELEMENTS | 500 | Cap on the accessibility-tree size reported by Snapshot. |
WINDOWS_MCP_WATCHDOG | off | Upstream watchdog. Off by default because the UIA event pump can take the whole process down (upstream #332). |
ANONYMIZED_TELEMETRY | false | Upstream defaults to on (PostHog). This plugin turns it off. |
Override the row from your profile
Do not edit the plugin's own file — patch the row by id from your profile's
$DSH_HOME/profiles/ /cordis.patch.yml, which is composed after bundle
rows and therefore wins.
A patch replaces the whole config object; it does not deep-merge it. The
loader applies overrides as target[key] = value (applyEntryPatches in
dsh-app-boot), so a key you leave out is a key you delete: serverName is
required (and names every tool), transport is required, command is required
for stdio, url for streamable-http. A patch whose id does not exist, or
whose name does not match, is skipped with a warning instead of failing.