A macOS MCP server for automating desktop apps, windows, UI elements, files, browsers, and system actions through Accessibility APIs.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We ran the install command below but it didn't respond within our test window β this can mean a slow first-time install rather than a real problem.
uvx macos-mcpNo response to initialize.
This is an experimental automated check and can have false negatives β missing environment variables, a slow cold install, etc. It doesnβt necessarily mean somethingβs wrong. Last checked 7d ago.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MacOS MCP.
ClickClick at coordinates with support for left, right, and double-click
TypeType text at cursor position, optionally clearing existing text
ScrollScroll vertically or horizontally in focused window or regions
MoveMove mouse pointer or drag to coordinates
ShortcutPress keyboard shortcuts (Cmd+C, Cmd+Tab, etc.)
AppLaunch applications, manage windows (resize/move), switch between apps. Supports app names and bundle IDs
macOS-MCP is a lightweight, open-source Model Context Protocol server that bridges AI agents and the macOS operating system. It enables seamless automation of macOS through LLMs via tasks such as file navigation, application control, UI interaction, browser automation, and system operations.
Works with Any LLM (Vision Optional)
Unlike traditional automation tools, macOS-MCP doesn't require computer vision, fine-tuned models, or specialized setup. Works seamlessly with any LLMβClaude, GPT, Gemini, or others.
Native macOS Integration
Interacts natively with macOS UI elements using the Accessibility API. Opens apps, controls windows, simulates user input, and captures desktop state without workarounds.
Rich Toolset for Automation
Complete toolkit for keyboard/mouse operations, window management, UI state capture, interactive element extraction from the accessibility tree, and AppleScript execution.
Lightweight and Open-Source
Minimal dependencies with full source code available under MIT license. Easy setup and deployment.
Smart Context Awareness
Automatically detects application state (Launchpad, Control Center, Spotlight). Scans menu bar, dock, desktop, and system UI elements intelligently.
Customizable and Extensible
Easily extend with custom tools or modify behavior to suit your specific automation needs.
pip install uv or curl -LsSf https://astral.sh/uv/install.sh | shRun the server directly:
Run it as a background service that starts now and at every login:
This installs a launchd Launch Agent at ~/Library/LaunchAgents/com.macos-mcp.server.plist.
Use macos-mcp uninstall to remove it. Logs are written to ~/.macos-mcp/server.log
and ~/.macos-mcp/server.error.log.
| Transport | Flag | Use Case |
|---|---|---|
stdio (default) | --transport stdio | Direct connection from MCP clients like Claude Desktop, Cursor, etc. |
sse | --transport sse --host HOST --port PORT | Network-accessible via Server-Sent Events |
streamable-http | --transport streamable-http --host HOST --port PORT | Network-accessible via HTTP streaming (recommended for production) |
macOS-MCP requires Accessibility and Screen Recording permissions to function properly.
/usr/bin/python3 or the Python version managed by UV)~/.local/bin/uv if installed locally, or the Python environment UV manages)For uvx users: Grant permissions to your terminal application and Python, as uvx runs Python packages from UV's cache.
If the interpreter binary is greyed out / unselectable in the "+" picker (a known issue with UV-managed Python symlinks, e.g. .venv/bin/python3.12 β ~/.local/share/uv/python/...): don't try to add it manually. Instead, just start the server β since v0.3.10 it calls AXIsProcessTrustedWithOptions with the prompt option on startup, which asks macOS to show its native consent dialog and auto-register the running process for you. Approve that dialog and restart the server.
If you're launched as a subprocess by a parent that already holds Accessibility access (e.g. certain Claude Desktop configurations), and permission checks still fail spuriously, set MACOS_MCP_SKIP_PERMISSION_CHECK=1 to downgrade the check to a warning instead of exiting.
The Snapshot tool requires Screen Recording permissions to capture screenshots:
Note: If the Snapshot tool fails, verify both permissions are granted in System Settings.
Install Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
Claude Desktop's claude_desktop_config.json only supports stdio-based server
entries. To connect to a running macOS-MCP HTTP server (e.g. one started with
macos-mcp install --transport streamable-http), use
mcp-remote as a stdio-to-HTTP
bridge.
This is especially useful when running multiple Claude Desktop instances
(e.g. via Parall) β a single persistent HTTP server
handles all of them, avoiding the overhead of spawning a separate macos-mcp
process per session.
1. Start the HTTP server (one-time setup):
2. Configure Claude Desktop to connect via mcp-remote:
3. Restart Claude Desktop.
If you have multiple Claude Desktop instances (e.g. Parall clones), add the
same mcpServers entry to each instance's claude_desktop_config.json. All
instances will share the single background server.
A migration script is included for bulk reconfiguration β see
scripts/stdio-to-http-reconfig.sh.
With authentication (recommended when binding to 0.0.0.0):
Navigate to ~/.gemini and open settings.json
Add the server config:
Install Claude Code
Add to your project configuration or use the MCP marketplace integration
Pi does not ship with built-in MCP support, but macOS-MCP can be installed as a Pi package. The package starts this MCP server over stdio and exposes convenient Pi tools that wrap the existing macOS-MCP tools.
One-line global setup:
After install, restart Pi or run:
Try without installing:
Local checkout setup:
If you copied only the extension into another Pi project, run Pi from the macOS-MCP checkout or set:
The extension exposes these Pi tools:
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/macos-mcp)<a href="https://allmcps.com/mcp/macos-mcp"><img src="https://allmcps.com/api/badge/macos-mcp?style=directory" alt="MacOS MCP on AllMCPs" /></a>