go-mcp-computer-use

MCP server for Windows desktop computer use

Download as .zip Download as .tar.gz View on GitHub

ADR-002: Windows Desktop Automation Strategy

Status

Accepted (updated 2026-06-27: now also uses native COM/WinRT)

Context

We need to control the Windows desktop (screenshot, mouse, keyboard) from Go. Options:

  1. Go + syscall/windows — Direct Win32 API calls via golang.org/x/sys/windows
  2. Go + COM via go-ole — UI Automation COM interface for richer introspection
  3. PowerScripts invoked from Go — Shell out to PowerShell for automation commands
  4. Go + CGO with MS UI Automation — C bindings to Windows UIAutomationCore.dll

Key requirements:

Decision

Use Go + syscall/windows with direct Win32 API calls, plus native COM where beneficial:

CGO is required for ONNX ML inference via Zig cc. All builds include the full toolset. The Go-native transformer engine (action prediction, ml/ module) does NOT require CGO — it’s pure Go via Gorgonia.

Consequences