Best for
- Windows users wanting AI agents to operate desktop apps intuitively.
- Developers using Claude or Cursor for end-to-end desktop testing.
- Those needing high-fidelity UI automation with low token overhead.
This server is a powerful, token-efficient option for Windows desktop automation. Its native Rust engine and thoughtful safety features (auto-guards, failsafe) make it suitable for supervised automation contexts. Be mindful of its Windows-only nature and the inherent risks of agent-driven desktop control.
Strongest · Documentation 12/20 Weakest · Maintenance 7/20
Static review · not runListed 2026-09-08
Read the FMRS scoring method →Runtime:Node.js v20+ · Prebuilt binary
GITHUB_TOKEN
GitHub personal access token (github.com/settings/tokens) to avoid the 60 req/hour anonymous limit on shared networks; optional.
GH_TOKEN
Alias for GITHUB_TOKEN; optional.
DESKTOP_TOUCH_AUTO_GUARD
Set to '0' to disable automatic action guards; optional.
DESKTOP_TOUCH_PERCEPTION_RESOURCES
Set to '1' to enable MCP perception resources; optional.
DESKTOP_TOUCH_PERCEPTION_IDLE_MS
Idle ms before the WinEvent sidecar enters dormancy; default 60000.
DESKTOP_TOUCH_PERCEPTION_DORMANCY_DISABLE
Set to '1' to keep the WinEvent sidecar always running; optional.
DESKTOP_TOUCH_DIAGNOSTIC_LOG_DISABLE
Set to '1' to disable the JSONL diagnostic event log; optional.
DESKTOP_TOUCH_DIAGNOSTIC_LOG_PATH
Overrides the diagnostic event log path; optional.
DESKTOP_TOUCH_DIAGNOSTIC_LOG_MAX_BYTES
Diagnostic log rollover size threshold; default 64 MiB; optional.
DESKTOP_TOUCH_RESOLVE_LOG_RAW
Set to '1' to record window titles in clear text in the diagnostic log; optional.
DESKTOP_TOUCH_MCP_HOME
Overrides the runtime cache root directory; optional.
DESKTOP_TOUCH_MCP_ALLOW_UNVERIFIED
Set to '1' to skip runtime integrity verification; development from source only; optional.
DESKTOP_TOUCH_DOCK_TITLE
Target window to auto-dock on startup; '@parent' finds the hosting terminal; optional.
DESKTOP_TOUCH_DOCK_CORNER
Dock corner; default bottom-right; optional.
DESKTOP_TOUCH_DOCK_WIDTH
Docked window width (px or percent); default 480; optional.
DESKTOP_TOUCH_DOCK_HEIGHT
Docked window height; default 360; optional.
DESKTOP_TOUCH_DOCK_PIN
Always-on-top toggle; default true; optional.
DESKTOP_TOUCH_DOCK_MONITOR
Target monitor for docking; default primary; optional.
DESKTOP_TOUCH_DOCK_SCALE_DPI
Set to true to scale dock size by DPI; optional.
DESKTOP_TOUCH_DOCK_MARGIN
Screen-edge padding in px; default 8; optional.
DESKTOP_TOUCH_DOCK_TIMEOUT_MS
Max wait in ms for the target window; default 5000; optional.
DESKTOP_TOUCH_SCREENSHOTS_DIR
Pins the screenshot cache to a specific folder; optional.
DESKTOP_TOUCH_SCREENSHOT_MAX_COUNT
Max captures kept in cache; default 200; optional.
DESKTOP_TOUCH_SCREENSHOT_MAX_BYTES
Total cache size cap on disk; default 256 MiB; optional.
DESKTOP_TOUCH_SCREENSHOT_MAX_AGE_MS
Drops captures older than this many ms; off by default; optional.
DESKTOP_TOUCH_SCREENSHOT_AUTOPRUNE
Auto-trims cache as new captures are saved; default on; optional.
DESKTOP_TOUCH_SCREENSHOT_MIN_EVICT_AGE_MS
Minimum age in ms before auto-eviction; default 60000; optional.
DESKTOP_TOUCH_CAPTURE_BACKEND
Diagnostic override for capture path; set to nutjs to force the older backend; optional.
DESKTOP_TOUCH_FAILSAFE_HOLD_MS
Cursor dwell ms before emergency stop; default 500; optional.
DESKTOP_TOUCH_MOUSE_SPEED
Default mouse movement speed in px/sec; default 1500; optional.
DESKTOP_TOUCH_FORCE_FOCUS
Set to '1' to make forceFocus the default for input tools; optional.
DESKTOP_TOUCH_DISABLE_KEY_LOCKER
Set to '1' to disable Key Locker credential autofill; optional.
DESKTOP_TOUCH_DISABLE_FUKUWARAI_V2
Set to '1' to hide desktop_discover/desktop_act (V2 kill switch); optional.
DESKTOP_TOUCH_ALLOWLIST
Path to a JSON allowlist of executables permitted for workspace_launch; optional.
npx -y @harusame64/desktop-touch-mcp.chrome.exe --remote-debugging-port=9222 --user-data-dir=C:\tmp\cdp.npx -y @harusame64/desktop-touch-mcp --http (default port 23847).{
"mcpServers": {
"desktop-touch": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@harusame64/desktop-touch-mcp"
]
}
}
}
Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.
{
"servers": {
"desktop-touch": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@harusame64/desktop-touch-mcp"
]
}
}
}
Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).
claude mcp add desktop-touch -- npx -y @harusame64/desktop-touch-mcp
Run it in a terminal; replace any <…> placeholders with your own values first.
After starting Claude CLI, the tool list should show 32 tools including desktop_discover, screenshot, and server_status; calling server_status confirms native engine health, or simply ask the AI to "take a screenshot and describe my desktop" to prove the connection works.
Once connected, you can ask your AI assistant things like:
No matching tools
Listed from the project's documentation, not tested by this site.
Desktop Touch MCP is a computer-use MCP server for Windows 10/11. It provides 32 tools covering screenshots, UI Automation, Chrome CDP, keyboard/mouse input, and terminal control. Its core design uses semantic discover-then-act targeting (entities with leases instead of pixel coordinates) and per-action perception guards to prevent wrong-window actions. Under the hood is a native Rust engine (UIA focus query in 2 ms) with transparent PowerShell fallback. It includes Key Locker for secure SSH/sudo password autofill. Compatible with Claude, Cursor, and other MCP clients. Licensed under MIT.
Upstash's official server providing up-to-date third-party library docs for AI coding assistants
AI-powered NPM package analysis MCP server
An independent control layer that gives AI coding agents budgets, brakes, and receipts
GitHub's official MCP server for managing repos, issues, PRs, and workflows via natural language
Source revision 4368a8f91d5a Data synced 2026-10-19 Read the FMRS scoring method