用途
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 中构建扩展
- 在 Xcode 中打开 app/claudeExtension.xcodeproj
- 选择 claudeExtension scheme(宿主应用)
- 目标选择 My Mac
- 按 Cmd+R — Xcode 会构建并启动应用
- macOS 会弹出横幅:“claudeExtension wants to add a Safari extension” → 点击“Open Safari Preferences”并启用该扩展
第 4 步 — 在 Safari 中启用扩展
- Safari → 设置(Cmd+,)→ 扩展标签页
- 勾选 claudeExtension
- 在右侧栏 → 允许在所有网站运行
若不授予此权限,向页面注入脚本会静默失败。
第 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 地址外的更多使用示例。