MCP屏幕捕捉
一个MCP(模型上下文协议)服务器,为Claude Desktop提供屏幕截图功能,模拟Windows Snipping Tool功能。
概述
MCP ScreenCatch使Claude Desktop能够捕获用户选择的屏幕区域的屏幕截图。该工具允许用户突出显示监视器的区域,捕获它们,并保存带有时间戳的图像,以便于检索和处理。
目标
- 无缝集成:提供Claude Desktop可以调用的MCP命令以启动屏幕截图
- 交互式选择:允许用户使用熟悉的截图界面选择屏幕的特定区域
- 多显示器支持:跨多个显示器工作,实现灵活的屏幕截图
- 顺序捕获:使用户无需重新启动工具即可连续捕获多个屏幕截图
- 带时间戳的文件:自动为每次捕获添加时间戳,以便按时间顺序排列
- 可配置输出:让用户指定捕获图像的输出目录
- 管道准备就绪:将文件保存在其他MCP命令或外部应用程序可访问的位置
特性
核心功能
- 区域选择:点击并拖动界面以选择屏幕区域
- 捕获并保存:完成并保存所选区域的按钮/图标
- 连续模式:每次捕获后,提示用户:
- 捕获另一个屏幕截图 - 退出该工具
- 时间戳命名:用ISO 8601时间戳命名的文件(例如。,
capture_2025-11-27_064730.png) - 目录选择:用户可配置的输出目录
用例
- 捕获UI元素以进行调试
- 文档可视化工作流程
- 创建顺序教程或指南
- 将捕获的图像提供给Claude进行分析
- 构建可视化文档管道
技术实现
MCP协议
该工具将作为Claude Desktop可以连接的MCP服务器公开,提供:
- 工具:
capture_screen-启动屏幕截图界面 - 工具:
set_output_directory-配置捕获的保存位置 - 工具:
list_captures-检索带时间戳的捕获文件
技术栈
- 语言:Types/Node.js
- MCP-SDK:@modelcontextprotocol/sdk
- 屏幕截图:跨平台屏幕截图桌面
- 图像处理:图像裁剪和操作清晰
- UI框架:电子用于透明覆盖和区域选择
文件格式
- 默认格式:PNG(无损,适合UI捕获)
- 命名约定:
capture_YYYY-MM-DD_HHMMSS.png - 元数据:可选的JSON sidecar,带有捕获时间戳和维度
安装
npm install
npm run build配置
添加到Claude桌面配置(claude_desktop_config.json):
{
"mcpServers": {
"screencatch": {
"command": "node",
"args": ["/path/to/mcp-screencatch/build/index.js"]
}
}
}用法
来自克劳德桌面
配置后,您可以要求Claude捕获屏幕截图:
Claude, can you capture a screenshot of my screen?交互式叠加
- 电子叠加窗口将出现,覆盖您的屏幕
- 单击并拖动以选择要捕获的区域
- 点击 捕捉 按钮或按键 进入 保存
- 按 退出 或点击 取消 流产
- 捕获的图像会与时间戳一起保存
可用命令
截图:
Claude, capture a screenshot设置输出目录:
Claude, set the screenshot output directory to C:\Users\johne\screenshots列出最近捕获的内容:
Claude, list my recent screenshots文件命名
屏幕截图会自动使用ISO 8601时间戳命名:
capture_2025-11-27_143052.pngcapture_2025-11-27_143105.png
这确保了按时间顺序排列,并防止了文件名冲突。
开发状态
✅ 实现 -核心功能完成
- ✅ 带stdio传输的MCP服务器
- ✅ 使用电子叠加进行交互式区域选择
- ✅ 带时间戳的文件命名
- ✅ 可配置的输出目录
- ✅ 列出并管理捕获
- ⚠️ 备注:需要Electron,这将为node_modules增加约150MB。对于生产用途,考虑使用电子助洗剂进行包装。
未来的增强功能
- 支持全屏和窗口捕获
- 多种图像格式选项(PNG、JPG、WebP)
- 注释工具(箭头、文本、高亮显示)
- 剪贴板集成
- 自动清理旧捕获
- 截图比较工具
许可证
麻省理工学院
贡献
欢迎投稿!请打开问题或提交拉取请求。
