关于 Screeny
Screeny 是面向 macOS 的 MCP 服务,让 AI Agent 捕获用户预先批准的应用窗口截图,适用于开发与调试中的视觉检查。截图在本机处理并在使用后立即删除,且不会切换窗口焦点。
主要功能
- 01仅捕获预先批准的窗口
- 02后台截图且不改变焦点
- 03返回完整像素图像数据
- 04配置 JPEG 负载大小上限
- 05截图使用后立即删除
适用场景
- 01检查 iOS 模拟器中的界面
- 02为开发问题提供视觉上下文
- 03在不中断当前操作时捕获窗口
MCP 相关
该 MCP 服务提供 `listWindows` 和 `takeScreenshot` 工具,以及 `screeny://info` 资源。只有用户批准的窗口可供兼容 MCP 客户端列出和捕获。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍

Screeny MCP 服务:以隐私为先的 macOS 截图工具,适用于 AI Agent
一款以隐私为先、仅适用于 macOS 的 MCP 服务,可让 AI Agent 对预先批准的应用窗口进行截图,为开发和调试任务提供安全的视觉上下文。
重要
需要屏幕录制权限和窗口批准设置——请参阅下方说明。
🔒 以隐私为先的设计
与其他截图工具不同,Screeny 要求用户在捕获每个窗口前明确批准:
- 窗口批准系统——只能捕获预先批准的窗口(在设置期间批准)
- 由用户控制访问权限——由你决定哪些窗口可以访问
- 非侵入式捕获——在后台截图,不改变窗口焦点,也不中断你的工作流
- 无外部连接——Screeny 完全在你的设备上运行,截图使用后立即删除
可用工具
-
listWindows- 列出所有可用于截图的已批准应用窗口。- 仅显示用户已批准的窗口
-
takeScreenshot- 根据窗口 ID 对指定窗口进行截图。- 在后台捕获窗口 - 无需将窗口置于前台,但无法捕获最小化的窗口
- 提供实际像素数据 - 完整保真的图像,而非 OCR 或文本提取结果
- 可配置上限的 JPEG 压缩 - 截图始终采用 JPEG 压缩,并设有 base64 载荷上限(默认预设:Medium / 250KB),可配置并限制在 100–900KB
资源
screeny://info- 服务信息和配置详情
配置
Claude Desktop
- 打开 Claude 设置 → Developer → Edit Config
- 添加配置
- 保存配置后,重启 Claude Desktop
使用 pipx
首先安装:pipx install mcp-server-screeny
{
"mcpServers": {
"screeny": {
"command": "mcp-server-screeny",
"args": []
}
}
}
**注意:**如果出现
ENOENT错误,请将"mcp-server-screeny"替换为可执行文件的完整路径(在终端中运行which mcp-server-screeny查找)。
使用 uvx
{
"mcpServers": {
"screeny": {
"command": "uvx",
"args": ["mcp-server-screeny"]
}
}
}
**注意:**如果出现 "spawn uvx ENOENT" 错误,请将
"uvx"替换为 uvx 的完整路径:which uvx # 查找 uvx 的路径然后在配置中使用该完整路径(例如,
"/opt/homebrew/bin/uvx")。
- 打开 Cursor 设置 → Tools & Integrations → MCP Tools
- 添加配置
- 保存配置后重启 Cursor
使用 pipx
首先安装:pipx install mcp-server-screeny
{
"mcpServers": {
"screeny": {
"command": "mcp-server-screeny",
"args": []
}
}
}
**注意:**如果出现
ENOENT错误,请将"mcp-server-screeny"替换为可执行文件的完整路径(在终端中运行which mcp-server-screeny查找)。
使用 uvx
{
"mcpServers": {
"screeny": {
"command": "uvx",
"args": ["mcp-server-screeny"]
}
}
}
**注意:**如果出现 "spawn uvx ENOENT" 错误,请将
"uvx"替换为 uvx 的完整路径:which uvx # 查找 uvx 的路径然后在配置中使用该完整路径(例如,
"/opt/homebrew/bin/uvx")。
说明
> Cursor MCP 主机
- Cursor 自动上下文摘要可能会触发工具调用循环(重复截屏)。
- 如果发生这种情况,请降低 KB 上限(选择更小的预设),或选择上下文窗口更大的模型。
设置
1. 授予屏幕录制权限(必需)
**重要:**在运行窗口审批之前,请先授予权限。
注意:您需要同时向以下两者授予屏幕录制权限:
- 您的终端应用程序(Terminal.app、iTerm2 等)——运行设置所需(之后可以关闭)
- 您的 MCP 主机(Claude Desktop、Cursor)——截屏所需
添加方法:
- 打开系统设置 > 隐私与安全性 > 屏幕与系统音频录制
- 点击 "+" 按钮
- 添加您的终端应用程序和 MCP 主机应用程序
- 授予权限后,重启这两个应用程序
2. 窗口审批(必需)
在上方配置 MCP 客户端后,请批准允许截取的窗口。
如果使用 pipx
# Interactive approval
mcp-server-screeny --setup
# Auto-approve all current windows
mcp-server-screeny --setup --allow-all
如果使用 uvx
# Interactive approval
uvx mcp-server-screeny --setup
# Auto-approve all current windows
uvx mcp-server-screeny --setup --allow-all
审批结果保存在 ~/.screeny/approved_windows.json 中。需要更新已批准窗口列表时,请重新运行设置。
高级选项(可选)
在设置过程中,您可以配置截屏大小预设(会影响稳定性和清晰度):
- Tiny(50KB) — 最稳定;细小文字会模糊
- Small(100KB) — 推荐的默认设置;清晰度和稳定性均衡
- Medium(250KB) — 细节更多;速度可能更慢,占用也更大
- Large(500KB) — 细节丰富;可能触发客户端摘要
- XL(750KB) — 细节最多;最容易出错
您的选择会以 max_b64_kb 的形式保存在 ~/.screeny/config.json 中。您也可以通过 SCREENY_MAX_B64_KB 环境变量覆盖该设置。生效的上限会限制在 100–900KB 范围内。
安全与隐私
- 只能截取用户已批准的窗口
- 所有处理都在您的设备本地进行
- 截屏是临时的,使用后会立即删除
故障排除
权限问题
# Test window detection and permissions
mcp-server-screeny --debug
# Re-run setup if windows changed
mcp-server-screeny --setup
常见问题
"spawn uvx ENOENT" 错误
- 解决方法:在 MCP 配置中使用 uvx 的完整路径,而不是仅使用
"uvx" - 使用以下命令查找路径:
which uvx - 示例:
"/opt/homebrew/bin/uvx"或"/usr/local/bin/uvx"
"No approved windows found"
- 解决方法:先运行
mcp-server-screeny --setup(如果使用 uvx,则运行uvx mcp-server-screeny --setup)
"Screen Recording permission required" 或 "No windows found"
- 解决方法:在系统设置 > 隐私与安全性 > 屏幕与系统音频录制中授予屏幕录制权限
- 点击 "+" 按钮,并手动添加您的 MCP 主机(Claude Desktop、Cursor 等)
- 授予权限后,重启 MCP 主机应用程序
- 授予权限后,请尝试重新运行设置
贡献
欢迎提交拉取请求!欢迎贡献新想法、错误修复或改进。
这是我的第一个 MCP 项目——如果你遇到任何错误,请提交一个问题,我会尽力修复!
我为什么创建这个工具
我创建这个工具是为了简化我的移动开发工作流。我厌倦了反复手动截屏来描述 UI 问题。借助 Screeny,Cursor 可以直接捕获我的 iOS 模拟器截图,并通过循环迭代设计。我很期待看到其他人会如何使用它!
要求
- Python 3.10+
- macOS
- 屏幕录制权限
许可证
MIT 许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。