Macos-MCP

by CursorTouch

294 downloads
Not rated
GitHub

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

- 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:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Macos-MCP
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. 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

---

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.