An MCP server that lets Claude control any macOS application through accessibility APIs. Structured data from the accessibility tree — not screenshots.
$ claude "Open Safari and search for MCP servers"
▸ open_application — Opening Safari...
✓ Safari launched (PID 1847)
▸ click_and_traverse — Clicking address bar at (580, 52)
✓ Diff: +1 focused, 3 modified
▸ type_and_traverse — Typing "MCP servers macOS"
✓ 14 chars typed, +8 suggestions
▸ press_key_and_traverse — Pressing Return
✓ Page loaded — 47 elements, saved to /tmp/macos-use/safari_1847.json
Tools
Launch any app by name, bundle ID, or path
Click at precise coordinates, see what changed
Type text into any field
Keyboard shortcuts with modifier support
Scroll in any direction
Re-read current UI state
Why macos-use
Structured semantic data instead of pixels. Faster, more reliable, and uses less tokens.
Compact JSON summaries instead of dumping full trees into context. Your agent stays focused.
See exactly what changed after each action — added, removed, and modified elements.
Safari, Slack, Xcode, Finder, Terminal — if it has a UI, macos-use can control it.
Setup
Clone the repo and build the Swift binary
Add the server to your Claude Desktop config
Tell Claude to open apps, click buttons, fill forms — anything
Installation
$ git clone https://github.com/mediar-ai/mcp-server-macos-use
$ cd mcp-server-macos-use
$ swift build -c release{
"mcpServers": {
"macos-use": {
"command": "<path-to-binary>/MacosUseMCP"
}
}
}