Safari MCP 服务器是一个基于模型上下文协议(MCP)的服务器,它为 AI 助手提供 Safari 浏览器自动化和开发者工具访问功能。借助该服务器,大语言模型(LLMs)可以与 Safari 进行交互,获取控制台日志,监控网络活动,并执行浏览器自动化任务。
在使用此 MCP 服务器之前,你需要启用 Safari 的自动化功能:
sudo safaridriver --enable
当系统提示时,输入你的管理员密码。cd C:\Users\\RiderProjects\AIPacketAnalyzer\safari-mcp-server
npm install
npm run build
npm start
服务器将启动并在标准输入输出上监听 MCP 协议消息。
npm run dev
safari_start_session - 启动一个新的 Safari 自动化会话safari_close_session - 关闭一个 Safari 会话safari_list_sessions - 列出所有活动会话safari_navigate - 导航到指定 URLsafari_get_page_info - 获取当前页面的 URL 和标题safari_get_console_logs - 获取浏览器控制台日志safari_get_network_logs - 获取网络活动日志safari_get_performance_metrics - 获取页面性能指标safari_execute_script - 在浏览器中执行 JavaScriptsafari_take_screenshot - 捕获页面截图safari_inspect_element - 检查 DOM 元素将以下配置添加到你的 Claude Desktop 配置文件中:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"safari-devtools": {
"command": "node",
"args": ["C:/Users//RiderProjects/AIPacketAnalyzer/safari-mcp-server/build/index.js" ]
}
}
}
连接到像 Claude Desktop 这样的 MCP 客户端后,你可以使用以下命令:
启动一个 ID 为 "main" 的 Safari 会话并导航到 Google:
- 启动会话:safari_start_session 并指定 sessionId 为 "main"
- 导航:safari_navigate 到 "https://www.google.com"
- 截图:safari_take_screenshot
- 获取控制台日志:safari_get_console_logs
在启动会话时,你可以指定以下选项:
{
"sessionId": "my-session",
"options": {
"enableInspection": true, // 启用 Web 检查器
"enableProfiling": true, // 启用时间线分析
"usesTechnologyPreview": false // 使用 Safari 技术预览版
}
}
safari-mcp-server/
├── src/
│ ├── index.ts # 主入口文件
│ ├── safari-mcp-server.ts # MCP 服务器实现
│ ├── safari-driver.ts # Safari WebDriver 管理器
│ └── types.ts # TypeScript 类型定义
├── build/ # 编译后的 JavaScript 文件
├── package.json
├── tsconfig.json
└── README.md
npm run build
npm run watch
npm run clean
sudo safaridriver --enable 并输入密码若要查看详细日志,你可以修改服务器以包含更详细的输出,或者在自动化运行时检查 Safari 的 Web 检查器。
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。