hayodev avatar

Safari DevTools MCP

hayodev/safari-devtools-mcp

Built for macOS developers who need AI agents to debug Safari the way Chrome developers use chrome-devtools-mcp. Exposes Safari DevTools via WebDriver to capture network request bodies, inspect the accessibility tree with stable element UIDs, read computed CSS, manage cookies and storage, and grab element-level screenshots. Includes network and console monitoring with full stack traces, JavaScript evaluation, and AppleScript-powered tab management across windows. Ships with guided debugging prompts for accessibility audits, WebKit-specific quirks, and performance analysis. Auto-recovers dead SafariDriver sessions and offers a slim mode to reduce token usage in long conversations.

GitHub stars
2
tools
45
transport
STDIO
last updated
Apr 13, 2026

Tools

45 tools

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

list_console_messagesList console messages with filtering by level (log, warn, error)

List console messages with filtering by level (log, warn, error)

No parameter schema in public metadata yet.

get_console_messageGet a detailed message including stack trace and arguments

Get a detailed message including stack trace and arguments

No parameter schema in public metadata yet.

clear_consoleClear all captured console messages

Clear all captured console messages

No parameter schema in public metadata yet.

list_network_requestsMonitor network requests — Fetch, XHR, and resource loads

Monitor network requests — Fetch, XHR, and resource loads

No parameter schema in public metadata yet.

get_network_requestGet full request/response details with headers and body

Get full request/response details with headers and body

No parameter schema in public metadata yet.

clear_networkClear all captured network requests

Clear all captured network requests

No parameter schema in public metadata yet.

evaluate_scriptExecute JavaScript in the browser context and return results

Execute JavaScript in the browser context and return results

No parameter schema in public metadata yet.

take_screenshotCapture a PNG screenshot of the page or a specific element

Capture a PNG screenshot of the page or a specific element

No parameter schema in public metadata yet.

take_snapshotAccessibility-tree snapshot of the DOM with stable UIDs for element targeting

Accessibility-tree snapshot of the DOM with stable UIDs for element targeting

No parameter schema in public metadata yet.

get_page_contentGet the page title, URL, and visible text content

Get the page title, URL, and visible text content

No parameter schema in public metadata yet.

get_html_sourceGet the full HTML source of the page

Get the full HTML source of the page

No parameter schema in public metadata yet.

extract_linksExtract all links with their text, href, and rel attributes

Extract all links with their text, href, and rel attributes

No parameter schema in public metadata yet.

extract_metaExtract meta tags (og:, twitter:, description, etc.)

Extract meta tags (og:, twitter:, description, etc.)

No parameter schema in public metadata yet.

list_pagesList all open Safari tabs across windows

List all open Safari tabs across windows

No parameter schema in public metadata yet.

select_pageSwitch to a specific tab

Switch to a specific tab

No parameter schema in public metadata yet.

new_pageOpen a new tab and navigate to a URL

Open a new tab and navigate to a URL

No parameter schema in public metadata yet.

close_pageClose a tab

Close a tab

No parameter schema in public metadata yet.

navigate_pageNavigate to a URL, go back, forward, or reload

Navigate to a URL, go back, forward, or reload

No parameter schema in public metadata yet.

wait_forWait for specific text to appear on the page

Wait for specific text to appear on the page

No parameter schema in public metadata yet.

resize_pageResize the browser window

Resize the browser window

No parameter schema in public metadata yet.

handle_dialogAccept or dismiss browser dialogs (alert, confirm, prompt)

Accept or dismiss browser dialogs (alert, confirm, prompt)

No parameter schema in public metadata yet.

scrollScroll the page in any direction by a given amount

Scroll the page in any direction by a given amount

No parameter schema in public metadata yet.

scroll_to_elementScroll an element into view by its UID

Scroll an element into view by its UID

No parameter schema in public metadata yet.

get_computed_styleGet computed CSS styles for any element by UID

Get computed CSS styles for any element by UID

No parameter schema in public metadata yet.

get_cookiesGet browser cookies, optionally filtered by name or domain

Get browser cookies, optionally filtered by name or domain

No parameter schema in public metadata yet.

set_cookieSet a cookie with name, value, and optional attributes

Set a cookie with name, value, and optional attributes

No parameter schema in public metadata yet.

delete_cookieDelete a cookie by name, or delete all cookies

Delete a cookie by name, or delete all cookies

No parameter schema in public metadata yet.

get_storageRead from localStorage or sessionStorage

Read from localStorage or sessionStorage

No parameter schema in public metadata yet.

set_storageWrite a key-value pair to localStorage or sessionStorage

Write a key-value pair to localStorage or sessionStorage

No parameter schema in public metadata yet.

delete_storageDelete a key or clear all entries from localStorage/sessionStorage

Delete a key or clear all entries from localStorage/sessionStorage

No parameter schema in public metadata yet.

clickClick an element by UID from a snapshot

Click an element by UID from a snapshot

No parameter schema in public metadata yet.

click_atClick at specific x/y coordinates

Click at specific x/y coordinates

No parameter schema in public metadata yet.

right_clickRight-click (context menu) on an element

Right-click (context menu) on an element

No parameter schema in public metadata yet.

select_optionSelect an option from a dropdown by value or label

Select an option from a dropdown by value or label

No parameter schema in public metadata yet.

hoverHover over an element

Hover over an element

No parameter schema in public metadata yet.

fillType into an input field or select from a dropdown

Type into an input field or select from a dropdown

No parameter schema in public metadata yet.

fill_formFill multiple form fields at once

Fill multiple form fields at once

No parameter schema in public metadata yet.

type_textType text into the currently focused element

Type text into the currently focused element

No parameter schema in public metadata yet.

dragDrag and drop between elements or coordinates

Drag and drop between elements or coordinates

No parameter schema in public metadata yet.

press_keyPress a key or combination (e.g., Meta+A, Enter)

Press a key or combination (e.g., Meta+A, Enter)

No parameter schema in public metadata yet.

upload_fileUpload a file through a file input

Upload a file through a file input

No parameter schema in public metadata yet.

inspect_viewport_metaParse the viewport meta tag and validate against iOS best practices (width, zoom, viewport-fit)

Parse the viewport meta tag and validate against iOS best practices (width, zoom, viewport-fit)

No parameter schema in public metadata yet.

get_safe_area_insetsRead CSS safe-area-inset values and check whether the page handles notched devices correctly

Read CSS safe-area-inset values and check whether the page handles notched devices correctly

No parameter schema in public metadata yet.

check_ios_web_app_readinessAudit the page for Add to Home Screen / PWA readiness (apple-touch-icon, manifest, splash screens, status bar)

Audit the page for Add to Home Screen / PWA readiness (apple-touch-icon, manifest, splash screens, status bar)

No parameter schema in public metadata yet.

check_webkit_compatibilityCheck page CSS against the live Safari session via CSS.supports()

Check page CSS against the live Safari session via CSS.supports()

No parameter schema in public metadata yet.

Sponsors

Readme

Safari DevTools MCP

npm version npm downloads license node

safari-devtools-mcp lets your coding agent (such as Claude, Cursor, Copilot or Gemini) control and inspect a live Safari browser on macOS. It acts as a Model-Context-Protocol (MCP) server, giving your AI coding assistant access to Safari DevTools for debugging, automation, and testing.

Chrome developers get powerful AI debugging through chrome-devtools-mcp by Google. Safari developers should have something equivalent — this project brings that same experience to Safari, with matching tool names and parameter schemas so you can swap between browsers with minimal friction.


View the full README on GitHub

Details

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

More from hayodev

Related Web & Browser Automation MCP servers

View all
1arcededev avatarAIR SDKarcededev/air-sdkCollective intelligence for browser automation agents. Site capabilities, selectors, and extraction.1stars
2bgaze avatarSnapstack Serverbgaze/snapstack-serverLocal always-on server for SnapStack: browser capture intake + MCP over 127.0.0.1.1stars
3scrapeer avatarScrapeerscrapeer/scrapeer-mcp-serverRun Scrapeer visual web-scraping flows from AI agents.1stars
4aryanduntley avatarPWA Debug Layeraryanduntley/pwa-debug-layerDebug PWAs in your real browser via MCP: service-worker, cache, installability & framework state.0stars
5clauxel avatarBrowserspendguard Mcpclauxel/browser-spend-guard-mcpApproval receipts for AI browser purchases.0stars
6clauxel avatarPlaywrightselectorguard Mcpclauxel/playwright-selector-guard-mcpPlaywright selector risk checks with healing suggestions and receipts.0stars