Macos-MCP
About
Macos-MCP is a lightweight, open‑source Model Context Protocol server that bridges AI agents and the macOS operating system. It enables LLMs to automate tasks such as file navigation, application control, UI interaction, browser automation, and system operations on macOS.
Details
- Author
- CursorTouch
- Downloads
- 294
- Categories
- Other
Jump to
- Works with any LLM; no computer vision required.
- Native macOS integration via the Accessibility API.
- Rich toolset for keyboard, mouse, window, and UI automation.
- Lightweight, open-source, and easy to deploy.
- Smart context awareness of docks, menus, and system UI.
- Customizable and extensible with additional tools.
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Macos-MCPCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install Python 3.11+, the UV package manager, and ensure macOS 12+. Run the server with uvx macos-mcp (stdio transport) or with --transport sse or --transport streamable-http for network access. Optionally install it as a background service using macos-mcp install. Grant Accessibility and Screen Recording permissions in System Settings. Integrate with MCP clients like Claude Desktop, Gemini CLI, Claude Code, or Pi Agent by adding the uvx macos-mcp command to the client’s MCP server configuration.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"macos-mcp": {
"macos-mcp": {
"command": "uvx",
"args": [
"macos-mcp"
]
}
}
}
}
McpServers
{
"macos-mcp": {
"command": "uvx",
"args": [
"macos-mcp"
]
}
}
Config File (~/.macos-mcp/config.toml)
Instead of passing flags every time, store your configuration in ~/.macos-mcp/config.toml. CLI flags always override config file values.
Search order:
1. --config /path/to/config.toml
2. ~/.macos-mcp/config.toml
stdio — local only, no security needed:
[server]
transport = "stdio"
SSE — network access with auth and IP restriction:
[server]
transport = "sse"
host = "0.0.0.0"
port = 8000
auth_key = "your-secret-key"
[security]
ip_allowlist = ["192.168.1.0/24"]
Streamable HTTP — network access with auth and TLS (recommended for production):
[server]
transport = "streamable-http"
host = "0.0.0.0"
port = 8000
auth_key = "your-secret-key"
ssl_certfile = "cert.pem" # resolved relative to ~/.macos-mcp/
ssl_keyfile = "key.pem"
[security]
ip_allowlist = ["192.168.1.0/24"]
oauth_client_id = "my-client" # optional — enables OAuth 2.0 + PKCE
oauth_client_secret = "my-secret"
[tools]
exclude = ["Shell", "Scrape"] # disable specific tools
Available tool names: App, Shell, Snapshot, Click, Type, Scroll, Move, Shortcut, Wait, Scrape, Notification
Place your cert and key files in the same directory:
~/.macos-mcp/
├── config.toml
├── cert.pem
└── key.pem
Generate a self-signed cert directly into that directory:
mkdir -p ~/.macos-mcp
openssl req -x509 -newkey rsa:4096 \
-keyout ~/.macos-mcp/key.pem \
-out ~/.macos-mcp/cert.pem \
-days 365 -nodes
---
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



