Safari Technology Preview 247: 引入 Safari MCP Server

Safari Technology Preview 247: 引入 Safari MCP Server

Apple 在 Safari Technology Preview 247 中发布了 Safari MCP server,使 AI agent 可以直接与 Safari 浏览器窗口进行交互。这种集成允许 agent 能够通过访问实时浏览器数据来自主进行 Web 应用调试,从而减少了开发者手动向 LLM 传递浏览器状态的需求。

自主 Web 调试与测试

Safari MCP server 通过让 AI agent 直接看到代码在 Safari 中的渲染情况,消除了“调试舞步”——即在浏览器、开发者工具和代码编辑器之间反复切换的重复循环——。这使得 agent 可以自主执行多项高价值任务:

  • 跨浏览器兼容性: Agent 可以检查 Safari 中的计算样式和布局,从而在无需开发者手动切换窗口的情况下识别并修复浏览器特定的 bug。
  • 性能分析: 通过评估页面上的 JavaScript,agent 可以提取导航计时和资源加载时间,以精准定位性能瓶颈。
  • 可访问性审计: Agent 可以自动扫描缺失的标签、不当的 ARIA 属性以及对比度较差的颜色。
  • 状态验证: Agent 可以使用选择器查询元素、检查表单状态并验证复杂的用户流程(例如,结账流程),以确保应用程序按预期运行。

可用的 MCP Tools

Safari MCP server 提供了一套全面的工具,任何兼容 MCP 的 client 都可以使用这些工具来控制浏览器并提取数据:

Tool Description
browser_console_messages 返回当前或指定 tab 的缓冲控制台日志
browser_dialogs 列出并响应浏览器对话框(接受、取消或输入文本)
evaluate_javascript 在页面内执行 JavaScript 代码并返回结果
get_network_request 获取单个已记录网络请求的完整详情(headers, body, timing)
get_page_content 以 Markdown、HTML 或 JSON 等格式提取页面文本
list_network_requests 列出网络请求摘要(URL, method, status, timing)
page_interactions 执行 DOM 交互(click, type, scroll, hover, keyPress)
screenshot 捕获当前页面的 PNG 截图
set_viewport_size 以 CSS 像素设置浏览器视口大小
navigate_to_url 导航至一个 URL 并返回加载的页面内容

其他可用工具包括 close_tab, create_tab, list_tabs, page_info, set_emulated_media, switch_tab, 和 wait_for_navigation

安装与设置

要使用 Safari MCP server,用户必须安装 Safari Technology Preview 并启用以下设置:

  1. Advanced: 启用 "Show features for web developers"。
  2. Developer: 启用 "Remote automation and external agents"。

配置示例

对于 Claude,使用以下终端命令: claude mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp

对于 Codex,使用: codex mcp add safari-mcp-stp -- "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --mcp

对于其他 agent,请将以下内容添加到 mcp.jsonconfig.json 文件中:

{
  "safari-mcp-stp": {
    "command": "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver",
    "args": ["--mcp"]
  }
}

隐私与安全

Safari MCP server 在用户的本地机器上运行,不会进行独立的网络调用。它无法访问个人的 Safari 数据,例如 AutoFill 或常规浏览器历史记录。所有捕获的数据(截图、日志、页面内容)都会直接发送给正在运行的 agent;Apple 并不会接收这些数据。建议用户仅使用他们信任的 agent,因为 agent 将获得对浏览器状态的完全访问权限。

社区观点与替代方案

虽然 Safari MCP server 为 Apple 生态系统的开发者提供了原生路径,但社区也指出了现有的替代方案以及浏览器自动化的更广泛趋势:

  • 跨浏览器工具链: 一些开发者已经在使用针对其他浏览器的类似 MCP server,并指出添加 Safari 支持使其与 Chrome 和 Firefox MCP servers 一起,构成了一个完整的兼容性测试套件。
  • 现有 Driver: 一些用户指出 safaridriver 已经作为 W3C WebDriver 实现存在多年,尽管 MCP 实现简化了 LLM 的接口。
  • Alternative Frameworks: 一些开发者更倾向于使用 Playwright-CLI 或直接与 Chrome DevTools Protocol (CDP) 进行交互,以获得更快的执行速度。

Sources