harusame64 avatar

Desktop Touch Mcp

harusame64/desktop-touch-mcp

A full-featured computer-use server that gives Claude direct control over Windows 10/11 desktops through 29 tools spanning UI Automation, Chrome DevTools Protocol, keyboard/mouse control, and terminal operations. The core innovation is a discover-then-act pattern: instead of guessing pixel coordinates, you call desktop_discover to get short-lived entity leases, then desktop_act operates on semantic targets with perception guards that verify window identity before input lands. Under the hood it's a Rust native engine (2ms UIA queries, SSE2 image diffing) with transparent PowerShell fallback. Includes Set-of-Marks visual OCR for non-accessible apps, reactive perception graphs to reduce screenshot round-trips, and 1:1 coordinate mode so image pixels map directly to screen positions. Ships with auto-dock CLI, full CJK support via GetWindowTextW, and a failsafe that kills the server when you mouse to the top-left corner.

GitHub stars
25
tools
32
transport
STDIO
env vars
8
last updated
Nov 11, 2026

Tools

32 tools

Public tool metadata for what this MCP can expose to an agent.

desktop_discoverObserve the desktop. Returns interactive entities with leases (UIA, CDP, Terminal, Visual SoM).

Observe the desktop. Returns interactive entities with leases (UIA, CDP, Terminal, Visual SoM).

No parameter schema in public metadata yet.

desktop_actPerform actions (click, type, set a value, select) on entities via lease validation. Returns semantic diffs — plus an optional `roiCapture` (changed-region PNG + next-target preview) on visual-only targets.

Perform actions (click, type, set a value, select) on entities via lease validation. Returns semantic diffs — plus an optional `roiCapture` (changed-region PNG + next-target preview) on visual-only targets.

No parameter schema in public metadata yet.

desktop_stateLightweight check of focus, active window, cursor, and Auto-Perception attention signal.

Lightweight check of focus, active window, cursor, and Auto-Perception attention signal.

No parameter schema in public metadata yet.

screenshotMulti-mode capture: `detail='text'` (UIA/OCR), `diffMode` (P-frame), `dotByDot` (1:1), and `background`. Returns a cheap `screenshot://by-ref/{id}` link to the saved image instead of inlining pixels every time.

Multi-mode capture: `detail='text'` (UIA/OCR), `diffMode` (P-frame), `dotByDot` (1:1), and `background`. Returns a cheap `screenshot://by-ref/{id}` link to the saved image instead of inlining pixels every time.

No parameter schema in public metadata yet.

screenshot_queryInspect and prune the on-disk screenshot cache behind the by-ref links: `screenshot_query` lists saved captures without re-reading pixels.

Inspect and prune the on-disk screenshot cache behind the by-ref links: `screenshot_query` lists saved captures without re-reading pixels.

No parameter schema in public metadata yet.

screenshot_gcReclaims space in the screenshot cache by retention policy (dry-run by default).

Reclaims space in the screenshot cache by retention policy (dry-run by default).

No parameter schema in public metadata yet.

workspace_snapshotInstant session orientation: all window thumbnails + UI summaries in one call.

Instant session orientation: all window thumbnails + UI summaries in one call.

No parameter schema in public metadata yet.

server_statusDiagnostic check for native engine health and feature activation.

Diagnostic check for native engine health and feature activation.

No parameter schema in public metadata yet.

keyboardSend keyboard input. Supports background input (WM_CHAR) and IME-safe clipboard bypass.

Send keyboard input. Supports background input (WM_CHAR) and IME-safe clipboard bypass.

No parameter schema in public metadata yet.

mouse_clickPrecision coordinate-based interaction with homing and force-focus protection.

Precision coordinate-based interaction with homing and force-focus protection.

No parameter schema in public metadata yet.

mouse_dragPrecision coordinate-based drag interaction with homing and force-focus protection.

Precision coordinate-based drag interaction with homing and force-focus protection.

No parameter schema in public metadata yet.

scrollMulti-strategy: `raw` (notches), `to_element`, `smart` (virtual lists), and `capture` (stitch).

Multi-strategy: `raw` (notches), `to_element`, `smart` (virtual lists), and `capture` (stitch).

No parameter schema in public metadata yet.

click_elementLegacy UIA-based click by name/ID (fallback when entities are unavailable).

Legacy UIA-based click by name/ID (fallback when entities are unavailable).

No parameter schema in public metadata yet.

browser_openIdempotent debug-mode launch of Chrome/Edge/Brave.

Idempotent debug-mode launch of Chrome/Edge/Brave.

No parameter schema in public metadata yet.

browser_navigateReliable navigation in a CDP-controlled browser.

Reliable navigation in a CDP-controlled browser.

No parameter schema in public metadata yet.

browser_clickHigh-level DOM click interaction stable across repaints and framework re-renders.

High-level DOM click interaction stable across repaints and framework re-renders.

No parameter schema in public metadata yet.

browser_fillHigh-level DOM form-fill interaction stable across repaints and framework re-renders.

High-level DOM form-fill interaction stable across repaints and framework re-renders.

No parameter schema in public metadata yet.

browser_formHigh-level DOM form interaction stable across repaints and framework re-renders.

High-level DOM form interaction stable across repaints and framework re-renders.

No parameter schema in public metadata yet.

browser_evalDeep inspection via `js` (scripting), `dom` (HTML), and `appState` (SPA data extraction).

Deep inspection via `js` (scripting), `dom` (HTML), and `appState` (SPA data extraction).

No parameter schema in public metadata yet.

browser_overviewSemantic discovery of the browser page.

Semantic discovery of the browser page.

No parameter schema in public metadata yet.

browser_searchGrep-like DOM search.

Grep-like DOM search.

No parameter schema in public metadata yet.

browser_locatePixel-accurate coordinate lookup in the browser page.

Pixel-accurate coordinate lookup in the browser page.

No parameter schema in public metadata yet.

terminalUnified command execution: `run` (send + wait + read), `read` (OCR/UIA), and `send`. `run` completion modes: `quiet`, `pattern`, and `exit`.

Unified command execution: `run` (send + wait + read), `read` (OCR/UIA), and `send`. `run` completion modes: `quiet`, `pattern`, and `exit`.

No parameter schema in public metadata yet.

wait_untilEfficient server-side polling for window, focus, text, or URL state changes.

Efficient server-side polling for window, focus, text, or URL state changes.

No parameter schema in public metadata yet.

window_dockWindow management: `pin` (always-on-top), `unpin`, `dock` (corner snap), and `focus`.

Window management: `pin` (always-on-top), `unpin`, `dock` (corner snap), and `focus`.

No parameter schema in public metadata yet.

focus_windowWindow management: focuses a window.

Window management: focuses a window.

No parameter schema in public metadata yet.

workspace_launchLaunch apps and auto-detect new HWNDs (supports localized titles).

Launch apps and auto-detect new HWNDs (supports localized titles).

No parameter schema in public metadata yet.

run_macroBatch up to 50 operations into a single round-trip for maximum efficiency.

Batch up to 50 operations into a single round-trip for maximum efficiency.

No parameter schema in public metadata yet.

clipboardSystem-level text exchange.

System-level text exchange.

No parameter schema in public metadata yet.

notification_showShows user alerts.

Shows user alerts.

No parameter schema in public metadata yet.

key_lockerManage credentials the terminal autofills for you (SSH key passphrases, sudo / login passwords), with secrets stored encrypted on this machine and never shown to the assistant.

Manage credentials the terminal autofills for you (SSH key passphrases, sudo / login passwords), with secrets stored encrypted on this machine and never shown to the assistant.

No parameter schema in public metadata yet.

excelAuthor and run Excel VBA macros via COM. `action='run_vba'` writes a macro into a managed Trusted Location and runs it; `action='check_access_vbom'` is a read-only preflight.

Author and run Excel VBA macros via COM. `action='run_vba'` writes a macro into a managed Trusted Location and runs it; `action='check_access_vbom'` is a read-only preflight.

No parameter schema in public metadata yet.

Sponsors

Configuration

DESKTOP_TOUCH_AUTO_GUARD

Set to '0' to disable automatic action guards (reverts to v0.11.12 behavior).

DESKTOP_TOUCH_PERCEPTION_RESOURCES

Set to '1' to enable MCP perception resources.

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 (no auto-dormancy).

DESKTOP_TOUCH_DIAGNOSTIC_LOG_DISABLE

Set to '1' to disable the JSONL diagnostic event log (issue #365 Phase 2).

DESKTOP_TOUCH_DIAGNOSTIC_LOG_PATH

Override path for the diagnostic event log.

DESKTOP_TOUCH_DIAGNOSTIC_LOG_MAX_BYTES

Size in bytes at which the diagnostic event log rolls over to diagnostic.log.1 (default 67108864 = 64 MiB). Two rolled generations are kept. Values below 1 MiB are raised to 1 MiB and values above 1 GiB are lowered to 1 GiB; anything that is not a positive whole number falls back

DESKTOP_TOUCH_RESOLVE_LOG_RAW

Set to '1' to record window titles and title queries in clear in the diagnostic event log. Off by default: titles are recorded as a short hash plus their length, because a title can contain a file name, a mail subject, or a browser page title.

Readme

desktop-touch-mcp

desktop-touch-mcp MCP server

日本語

Computer-use MCP server for Windows. Lets Claude, Cursor, or any MCP client see and operate your Windows 10/11 desktop — screenshots, UI Automation, Chrome CDP, keyboard / mouse, terminal — with semantic discover-then-act targeting that avoids pixel-coordinate guessing, and per-action perception guards that catch wrong-window typing before it happens.

npx -y @harusame64/desktop-touch-mcp

32 tools, native Rust engine (UIA in 2 ms), zero-config PowerShell fallback, full CJK support, MIT licensed. Add the snippet above to your Claude / Cursor / VS Code Copilot config and Claude can drive Notepad, Excel, Chrome, Windows Terminal, and any other app on your machine.


View the full README on GitHub

Details

Repository
github.com/harusame64/desktop-touch-mcp
Category
Web & Browser Automation
Package
@harusame64/desktop-touch-mcp
Transport
STDIO
Registry
MCP registry, active

Related Web & Browser Automation MCP servers

View all
1codelipenghui avatarMcp Matcodelipenghui/mcp-matHeadless Eclipse MAT MCP server for Java heap dump analysis19stars
2browserless avatarBrowserlessbrowserless/browserless-mcpOfficial Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.19stars
3kaael1 avatarMcp Power Automatekaael1/mcp-power-automateLocal MCP for Power Automate with browser-backed auth, target locking, review diff, and rollback.18stars
4multiplex-ai avatarMuggle Worksmultiplex-ai/muggle-ai-worksAcceptance test agent for coding agents: real-browser tests, with screenshots on the PR.16stars
5kimimgo avatarviznoirkimimgo/viznoirCinema-quality science visualization for AI agents — headless VTK via MCP.13stars
6cap-of-tea avatarGDD - AI-Controlled Browser Farmcap-of-tea/gddAI-controlled browser farm: N isolated Chromium instances with 36 MCP tools10stars