
guscatalano/deskhand
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Control your windows computer with an MCP server and website
Обзор
A Windows desktop-automation server that exposes , , , , on-screen , and over (stdio and Streamable-HTTP) and a — with a real-PC and protocol-level reach, all behind a and an append-only . Built on . (See Deskhand.html for the full architecture doc.) Both hosts and the fleet are thin shells over one governed backend (IAutomationBackend), so they expose identical capabilities and record to the same audit trail. The current surface is , , and . All five design phases are in this build: the single-machine path (in-session UIA + capture + input), (UAC / lock / logon, via a SYSTEM helper), , the , and . Two things are capture-only / not fully exercised and called out where they appear: driving input on the secure desktop, and the protocol-level RDP backend's live input path (needs a reachable RDP host to validate). Deskhand can view the secure desktop, and ships an opt-in, best-effort path to drive it.
README
Показан фрагмент оригинального README. Открыть оригинал.
Deskhand — Windows desktop automation for AI agents
A Windows desktop-automation server that exposes UI Automation, screen capture, synthetic
input, OCR, on-screen vision, and system control over MCP (stdio and Streamable-HTTP)
and a localhost HTTP API, all behind a kill switch and an append-only audit log. Built on
.NET 9 + FlaUI (UIA3). (See Deskhand.html for the full architecture doc.)
Both hosts (HTTP and MCP) are thin shells over one governed backend (IAutomationBackend), so they
expose identical capabilities and record to the same audit trail. The current surface is ~136
MCP tools and ~161 HTTP routes.
The build covers the single-machine Default desktop path (in-session UIA + capture + input),
secure-desktop capture (UAC / lock / logon, via a SYSTEM helper), and governance. One thing is
capture-only and called out where it appears: driving input on the secure desktop — a hard Windows
boundary (capture works; synthetic input is refused even for a SYSTEM, uiAccess process).
Secure-desktop input: Deskhand can view the secure desktop, and ships an opt-in, best-effort path to drive it. Testing showed the UAC consent prompt cannot be driven by synthetic input by any mechanism we can deploy on demand (SYSTEM, a self-granted
uiAccesstoken, or a signeduiAccessbinary all hitACCESS_DENIED) — it’s a deliberate Windows boundary. To automate a UAC approval, move the prompt off the secure desktop with/uac/config {promptOnSecureDesktop:false}(one-click in the dashboard). Full write-up: docs/secure-desktop-input.md.
Deskhand vs. a CUA driver
A CUA driver (computer-using agent — Anthropic Computer Use, OpenAI’s Computer-Using Agent /
Operator, trycua/cua, and similar) drives a machine the way a person looks at a screen: the model
gets a screenshot, reasons over the pixels, and emits click(x, y) / type(...) actions. It is
OS-agnostic and needs no knowledge of the app — but every step costs a vision round-trip, and the click
lands wherever the model guessed the pixel was.
Deskhand starts from the opposite end — structure before pixels — and keeps the pixel path as a fallback rather than the whole story. It is not itself an agent loop; it’s the tool surface you point your own agent at (over MCP or HTTP).
| CUA driver (pixel/vision) | Deskhand | |
|---|---|---|
| Perception | Screenshot every step; model reads pixels | UIA accessibility tree first (/uia/tree, find, element_from_point); vision (OCR, template match, Set-of-Mark) as a complement |
Установка
npx @modelcontextprotocol/inspector "C:\Program Files\Deskhand\mcp\deskhand-mcp.exe"Конфигурация
{
"mcpServers": {
"deskhand": {
"command": "C:\\Users\\crimson\\source\\repos\\uia_mcp\\src\\Deskhand.Mcp\\bin\\x64\\Release\\net9.0-windows10.0.19041.0\\deskhand-mcp.exe"
}
}
}