Safari 27 (released September 17, 2026) ships a built-in Model Context Protocol server: flip two Settings toggles, run one terminal command, and your coding agent can see your site in Safari, click things, take screenshots, read console logs, and debug — no extension, no Playwright, no pasting screenshots into your terminal. Every command and tool name below is reproduced verbatim from Apple's WebKit blog.
Step 1 — enable remote automation. Safari > Settings > Advanced > check "Show features for web developers." This unlocks the Developer pane. Then Safari > Settings > Developer > check "Allow remote automation and external agents."
Step 2 — connect your agent.
Claude Code:
claude mcp add safari-mcp -- "/usr/bin/safaridriver" --mcp
OpenAI Codex:
codex mcp add safari-mcp -- "/usr/bin/safaridriver" --mcp
Any other MCP client (Cursor, Gemini CLI, GitHub Copilot — anything MCP-compatible) — put this in your mcp.json or config.json:
{
"mcpServers" : {
"safari-mcp" : {
"command" : "/usr/bin/safaridriver",
"args" : ["--mcp"]
}
}
}
Prefer Safari Technology Preview? Same toggles in the Preview build, then:
claude mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp
Step 3 — just ask. Per Apple, you don't need to name the server explicitly — it figures it out:
Find bugs on my site in Safari
How accessible is my site in Safari?
See how my website performs in Safari
Every tool name and description, from the WebKit blog:
| Tool | What it does |
|---|---|
browser_console_messages | Return buffered console logs for the current or specified tab |
browser_dialogs | List and respond to browser dialogs (accept, dismiss, or input text for JS prompts) |
close_tab | Close a browser tab by its handle |
create_tab | Create a new browser tab, optionally loading a URL |
evaluate_javascript | Execute JavaScript code within the page and return the result |
get_network_request | Get full detail for a single recorded network request (headers, body, timing) |
get_page_content | Extract text content of a page in various formats (markdown, HTML, JSON, etc.) |
list_network_requests | List network request summaries (URL, method, status, timing) for the current tab |
list_tabs | List all open browser tabs with their handles and URLs |
navigate_to_url | Navigate to a URL and return the loaded page's content |
page_info | Get info about the current page: URL, title, and loading state |
page_interactions | Perform DOM interactions in sequence: click, type, scroll, hover, keyPress, etc. |
screenshot | Capture a screenshot of the current page as a PNG |
set_emulated_media | Emulate a CSS media type (e.g. "print") for responsive-design testing |
set_viewport_size | Set the browser viewport size in CSS pixels |
switch_tab | Switch to a different browser tab by its handle |
wait_for_navigation | Wait for the current page to finish loading; returns final URL and title |
From the WebKit blog — the debugging dance this replaces (open console, click styles tab, see what's broken, go back to code, repeat):
browser_dialogs deserves a second thought. The agent can dismiss (or accept) JS dialogs on its own. If your site gates something important behind a confirm() dialog, watch what it chooses.
Here's the part the announcement rewrites miss: Safari's MCP server gives agents hands — click, type, navigate, verify a checkout flow. The next question is what happens when the thing it clicks has a price. The agent economy already has a machine-native answer for that: the HTTP 402 Payment Required handshake (x402), where the server returns payment terms, the agent's wallet signs, and a facilitator settles on-chain. When a Safari-driven agent can complete a checkout flow and pay the 402 challenge without a human clicking approve, the debugging loop and the commerce loop become the same loop.
ScriptMasterLabs works this layer live: per-call x402 billing for MCP servers (what happens when a tool call costs money), and the x402 payment protocol explained with a real verifiable contract receipt. If you're building an MCP server your Safari-driven agent might call — the billing side is solved first, because agents don't have credit cards.
Published September 24, 2026. Sources: WebKit blog "Introducing the Safari MCP server for web developers" (Apple, updated for Safari 27; accessed Sept 24, 2026); Daring Fireball (July 2, 2026); pondera.ai "Safari 27 Ships a Built-In MCP Server" (Sept 19, 2026); tpsreport.news (Sept 18, 2026). Commands and tool table reproduced from the WebKit blog; hands-on verification not performed (no macOS in this environment). Truth First. Proof Always.
Script Master Labs — Truth First. Proof Always.