achiya-automation avatar

Safari Mcp

achiya-automation/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 tools

Public 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 Server — 98 native browser automation tools for AI agents on macOS

🦁 Safari MCP

The browser for your coding agent.

Your real Safari, logged in — no Chrome, no heat, no headless.

npm version npm downloads License: MIT macOS OpenSSF Scorecard


View the full README on GitHub

Details

Repository
github.com/achiya-automation/safari-mcp
Categories
Web & Browser Automation, Automation & Workflows
Package
safari-mcp
Transport
STDIO
Registry
MCP registry, active

Related Web & Browser Automation MCP servers

View all
1swimmwatch avatarCloakBrowser MCPswimmwatch/cloakbrowser-mcpPlaywright MCP-compatible browser automation bridge for CloakBrowser Chromium.176stars
2aishwaryshrivastav avatarVibe Test — Browser Testing Agentaishwaryshrivastav/vibe-testingCode-aware browser testing agent — 14 Playwright tools for AI code editors via MCP18stars
3leonting1010 avatarTapleonting1010/tapBrowser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.18stars
4avivgerz-hue avatarghost-qaavivgerz-hue/ghost-qaAutonomous headless browser QA & self-healing verification loop for AI coding agents.13stars
5riproductions avatarWingmanProtocol Agent Gatewayriproductions/wingman-agent-gatewayDurable memory, headless browser and research for agents. Pay per call: x402 USDC on Base or credits0stars
6hmakt99 avatarVedhahmakt99/vedhaBrowser testing on Playwright that checks the server, not just the screen, before it reports a pass.1stars