Drew's Mac Control MCP Server
An MCP server that lets an LLM inspect and drive macOS apps and the iOS Simulator through the Accessibility API — click, type, read the element hierarchy, capture screenshots, pick menu items, drive the Simulator.
This package is a thin wrapper. The server itself is a signed, notarized macOS app; the wheel
carries that bundle and installs it to ~/Applications on first run, then hands off to the
MacControlRelay binary inside it. Later releases replace the installed app automatically, so
uvx upgrades keep the app in step with the wrapper.
Install
uvx drews-mac-control-mcp --setup
That installs the app, opens it so macOS prompts for permissions, and prints the client registration command. Grant Accessibility — and Screen Recording if you want screenshots — in System Settings ▸ Privacy & Security.
Then point your MCP client at the relay:
claude mcp add --scope user maccontrol ~/Applications/MacControlMCP.app/Contents/Helpers/MacControlRelay
codex mcp add maccontrol -- ~/Applications/MacControlMCP.app/Contents/Helpers/MacControlRelay
Requirements
macOS 14 or later. The wheel is tagged macosx_14_0_universal2, so pip and uv decline to install
it anywhere else.
Source
https://github.com/drewster99/drews-mac-control-mcp — including how to build and install from a checkout instead, which needs Xcode and your own Developer ID.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file drews_mac_control_mcp-0.2.39-py3-none-macosx_14_0_universal2.whl.
File metadata
- Download URL: drews_mac_control_mcp-0.2.39-py3-none-macosx_14_0_universal2.whl
- Upload date:
- Size: 3.8 MB
- Tags: Python 3, macOS 14.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37fff4f2f11303f01a05df88841b33373d8e9886d4aedcb3bbbe468231a4d1bb
|
|
| MD5 |
b89c3c5964b25d9522218a9df38df49c
|
|
| BLAKE2b-256 |
714dc579334679e7428798ffc7897a22ffff92d0021bed63956a29fea4267933
|