
Safari Mcp
If you're on macOS and tired of spinning up headless Chrome just to automate a few clicks, this connects your AI agent directly to Safari via AppleScript and JavaScript for Automation. You get 80 tools covering navigation, form filling, screenshots, network inspection, and element queries using CSS selectors or accessibility references. It reuses a persistent osascript process for sub-10ms commands and runs about 60% lighter on CPU than Chromium. The killer feature is that it drives your actual logged-in Safari instance, so your agent inherits all your cookies and sessions for Gmail, GitHub, or whatever authenticated service you need to interact with. No Puppeteer, no WebDriver, no separate browser to manage.
- GitHub stars
- 236
- tools
- 80
- transport
- STDIO
- last updated
- Oct 28, 2026
Tools
80 toolsPublic tool metadata for what this MCP can expose to an agent.
safari_navigateNavigate to URL (auto HTTPS, wait for load)
Navigate to URL (auto HTTPS, wait for load)
No parameter schema in public metadata yet.
safari_go_backGo back in history
Go back in history
No parameter schema in public metadata yet.
safari_go_forwardGo forward in history
Go forward in history
No parameter schema in public metadata yet.
safari_reloadReload page (optional hard reload)
Reload page (optional hard reload)
No parameter schema in public metadata yet.
safari_read_pageGet title, URL, and text content
Get title, URL, and text content
No parameter schema in public metadata yet.
safari_get_sourceGet full HTML source
Get full HTML source
No parameter schema in public metadata yet.
safari_navigate_and_readNavigate + read in one call
Navigate + read in one call
No parameter schema in public metadata yet.
safari_clickClick by CSS selector, visible text, or coordinates
Click by CSS selector, visible text, or coordinates
No parameter schema in public metadata yet.
safari_double_clickDouble-click (select word, etc.)
Double-click (select word, etc.)
No parameter schema in public metadata yet.
safari_right_clickRight-click (context menu)
Right-click (context menu)
No parameter schema in public metadata yet.
safari_hoverHover over element
Hover over element
No parameter schema in public metadata yet.
safari_click_and_waitClick + wait for navigation
Click + wait for navigation
No parameter schema in public metadata yet.
safari_click_and_readClick then return the updated page — saves a round-trip (React Router + full loads)
Click then return the updated page — saves a round-trip (React Router + full loads)
No parameter schema in public metadata yet.
safari_fillFill input (React/Vue/Angular compatible)
Fill input (React/Vue/Angular compatible)
No parameter schema in public metadata yet.
safari_clear_fieldClear input field
Clear input field
No parameter schema in public metadata yet.
safari_select_optionSelect dropdown option
Select dropdown option
No parameter schema in public metadata yet.
safari_fill_formBatch fill multiple fields
Batch fill multiple fields
No parameter schema in public metadata yet.
safari_fill_and_submitFill form + submit in one call
Fill form + submit in one call
No parameter schema in public metadata yet.
safari_type_textType real keystrokes (JS-based, no System Events)
Type real keystrokes (JS-based, no System Events)
No parameter schema in public metadata yet.
safari_press_keyPress key with modifiers
Press key with modifiers
No parameter schema in public metadata yet.
safari_react_select_setSet a react-select v5 value via React fiber — bypasses the menu UI
Set a react-select v5 value via React fiber — bypasses the menu UI
No parameter schema in public metadata yet.
safari_react_select_list_optionsList a react-select v5 dropdown's options without opening it
List a react-select v5 dropdown's options without opening it
No parameter schema in public metadata yet.
safari_replace_editorReplace all content in a code editor (Monaco, CodeMirror, Ace, ProseMirror)
Replace all content in a code editor (Monaco, CodeMirror, Ace, ProseMirror)
No parameter schema in public metadata yet.
safari_verify_stateVerify an editor's framework-level state matches expected — catch stale DOM before Submit
Verify an editor's framework-level state matches expected — catch stale DOM before Submit
No parameter schema in public metadata yet.
safari_screenshotScreenshot as PNG (viewport or full page)
Screenshot as PNG (viewport or full page)
No parameter schema in public metadata yet.
safari_screenshot_elementScreenshot a specific element
Screenshot a specific element
No parameter schema in public metadata yet.
safari_save_pdfExport page as PDF
Export page as PDF
No parameter schema in public metadata yet.
safari_scrollScroll up/down by pixels
Scroll up/down by pixels
No parameter schema in public metadata yet.
safari_scroll_toScroll to exact position
Scroll to exact position
No parameter schema in public metadata yet.
safari_scroll_to_elementSmooth scroll to element
Smooth scroll to element
No parameter schema in public metadata yet.
safari_list_tabsList all tabs (index, title, URL)
List all tabs (index, title, URL)
No parameter schema in public metadata yet.
safari_new_tabOpen new tab (background, no focus steal)
Open new tab (background, no focus steal)
No parameter schema in public metadata yet.
safari_close_tabClose tab
Close tab
No parameter schema in public metadata yet.
safari_switch_tabSwitch to tab by index
Switch to tab by index
No parameter schema in public metadata yet.
safari_wait_for_new_tabWait for a new tab (e.g. OAuth popup) and auto-switch to it
Wait for a new tab (e.g. OAuth popup) and auto-switch to it
No parameter schema in public metadata yet.
safari_wait_forWait for element, text, or URL change
Wait for element, text, or URL change
No parameter schema in public metadata yet.
safari_waitWait for specified milliseconds
Wait for specified milliseconds
No parameter schema in public metadata yet.
safari_evaluateExecute arbitrary JavaScript, return result
Execute arbitrary JavaScript, return result
No parameter schema in public metadata yet.
safari_eval_fileExecute JavaScript read from a file path (avoids huge inline scripts)
Execute JavaScript read from a file path (avoids huge inline scripts)
No parameter schema in public metadata yet.
safari_list_framesList every document in the tab (main page + each iframe) with frameId, URL and text length — pass a frameId to safari_evaluate's frame to run inside a cross-origin iframe
List every document in the tab (main page + each iframe) with frameId, URL and text length — pass a frameId to safari_evaluate's frame to run inside a cross-origin iframe
No parameter schema in public metadata yet.
safari_get_elementElement details (tag, rect, attrs, visibility)
Element details (tag, rect, attrs, visibility)
No parameter schema in public metadata yet.
safari_query_allFind all matching elements
Find all matching elements
No parameter schema in public metadata yet.
safari_get_computed_styleComputed CSS styles
Computed CSS styles
No parameter schema in public metadata yet.
safari_detect_formsAuto-detect all forms with field selectors
Auto-detect all forms with field selectors
No parameter schema in public metadata yet.
safari_accessibility_snapshotFull a11y tree: roles, ARIA, focusable elements
Full a11y tree: roles, ARIA, focusable elements
No parameter schema in public metadata yet.
safari_snapshotAccessibility tree with ref IDs for every interactive element — preferred way to see page state
Accessibility tree with ref IDs for every interactive element — preferred way to see page state
No parameter schema in public metadata yet.
safari_dragDrag between elements or coordinates
Drag between elements or coordinates
No parameter schema in public metadata yet.
safari_upload_fileUpload file via JS DataTransfer (no file dialog!)
Upload file via JS DataTransfer (no file dialog!)
No parameter schema in public metadata yet.
safari_paste_imagePaste image into editor (no clipboard touch!)
Paste image into editor (no clipboard touch!)
No parameter schema in public metadata yet.
safari_handle_dialogHandle alert/confirm/prompt
Handle alert/confirm/prompt
No parameter schema in public metadata yet.
safari_resizeResize browser window
Resize browser window
No parameter schema in public metadata yet.
safari_emulateEmulate device (iPhone, iPad, Pixel, Galaxy)
Emulate device (iPhone, iPad, Pixel, Galaxy)
No parameter schema in public metadata yet.
safari_reset_emulationReset to desktop
Reset to desktop
No parameter schema in public metadata yet.
safari_get_cookiesGet all cookies
Get all cookies
No parameter schema in public metadata yet.
safari_set_cookieSet cookie with all options
Set cookie with all options
No parameter schema in public metadata yet.
safari_delete_cookiesDelete one or all cookies
Delete one or all cookies
No parameter schema in public metadata yet.
safari_local_storageRead localStorage
Read localStorage
No parameter schema in public metadata yet.
safari_set_local_storageWrite localStorage
Write localStorage
No parameter schema in public metadata yet.
safari_delete_local_storageDelete/clear localStorage
Delete/clear localStorage
No parameter schema in public metadata yet.
safari_session_storageRead sessionStorage
Read sessionStorage
No parameter schema in public metadata yet.
safari_set_session_storageWrite sessionStorage
Write sessionStorage
No parameter schema in public metadata yet.
safari_delete_session_storageDelete/clear sessionStorage
Delete/clear sessionStorage
No parameter schema in public metadata yet.
safari_export_storageExport all storage as JSON (backup/restore sessions)
Export all storage as JSON (backup/restore sessions)
No parameter schema in public metadata yet.
safari_import_storageImport storage state from JSON
Import storage state from JSON
No parameter schema in public metadata yet.
safari_clipboard_readRead clipboard text
Read clipboard text
No parameter schema in public metadata yet.
safari_clipboard_writeWrite text to clipboard
Write text to clipboard
No parameter schema in public metadata yet.
safari_networkQuick network requests via Performance API
Quick network requests via Performance API
No parameter schema in public metadata yet.
safari_start_network_captureStart detailed capture (fetch + XHR)
Start detailed capture (fetch + XHR)
No parameter schema in public metadata yet.
safari_network_detailsGet captured requests with headers/timing
Get captured requests with headers/timing
No parameter schema in public metadata yet.
safari_clear_networkClear captured requests
Clear captured requests
No parameter schema in public metadata yet.
safari_mock_routeMock network responses (intercept fetch/XHR)
Mock network responses (intercept fetch/XHR)
No parameter schema in public metadata yet.
safari_clear_mocksRemove all network mocks
Remove all network mocks
No parameter schema in public metadata yet.
safari_start_consoleStart capturing console messages
Start capturing console messages
No parameter schema in public metadata yet.
safari_get_consoleGet all captured messages
Get all captured messages
No parameter schema in public metadata yet.
safari_clear_consoleClear captured messages
Clear captured messages
No parameter schema in public metadata yet.
safari_console_filterFilter by level (log/warn/error)
Filter by level (log/warn/error)
No parameter schema in public metadata yet.
safari_performance_metricsNavigation timing, Web Vitals, memory
Navigation timing, Web Vitals, memory
No parameter schema in public metadata yet.
safari_throttle_networkSimulate slow-3g/fast-3g/4g/offline
Simulate slow-3g/fast-3g/4g/offline
No parameter schema in public metadata yet.
safari_extract_tablesTables as structured JSON
Tables as structured JSON
No parameter schema in public metadata yet.
safari_extract_metaAll meta: OG, Twitter, JSON-LD, canonical
All meta: OG, Twitter, JSON-LD, canonical
No parameter schema in public metadata yet.
Sponsors
Readme
🦁 Safari MCP
The browser for your coding agent.
Your real Safari, logged in — no Chrome, no heat, no headless.
Details
- Repository
- github.com/achiya-automation/safari-mcp
- Categories
- Web & Browser Automation, Automation & Workflows
- Package
safari-mcp- Transport
- STDIO
- Registry
- MCP registry, active