
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 toolsPublic 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
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.
Details
- Repository
- github.com/hayodev/safari-devtools-mcp
- Categories
- Web & Browser Automation, Automation & Workflows
- Package
safari-devtools-mcp- Transport
- STDIO
- Registry
- MCP registry, active