# mac-control-mcp

Gives an MCP client tools to operate macOS apps and their interfaces. Useful when an agent needs to inspect a screen, handle browser tabs, or interact with windows.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 18
- Author: AdelElo13
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/AdelElo13/mac-control-mcp
- Updated: 2026-10-16
- HTML: https://affpapa.org/en/nevibecode/mcp/mac-control-mcp

## What it does

Written in Swift, the server exposes 153 tools for macOS automation. An agent can inspect and change app accessibility trees, operate Safari and Chrome, click controls, type, and manage windows. Screen capture and on-screen text recognition are included, along with clipboard controls.

It can also launch or quit apps, search Spotlight, and switch dark mode. macOS 14.0 or later is required. On the first tool call, macOS asks for Screen Recording, Accessibility, and Apple Events access. Grant these to the client app that starts the server; without them, some interface actions won't work.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add mac-control-mcp -- npx -y mac-control-mcp
```

### Codex

**Platform CLI**
```bash
codex mcp add mac-control-mcp -- npx -y mac-control-mcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mac-control-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "mac-control-mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "mac-control-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "mac-control-mcp"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add mac-control-mcp npx -y mac-control-mcp
```

## When to use it
- inspect an app's accessibility tree
- locate a UI element and trigger an action
- navigate tabs in Safari or Chrome
- capture a window and read its visible text
- find an app with Spotlight and launch it

## Example prompts
- Find the send button in the open app and click it.
- Open a new Safari tab and visit the page I name.
- Capture the active window and read the text on screen.

## Similar
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [AIHawk](https://affpapa.org/en/nevibecode/mcp/aihawk.md) — MCP server · ★ 32221
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23263
- [SeleniumBase MCP](https://affpapa.org/en/nevibecode/mcp/seleniumbase-mcp.md) — MCP server · ★ 13169
- [Inbox Zero](https://affpapa.org/en/nevibecode/mcp/inbox-zero.md) — MCP server · ★ 12791

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
