autoit-mcp
Windows GUI automation MCP server for Claude Code, enabling deterministic desktop app control via 32 tools including window management, input, pixel search, and file verification, leveraging the AutoIt backend.
README
autoit-mcp (portable)
Windows GUI-automation MCP server for Claude Code — drive any desktop app deterministically (launch, wait for windows, click controls/menus/coords, type keys, read text, search pixels) and prove results on disk (a saved/exported file appearing = proof), instead of relying on screenshots.
Backed by the official AutoItX3 DLL (via PyAutoIt, loaded directly — no COM
registration). A bundled copy of full AutoIt v3 also enables the .au3
escape hatch (UDFs, _ScreenCapture, registry, complex macros) and Aut2Exe
compile. 32 tools, all prefixed au_.
What's in this folder
autoit-mcp/
server.py the MCP server (single file)
requirements.txt mcp + PyAutoIt
install.ps1 one-shot setup (venv + deps + skill + .mcp.json snippet)
autoit3/ bundled full AutoIt (AutoIt3_x64.exe, AutoItX, Aut2Exe, Include)
skill/autoit-gui/ bundled Claude Code SKILL (standalone run+verify+screenshot)
README.md this file
.gitignore
(.venv/ logs/ mcp.snippet.json created by install.ps1 at runtime)
~12 MB. Self-contained except for Python (see prerequisites).
The bundled skill (autoit-gui)
This package ships its own Claude Code skill so a fresh machine is fully
self-sufficient — it does NOT rely on the run / verify / screen-capture
skills (which won't exist there). The skill teaches the model to launch an app,
drive menus/controls, take a screenshot via the bundled _ScreenCapture UDF,
and prove a save/export by checking the file on disk. install.ps1 copies it
to %USERPROFILE%\.claude\skills\autoit-gui\ automatically; restart Claude Code to
load it. (To install manually, copy skill\autoit-gui\ there yourself.)
Prerequisites on the new machine
- Windows (uses Win32 + AutoItX).
- Python 3.9+ on PATH (python.org — tick Add Python to PATH). That's the only thing not bundled.
- Claude Code (the host that loads MCP servers).
Install (3 steps)
- Copy this whole
autoit-mcp/folder anywhere on the new machine (e.g.C:\tools\autoit-mcp). - Open PowerShell in the folder and run:
It creates a localpowershell -ExecutionPolicy Bypass -File .\install.ps1.venv, installs deps, smoke-tests (TOOLS 32), and writesmcp.snippet.jsonwith the correct absolute paths for this machine. - Merge that snippet into your project's
.mcp.json(undermcpServers), e.g.:Then restart Claude Code and approve the{ "mcpServers": { "autoit": { "command": "C:\\tools\\autoit-mcp\\.venv\\Scripts\\python.exe", "args": ["C:\\tools\\autoit-mcp\\server.py"] } } }autoitserver in/mcp.
No global install, no admin rights, no AutoItX COM registration needed.
Verify it loaded
In Claude Code after restart, the autoit server should expose 32 au_* tools.
Quick check from the model: call au_autoit_info → should report
run_au3_available: true and point at …\autoit3\AutoIt3_x64.exe (bundled).
Tools (32, prefix au_)
| Group | Tools |
|---|---|
| Process | au_run, au_process_close, au_process_exists, au_process_wait_close |
| Window | au_win_wait, au_win_exists, au_win_activate, au_win_get_pos, au_win_get_text, au_win_get_state, au_win_set_state, au_win_close, au_list_windows |
| Input | au_send(keys, raw), au_mouse_click(x,y,…), au_mouse_move(x,y) |
| Menu/Control | au_win_menu_select, au_control_click, au_control_send, au_control_set_text, au_control_get_text, au_statusbar_get_text, au_set_option |
| Clipboard | au_clip_get, au_clip_put |
| Pixels (chromeless UIs) | au_pixel_get_color, au_pixel_search |
| Disk proof | au_file_exists, au_wait_file |
| Full AutoIt | au_run_au3(script,timeout), au_compile_au3(script_path,out_exe), au_autoit_info() |
Defaults: DPI-aware (coords = physical pixels), WinTitleMatchMode=2 (window
title matched as a substring anywhere). Every tool returns structured JSON
({ok:true,…} / {ok:false,error}) and never crashes the call. Calls are logged
to logs/YYYY-MM-DD.log.
Design choices (vs. a generic "generate .au3" MCP)
- Direct AutoItX DLL calls, not COM
Dispatch("AutoItX3.Control")(COM needsregsvr32; the DLL doesn't). - No temp
.au3for ordinary actions — direct calls are faster + sturdier..au3is the escape hatch only (au_run_au3), for what AutoItX lacks.
Gotchas learned on real targets
au_win_menu_selectonly works on native Win32/MFC menus. Many modern apps (Qt / WPF / Electron / CEF) use owner-drawn menus thatWinMenuSelectItemcan't see → it no-ops. For those use accelerators:au_send("{ALTDOWN}{ALTUP}")then"f"then"a"= Save As. Keepau_win_menu_selectfor classic Win32 apps.- CEF/Qt welcome/home screens have no native controls and reflow on resize →
coordinate clicks are fragile. Prefer launching with a document argument, or
use
au_pixel_searchto find a button. - The Win11 file dialog ignores classic
Edit1/Button1; instead activate it,au_send("^a"),au_send(path, raw=True),au_send("{ENTER}"). - Prove success with
au_wait_file(out_path)rather than a screenshot.
Full AutoIt notes
- The bundled
autoit3/makesau_run_au3+au_compile_au3work out of the box. The server auto-detects it (no env var needed); you can override withAUTOIT3_EXEorAUTOIT3_DIR. - ImageSearch is a 3rd-party UDF (not part of standard AutoIt). To enable it,
drop
ImageSearch.au3+ its DLL intoautoit3/Include/, then call it viaau_run_au3. - If you'd rather not bundle AutoIt, delete
autoit3/: the 31 DLL-based tools still work; onlyau_run_au3/au_compile_au3become unavailable.
Uninstall
Delete the folder. (Nothing is written outside it; no registry, no PATH changes.)
Remove the autoit block from your .mcp.json.
Troubleshooting
Python 3 not foundduring install → install Python, reopen PowerShell, retry.- Server doesn't appear in
/mcp→ ensure the.mcp.jsonpaths match the snippet exactly (absolute, double backslashes) and that you restarted Claude Code. au_run_au3returns "AutoIt3.exe not found" → keepautoit3/next toserver.py, or setAUTOIT3_EXEto a fullAutoIt3_x64.exe.- Coordinates land in the wrong place → the host app may be per-monitor DPI
scaled; the server is system-DPI-aware. Use
au_win_get_posto anchor clicks relative to the window, or useau_pixel_search.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.