adelelo13 avatar

mac-control-mcp

adelelo13/mac-control-mcp

A native Swift binary that lets Claude drive macOS through 63 tools spanning Accessibility APIs, window management, screen capture with OCR, Safari and Chrome tab control, synthetic input events, Spotlight search, and system toggles. It's developer-ID signed and notarized, ships as a one-click .mcpb bundle, and runs without Node or Python. The Accessibility bridge alone gives you read/write access to UI trees across every running app, which means you can automate workflows that would otherwise need brittle AppleScript or paid macro tools. File output is restricted to user directories and Desktop to prevent path traversal. Reach for this when you want Claude to operate your Mac the way a user would, clicking buttons and reading windows instead of calling APIs.

GitHub stars
18
tools
80
transport
STDIO
last updated
Oct 16, 2026

Tools

80 tools

Public tool metadata for what this MCP can expose to an agent.

permissions_statusPermissions category tool.

Permissions category tool.

No parameter schema in public metadata yet.

request_permissionsPermissions category tool.

Permissions category tool.

No parameter schema in public metadata yet.

find_elementReturns the first element matching a role/title filter for a PID.

Returns the first element matching a role/title filter for a PID.

No parameter schema in public metadata yet.

find_elementsSame matching as find_element, but returns all matches, not just the first.

Same matching as find_element, but returns all matches, not just the first.

No parameter schema in public metadata yet.

query_elementsRegex search over role/title/value (falls back to case-insensitive substring on invalid regex).

Regex search over role/title/value (falls back to case-insensitive substring on invalid regex).

No parameter schema in public metadata yet.

list_elementsLists actionable elements for a PID (a flat, practical "what can I click" view).

Lists actionable elements for a PID (a flat, practical "what can I click" view).

No parameter schema in public metadata yet.

get_ui_treeWalks the full accessibility tree of a process, including containers, and assigns stable element IDs for follow-up calls.

Walks the full accessibility tree of a process, including containers, and assigns stable element IDs for follow-up calls.

No parameter schema in public metadata yet.

ax_tree_augmentedLike get_ui_tree, but does one OCR pass and geometrically joins OCR-derived labels onto AX nodes that have no native label.

Like get_ui_tree, but does one OCR pass and geometrically joins OCR-derived labels onto AX nodes that have no native label.

No parameter schema in public metadata yet.

get_element_attributes

No parameter schema in public metadata yet.

set_element_attribute

No parameter schema in public metadata yet.

read_value

No parameter schema in public metadata yet.

perform_element_action

No parameter schema in public metadata yet.

wait_for_element

No parameter schema in public metadata yet.

scroll_to_element

No parameter schema in public metadata yet.

list_apps

No parameter schema in public metadata yet.

launch_app

No parameter schema in public metadata yet.

activate_app

No parameter schema in public metadata yet.

quit_app

No parameter schema in public metadata yet.

force_quit_app

No parameter schema in public metadata yet.

wait_for_app

No parameter schema in public metadata yet.

focused_app

No parameter schema in public metadata yet.

list_windows

No parameter schema in public metadata yet.

focus_window

No parameter schema in public metadata yet.

move_window

No parameter schema in public metadata yet.

resize_window

No parameter schema in public metadata yet.

set_window_state

No parameter schema in public metadata yet.

wait_for_window

No parameter schema in public metadata yet.

move_window_to_display

No parameter schema in public metadata yet.

click

No parameter schema in public metadata yet.

mouse_event

No parameter schema in public metadata yet.

drag_and_drop

No parameter schema in public metadata yet.

scroll

No parameter schema in public metadata yet.

type_text

No parameter schema in public metadata yet.

press_key

No parameter schema in public metadata yet.

press_key_sequence

No parameter schema in public metadata yet.

key_down

No parameter schema in public metadata yet.

key_up

No parameter schema in public metadata yet.

convert_coordinates

No parameter schema in public metadata yet.

click_menu_path

No parameter schema in public metadata yet.

list_menu_paths

No parameter schema in public metadata yet.

list_menu_titles

No parameter schema in public metadata yet.

browser_list_tabs

No parameter schema in public metadata yet.

browser_get_active_tab

No parameter schema in public metadata yet.

browser_navigate

No parameter schema in public metadata yet.

browser_new_tab

No parameter schema in public metadata yet.

browser_close_tab

No parameter schema in public metadata yet.

browser_eval_js

No parameter schema in public metadata yet.

browser_dom_tree

No parameter schema in public metadata yet.

browser_visible_text

No parameter schema in public metadata yet.

browser_iframes

No parameter schema in public metadata yet.

capture_screenMain display (or a rectangular region within it) to a PNG file, returns the file path + width/height.

Main display (or a rectangular region within it) to a PNG file, returns the file path + width/height.

No parameter schema in public metadata yet.

capture_screen_v2Main display only, stores the PNG as a content-addressed artifact and returns content_ref, bytes, sha256; downscales to avoid oversized inline images.

Main display only, stores the PNG as a content-addressed artifact and returns content_ref, bytes, sha256; downscales to avoid oversized inline images.

No parameter schema in public metadata yet.

capture_windowScreenshots one specific window by PID (optionally filtered by title_contains).

Screenshots one specific window by PID (optionally filtered by title_contains).

No parameter schema in public metadata yet.

capture_displayScreenshots one specific physical display by its index from list_displays.

Screenshots one specific physical display by its index from list_displays.

No parameter schema in public metadata yet.

ocr_screen

No parameter schema in public metadata yet.

clipboard_read

No parameter schema in public metadata yet.

clipboard_write

No parameter schema in public metadata yet.

clipboard_clear

No parameter schema in public metadata yet.

spotlight_search

No parameter schema in public metadata yet.

spotlight_open_result

No parameter schema in public metadata yet.

set_volume

No parameter schema in public metadata yet.

set_dark_mode

No parameter schema in public metadata yet.

list_displays

No parameter schema in public metadata yet.

file_dialog_set_path

No parameter schema in public metadata yet.

file_dialog_select_item

No parameter schema in public metadata yet.

file_dialog_confirm

No parameter schema in public metadata yet.

file_dialog_cancel

No parameter schema in public metadata yet.

wait_for_file_dialog

No parameter schema in public metadata yet.

mail_send

No parameter schema in public metadata yet.

imessage_send

No parameter schema in public metadata yet.

imessage_list_recent

No parameter schema in public metadata yet.

calendar_create_event

No parameter schema in public metadata yet.

calendar_list_events

No parameter schema in public metadata yet.

reminders_create

No parameter schema in public metadata yet.

reminders_list

No parameter schema in public metadata yet.

contacts_search

No parameter schema in public metadata yet.

speech_to_text

No parameter schema in public metadata yet.

text_to_speech

No parameter schema in public metadata yet.

audio_record

No parameter schema in public metadata yet.

record_screen

No parameter schema in public metadata yet.

Sponsors

Readme

mac-control-mcp

CI License: MIT Platform Notarized MCP Registry

Native Swift MCP server for full macOS automation. 153 tools in one signed .app bundle — no Python, no Node runtime, no Electron. Full list with parameters: docs/TOOLS.md.

mac-control-mcp driving Safari: open tab, type query, capture window, OCR, Spotlight search — all via MCP stdio

Gives any MCP-compatible client (Claude Desktop, Claude Code, Cursor, etc.) the ability to:


View the full README on GitHub

Details

Repository
github.com/adelelo13/mac-control-mcp
Website
github.com/AdelElo13/mac-control-mcp
Categories
Web & Browser Automation, Automation & Workflows, Mobile Development
Package
mac-control-mcp
Transport
STDIO
Registry
MCP registry, active

More from adelelo13

Related Web & Browser Automation MCP servers

View all
1mcpware avatarPagecastmcpware/pagecastRecord any browser page as GIF or video via MCP17stars
2aybelatchane avatarTerminal MCP Serveraybelatchane/mcp-server-terminalMCP server for AI agents to interact with terminal applications. Think Playwright for terminals.15stars
3klarlabs-studio avatarScoutklarlabs-studio/scoutBrowser automation MCP server with 84 tools. Pure CDP, DOM diffing, vision hybrid.14stars
4sh6drack avatarZen Mcpsh6drack/zen-mcpMCP server for Zen Browser automation via WebDriver BiDi10stars
5cherchyk avatarMCP Browsercherchyk/mcpbrowserBrowser automation using the user's Chromium session — JS execution, auth, and anti-bot support.9stars
6baixianger avatarCamoufox Mcpbaixianger/camoufox-mcpAnti-detection browser automation with Camoufox - stealth Firefox for web scraping7stars