Safari Screenshot MCP Server使用说明
项目简介
Safari Screenshot MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,它利用 macOS 上的 Safari 浏览器和系统截图功能,为 LLM 客户端提供网页屏幕截图服务。通过注册 'take_screenshot' 工具,该服务器允许 LLM 应用自动化截取网页内容,并可自定义截图尺寸、缩放级别和等待时间。
主要功能点
- 网页截图工具: 提供 'take_screenshot' 工具,允许客户端指定 URL 和截图参数,服务器将使用 Safari 浏览器访问该 URL 并截取屏幕截图。
- 可配置截图参数: 支持自定义截图的宽度、高度、缩放级别和页面加载等待时间,以满足不同场景的截图需求。
- 高质量截图: 利用 macOS 原生 'screencapture' 命令,保证截图质量和 Safari 浏览器的渲染效果。
- 易于集成: 通过 MCP 协议与客户端通信,可以方便地集成到支持 MCP 协议的 LLM 应用中,例如 Cursor 编辑器。
安装步骤
- 安装 Node.js: 确保你的 macOS 系统上已安装 Node.js (>= 14.0.0)。
- 安装 npm 包: 在终端中,使用 npm 安装 'safari-screenshot' 包:
npm install @rogerheykoop/mcp-safari-screenshot - 配置 Accessibility 权限: 由于服务器需要控制 Safari 和执行系统截图,需要授予 "终端 (Terminal)" 或你使用的 IDE "辅助功能 (Accessibility)" 权限。
- 打开 “系统偏好设置” -> “安全性与隐私” -> “隐私” -> “辅助功能”。
- 点击左下角的锁图标解锁设置,然后勾选 “终端” 或你的 IDE 应用,添加到允许控制电脑的列表中。
服务器配置
要将 Safari Screenshot MCP Server 集成到 MCP 客户端(例如 Cursor),你需要配置服务器的启动命令。以下是 Cursor 中 “Add MCP Server” 的配置信息示例:
{ "serverName": "safari-screenshot", "command": "npx -y @rogerheykoop/mcp-safari-screenshot" }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,例如 'safari-screenshot'。
- 'command': 服务器启动命令。 'npx -y @rogerheykoop/mcp-safari-screenshot' 会自动下载并执行 'safari-screenshot' npm 包。 如果你本地开发,可以使用 'npx -y /path/to/mcp-safari-screenshot/dist/index.js' (请替换 '/path/to/mcp-safari-screenshot' 为你的本地仓库路径)。
注意: 'args' 字段在此配置中为空,因为该服务器默认通过标准输入/输出 (stdio) 进行通信,无需额外命令行参数。
基本使用方法
在 MCP 客户端配置并连接到 Safari Screenshot MCP Server 后,你可以通过自然语言指令或特定的 MCP 请求来调用 'take_screenshot' 工具。
示例指令 (在 Cursor 中):
- 'Take a screenshot of https://apple.com at desktop size'
- 'Capture https://github.com on iPhone 12 Pro'
- 'Screenshot example.com at 50% zoom'
服务器会解析指令中的 URL、设备类型(或尺寸)、缩放级别等信息,并调用 Safari 浏览器截取相应的网页截图。截图文件默认保存在服务器运行目录下的 'screenshots' 文件夹中,并会在响应中返回截图保存路径。
测试服务器 (本地开发):
你可以使用以下命令直接测试 MCP 服务器的发现 (discover) 和执行 (execute) 功能:
# 测试发现 (查看服务器 capabilities) echo '{"type":"discover"}' | npx -y @rogerheykoop/mcp-safari-screenshot # 测试截图工具 (请求截取 apple.com 首页) echo '{"type":"execute","tool":"take_screenshot","input":"Take a screenshot of https://apple.com","requestId":"123","parameters":{"url": "https://apple.com"}}' | npx -y @rogerheykoop/mcp-safari-screenshot
请注意,在实际 MCP 客户端交互中,请求和响应的格式会由客户端库自动处理。
信息
分类
桌面与硬件