返回市场
猎豹-MCP服务器

猎豹-MCP服务器

作者:lxman12 星标更新:2025-10-11

项目介绍

Safari MCP 服务器

这是一个提供与Safari浏览器自动化及开发者工具访问功能的模型上下文协议(MCP)服务器。该服务器使大语言模型能够与Safari进行交互,访问控制台日志,监控网络活动,并执行浏览器自动化任务。

<a href="https://glama.ai/mcp/servers/@lxman/safari-mcp-server"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=1093864857,2360477040&fm=3081&app=3108&f=PNG?w=760&h=400" alt="Safari Server MCP 服务器" /> </a>

功能

  • 🚀 Safari 浏览器自动化:启动、控制和管理Safari会话
  • 🔍 开发者工具访问:获取控制台日志、网络日志和性能指标
  • 📸 截图:捕获页面截图以供视觉分析
  • 🕵️ 元素检查:检查DOM元素及其属性
  • JavaScript执行:在浏览器环境中运行自定义JavaScript
  • 📊 性能监控:访问计时指标和性能数据
  • 🔧 多会话管理:管理多个Safari自动化会话

预备条件

系统要求

  • 仅限macOS(Safari和SafariDriver仅在macOS上可用)
  • Node.js 18+
  • Safari 10+(内置WebDriver支持)

Safari设置

在使用此MCP服务器之前,您需要启用Safari的自动化功能:

  1. 启用开发者菜单

    • 打开Safari → 首选项 → 高级
    • 勾选“在菜单栏中显示开发者菜单”
  2. 启用远程自动化

    • 在Safari的菜单栏中:开发者 → 允许远程自动化
  3. 授权SafariDriver

    sudo safaridriver --enable
    

    输入您的管理员密码。

安装

  1. 克隆或导航到项目目录

    cd C:\Users\<用户名>\RiderProjects\AIPacketAnalyzer\safari-mcp-server
    
  2. 安装依赖项

    npm install
    
  3. 构建项目

    npm run build
    

使用方法

运行服务器

npm start

服务器将启动并监听标准输入输出中的MCP协议消息。

开发模式

npm run dev

可用工具

会话管理

  • safari_start_session - 启动新的Safari自动化会话
  • safari_close_session - 关闭Safari会话
  • safari_list_sessions - 列出所有活跃会话

导航与页面信息

  • safari_navigate - 导航到URL
  • safari_get_page_info - 获取当前页面的URL和标题

开发者工具访问

  • safari_get_console_logs - 获取浏览器控制台日志
  • safari_get_network_logs - 获取网络活动日志
  • safari_get_performance_metrics - 获取页面性能指标

浏览器交互

  • safari_execute_script - 在浏览器中执行JavaScript
  • safari_take_screenshot - 捕获页面截图
  • safari_inspect_element - 检查DOM元素

示例用法与Claude Desktop

将以下配置添加到您的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,会话ID为"main"
- 导航:safari_navigate至"https://www.google.com"
- 捕获截图:safari_take_screenshot
- 获取控制台日志:safari_get_console_logs

配置选项

在启动会话时,您可以指定选项:

{
  "sessionId": "我的会话",
  "options": {
    "enableInspection": true,     // 启用Web Inspector
    "enableProfiling": true,      // 启用时间线分析
    "usesTechnologyPreview": false // 使用Safari技术预览版
  }
}

限制

  1. 单一会话限制:Safari一次只允许一个WebDriver会话
  2. 仅限macOS:此服务器仅适用于macOS系统
  3. 特定于Safari:与Chrome DevTools Protocol不同,Safari的调试API访问有限
  4. 网络日志:网络日志依赖于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

故障排除

常见问题

  1. “未找到会话”错误

    • 确保在使用其他命令前已启动会话
    • 检查Safari是否意外崩溃或关闭
  2. “远程自动化未启用”

    • 验证Safari的开发者菜单是否已启用
    • 检查“允许远程自动化”是否已在开发者菜单中启用
  3. 权限错误

    • 运行 sudo safaridriver --enable 并输入您的密码
    • 确保终端具有必要的权限
  4. Safari无响应

    • 一次只能有一个Safari自动化会话处于活动状态
    • 在开始新会话前关闭任何现有的自动化会话

调试模式

要查看详细的日志,您可以修改服务器以包含更详细的输出,或者在自动化运行时检查Safari的Web Inspector。

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 如适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证 - 查看LICENSE文件了解详情。

相关项目