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