SuperAPI AI 工具集

claudeForSafari

claudeForSafari 是一个开源项目,通过 MCP 协议让 Claude Desktop 获得控制 Safari 浏览器的能力,可导航页面、读取内容、点击元素、填写表单和管理标签页,无需 Playwright 或 WebDriver。它以 Safari 网页扩展加本地桥接的方式工作,效果类似“Claude in Chrome”。使用需要在 macOS 14+ 上克隆仓库、安装 Node.js 桥接依赖、用 Xcode 构建扩展、在 Safari 设置中启用并允许所有网站,再在 Claude Desktop 的配置中加入 safari 条目。桥接服务仅监听本地 ws://localhost:45678,提供 13 个工具。注意该桥接没有密码学认证,且支持执行任意 JavaScript,安全性由用户自行负责;contenteditable 富文本编辑器暂不支持。

访问官网

工具介绍

用途

claudeForSafari 为 Claude Desktop 提供控制 Safari 的能力,使其可以像“Claude in Chrome”一样操作浏览器:导航页面、读取页面内容、点击元素、填写表单等,整个过程通过 MCP 协议完成,不依赖 Playwright 或 WebDriver。

主要能力

根据资料,仓库提供 13 个可用工具(具体工具名称除 safari_form_input、safari_get_page_text、safari_javascript 外,资料未逐一列出)。功能覆盖:

  • 页面导航
  • 读取页面内容
  • 点击元素
  • 填写表单
  • 管理标签页

表单输入限制

safari_form_input 支持 <input> 和 <textarea> 字段。基于 contenteditable 的富文本编辑器(如 Notion、Gmail 撰写界面等)暂不支持。

JavaScript 执行

safari_javascript 被设计为在当前激活标签页中执行任意 JavaScript,应像使用浏览器开发者工具一样,仅在受信任的页面上使用。

环境要求

  • macOS 14+(Sonoma 或更高版本)
  • Node.js v18+(如未安装可从 nodejs.org 获取)
  • Apple 开发者账号(本地使用免费账号即可)
  • 支持 MCP 的 Claude Desktop

使用方式

第 1 步 — 克隆仓库

将项目克隆到本地。

第 2 步 — 安装桥接依赖

为 bridge 安装依赖。

第 3 步 — 在 Xcode 中构建扩展

  1. 在 Xcode 中打开 app/claudeExtension.xcodeproj
  2. 选择 claudeExtension scheme(宿主应用)
  3. 目标选择 My Mac
  4. 按 Cmd+R — Xcode 会构建并启动应用
  5. macOS 会弹出横幅:“claudeExtension wants to add a Safari extension” → 点击“Open Safari Preferences”并启用该扩展

第 4 步 — 在 Safari 中启用扩展

  1. Safari → 设置(Cmd+,)→ 扩展标签页
  2. 勾选 claudeExtension
  3. 在右侧栏 → 允许在所有网站运行

若不授予此权限,向页面注入脚本会静默失败。

第 5 步 — 配置 Claude Desktop

打开(或创建)Claude Desktop 的配置文件,在 mcpServers 下添加 safari 条目,将 /absolute/path/to/ 替换为实际克隆路径。如果 node 不在 Claude Desktop 的 PATH 中,需使用其完整路径。

然后重启 Claude Desktop。桥接会随 Claude Desktop 自动启动,Safari 需保持打开且扩展已启用。休眠后或访问过 Safari 设置后,扩展会自动重连桥接,无需手动操作。

适用场景

  • 在 Safari 中自动化网页导航与信息读取
  • 自动点击页面元素、填写常规表单字段
  • 通过 MCP 让 Claude Desktop 直接操作浏览器标签页
  • 需要在 macOS 上以 Safari 扩展方式替代 Playwright/WebDriver 的场景

限制与安全说明

  • 桥接监听 ws://localhost:45678,仅限本机,不暴露到网络。
  • 任意本地进程都可以连接该端口,桥接与 Safari 扩展之间没有密码学认证。威胁模型假设同一用户账号下运行的其他进程是可信的;若运行不受信任的本地软件,需注意它理论上可以连接桥接。
  • safari_javascript 会执行任意 JavaScript,请像对待浏览器开发者工具一样谨慎使用。
  • safari_get_page_text 在内部标签页(如 favorites://、about:blank 等)会失败,因为内部 Safari 页面无法注入脚本,需先导航到 http:// 或 https:// 地址。
  • 基于 contenteditable 的富文本编辑器不支持表单输入。

故障排查

  • “Safari extension not connected”:确认 Safari 是否打开、扩展是否在 Safari → 扩展中勾选;用 ps aux | grep bridge.js 检查桥接是否运行;用 Console.app 按 claude-safari 过滤查看日志。
  • 脚本注入权限被拒:Safari → 设置 → 扩展 → claudeExtension → 允许在所有网站。
  • 桥接无法启动:检查 Node.js 版本(node -v,需 v18+),并在 claude_desktop_config.json 中使用 node 的绝对路径。
  • Xcode 提示“No signing certificate”:在 Xcode → 设置 → 账户中添加 Apple ID,下载 Manual Profiles。

文件编辑规则

所有扩展文件修改都直接在 app/claudeExtension Extension/Resources/ 中进行,没有单独的 safari-extension/ 文件夹。修改 background.js 或 manifest.json 后,需在 Xcode 中重新构建(Cmd+R),然后在 Safari → 设置 → 扩展中禁用再重新启用扩展(或重启 Safari)。桥接文件 bridge/bridge.js 不需要重新构建,Node.js 会在下次重启 Claude Desktop 时加载变更。

暂未提供的信息

资料未说明 13 个工具各自的完整名称与参数、项目许可证类型、具体版本号、除 GitHub 地址外的更多使用示例。