使用说明
屏幕截图MCP(macOS)
用于macOS屏幕截图的最小MCP服务器,带有Swift CLI后端。支持:
- 显示屏幕截图
- 窗口截图
- 窗口录制(持续时间或开始/停止)
- 列出显示/窗口
需求
- macOS 12+(核心图形API)
- Swift(Xcode CLI工具)
- Node.js 18+
- 授予终端或主机应用程序的屏幕录制权限
快速入门
npm install
swift build
node server.js
SwiftUI用户界面(无Xcode)
swift build
swift run screenshot_mcp_app
调试日志
SwiftUI应用程序将日志写入 ~/Documents/screenshot_mcp/debug.log 默认情况下。
MCP工具
list_displayslist_windowsscreenshot_display{ display_id, output_path? }screenshot_window{ window_id, output_path? }record_window_duration{ window_id, duration_seconds, fps?, system_audio?, output_path? }record_window_start{ window_id, fps?, system_audio?, output_path? }record_window_stop{ recording_id }
CLI使用情况
swift run screenshot_mcp list-displays
swift run screenshot_mcp list-windows
swift run screenshot_mcp screenshot-display <display_id> ./captures/display.png
swift run screenshot_mcp screenshot-window <window_id> ./captures/window.png
swift run screenshot_mcp record-window-duration <window_id> ./captures/window.mp4 5 10 true
swift run screenshot_mcp record-window-start <window_id> ./captures/window.mp4 10 true
# stop with Ctrl+C or SIGINT
配置
SCREENSHOT_MCP_BIN:编译后的Swift二进制文件的路径SCREENSHOT_MCP_OUTPUT_DIR:屏幕截图的默认输出目录
备注
- Swift CLI使用
CGDisplayCreateImage和CGWindowListCreateImage. - 窗口录制采样窗口帧(默认10 fps),并通过以下方式写入MP4
AVAssetWriter. - 系统音频捕获需要macOS 13+,并记录所有系统音频,而不仅仅是窗口。
- 如果屏幕截图为空,请确保授予了屏幕录制权限。
许可证
麻省理工学院
