autoit-mcp

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.

Category
Visit Server

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)

  1. Copy this whole autoit-mcp/ folder anywhere on the new machine (e.g. C:\tools\autoit-mcp).
  2. Open PowerShell in the folder and run:
    powershell -ExecutionPolicy Bypass -File .\install.ps1
    
    It creates a local .venv, installs deps, smoke-tests (TOOLS 32), and writes mcp.snippet.json with the correct absolute paths for this machine.
  3. Merge that snippet into your project's .mcp.json (under mcpServers), e.g.:
    {
      "mcpServers": {
        "autoit": {
          "command": "C:\\tools\\autoit-mcp\\.venv\\Scripts\\python.exe",
          "args": ["C:\\tools\\autoit-mcp\\server.py"]
        }
      }
    }
    
    Then restart Claude Code and approve the autoit server 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 needs regsvr32; the DLL doesn't).
  • No temp .au3 for ordinary actions — direct calls are faster + sturdier. .au3 is the escape hatch only (au_run_au3), for what AutoItX lacks.

Gotchas learned on real targets

  • au_win_menu_select only works on native Win32/MFC menus. Many modern apps (Qt / WPF / Electron / CEF) use owner-drawn menus that WinMenuSelectItem can't see → it no-ops. For those use accelerators: au_send("{ALTDOWN}{ALTUP}") then "f" then "a" = Save As. Keep au_win_menu_select for 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_search to 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/ makes au_run_au3 + au_compile_au3 work out of the box. The server auto-detects it (no env var needed); you can override with AUTOIT3_EXE or AUTOIT3_DIR.
  • ImageSearch is a 3rd-party UDF (not part of standard AutoIt). To enable it, drop ImageSearch.au3 + its DLL into autoit3/Include/, then call it via au_run_au3.
  • If you'd rather not bundle AutoIt, delete autoit3/: the 31 DLL-based tools still work; only au_run_au3/au_compile_au3 become 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 found during install → install Python, reopen PowerShell, retry.
  • Server doesn't appear in /mcp → ensure the .mcp.json paths match the snippet exactly (absolute, double backslashes) and that you restarted Claude Code.
  • au_run_au3 returns "AutoIt3.exe not found" → keep autoit3/ next to server.py, or set AUTOIT3_EXE to a full AutoIt3_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_pos to anchor clicks relative to the window, or use au_pixel_search.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured