screenshot-mcp
A Model Context Protocol server that provides screenshot capabilities for AI assistants, including window, region, and long screenshots across Windows, macOS, and Linux.
README
Screenshot MCP Server
一个为 AI 助手提供截图功能的 MCP(Model Context Protocol)服务器。让你的 AI 助手能够看到屏幕内容。
功能特性
- 🖼️ 窗口截图: 按窗口标题或进程名截取指定窗口
- 📐 区域截图: 截取屏幕指定区域
- 📜 长截图: 自动滚动并拼接,捕获完整网页或长文档
- 📋 窗口列表: 查看所有可用窗口
- 💾 直接保存: 截图直接保存为 PNG 文件
- 🌐 跨平台: 支持 Windows、macOS 和 Linux
平台支持状态
| 平台 | 基础截图 | 长截图 | 测试状态 |
|---|---|---|---|
| Windows | ✅ 完全支持 | ✅ 完全支持 | ✅ 已充分测试 |
| macOS | ⚠️ 理论支持 | ⚠️ 理论支持 | ⚠️ 未经测试 |
| Linux | ⚠️ 理论支持 | ⚠️ 理论支持 | ⚠️ 未经测试 |
注意:
- 本项目在 Windows 平台上开发和测试,功能完整可靠
- macOS 和 Linux 平台的代码已实现,但未经过实际测试
- 如果你在 macOS 或 Linux 上使用遇到问题,欢迎提交 Issue 或 Pull Request
快速开始
在 Claude Desktop 中使用
编辑 Claude Desktop 配置文件:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
添加配置:
{
"mcpServers": {
"screenshot": {
"command": "npx",
"args": ["-y", "@ylubi/screenshot-mcp"]
}
}
}
保存后重启 Claude Desktop,即可使用截图功能。
在 Cline (VS Code) 中使用
在 VS Code 设置中搜索 "Cline: MCP Settings",或编辑 settings.json:
{
"cline.mcpServers": {
"screenshot": {
"command": "npx",
"args": ["-y", "@ylubi/screenshot-mcp"]
}
}
}
在其他 MCP 客户端中使用
参考客户端文档,使用以下配置:
{
"command": "npx",
"args": ["-y", "@ylubi/screenshot-mcp"]
}
使用方法
配置完成后,在 AI 对话中直接使用自然语言:
请截取 Chrome 浏览器窗口
请截取屏幕左上角 400x300 的区域
请列出所有打开的窗口
请对记事本窗口进行长截图
AI 会自动调用相应的截图工具。
系统要求
- Node.js >= 18.0.0(下载安装)
- 操作系统:
- Windows 10+ ✅ 已测试
- macOS 10.14+ ⚠️ 未测试
- Linux(X11/Wayland)⚠️ 未测试
首次使用时,npx 会自动下载并安装服务器,无需手动安装。
重要提示: 本项目主要在 Windows 平台上开发和测试。macOS 和 Linux 平台虽然已实现相关代码,但尚未经过充分测试。如果你在这些平台上使用,可能会遇到问题,欢迎反馈。
可用功能
窗口截图
按窗口标题或进程名截取指定窗口。
示例:
请截取 Chrome 浏览器窗口
请截取 notepad.exe 进程的窗口
区域截图
截取屏幕指定区域。
示例:
请截取屏幕左上角 400x300 的区域
请截取坐标 (100, 100) 开始,大小 500x400 的区域
长截图
自动滚动窗口并拼接多张截图,适用于网页、文档等长内容。
示例:
请对 Chrome 窗口进行长截图
请对简书网页进行长截图,保存为 article.png
特点:
- 自动滚动和拼接
- 智能检测页面底部
- 支持自定义滚动参数
- 直接保存为文件
详细说明请查看 长截图指南
窗口列表
列出所有可用窗口及其信息。
示例:
请列出所有打开的窗口
文档
常见问题
截图失败怎么办?
- 确认窗口可见且未最小化
- 尝试使用进程名而不是窗口标题
- 检查是否有权限限制
长截图效果不好?
- 确保页面滚动到顶部
- 增加滚动延迟参数(1000-1500ms)
- 查看 长截图指南 的故障排除部分
支持哪些应用?
- ✅ 浏览器(Chrome、Edge、Firefox)- Windows 已测试
- ✅ 文本编辑器(记事本、VS Code)- Windows 已测试
- ✅ 办公软件(Word、Excel)- Windows 已测试
- ✅ 大多数标准 Windows 应用
- ⚠️ macOS 和 Linux 应用未经测试
- ⚠️ 某些自定义 GUI 框架可能不支持长截图
macOS/Linux 用户注意
本项目目前仅在 Windows 平台上经过充分测试。如果你在 macOS 或 Linux 上使用:
- 基础截图功能应该可以工作(使用 node-screenshots 库)
- 长截图功能可能需要调整(滚动模拟方式不同)
- 遇到问题请在 GitHub 提交 Issue,附上详细的错误信息
- 欢迎提交 Pull Request 改进跨平台支持
技术信息
技术栈
- TypeScript/JavaScript
- MCP (Model Context Protocol)
- node-screenshots(跨平台截图库)
性能参考
| 截图尺寸 | 响应时间 | 数据量 |
|---|---|---|
| 200x200 | < 1秒 | ~200KB |
| 400x300 | 1-2秒 | ~600KB |
| 800x600 | 3-5秒 | ~2.5MB |
建议:普通截图使用 200-400 像素宽度,长截图会自动处理大小。
开发
从源码运行
git clone <repository-url>
cd screenshot-mcp
npm install
npm run build
开发命令
npm run dev # 开发模式(监听文件变化)
npm test # 运行测试
npm run test:all # 运行所有测试
本地测试配置
如果从源码运行,使用以下配置:
{
"mcpServers": {
"screenshot": {
"command": "node",
"args": ["/absolute/path/to/screenshot-mcp/dist/index.js"]
}
}
}
许可证
MIT
交流反馈
如果你在使用过程中遇到问题、有任何建议或者新需求,欢迎通过以下方式联系:
- 📧 邮箱: yhuiche@gmail.com
- � QQ 群: 点击加入(群号:661990120)
- �🐛 问题反馈: GitHub Issues
- ⭐ 项目地址: github.com/ylubi/screenshot-mcp
欢迎 Star ⭐ 和贡献代码!
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。