屏幕截图工具

一个用于macOS的轻量级屏幕截图和窗口录制工具,支持显示截图、窗口截图和窗口录制功能。

  • by FrontMage
  • Swift
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 FrontMage/screenshot_mcp

使用说明

屏幕截图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_displays
  • list_windows
  • screenshot_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+,并记录所有系统音频,而不仅仅是窗口。
  • 如果屏幕截图为空,请确保授予了屏幕录制权限。

许可证

麻省理工学院