返回市场
屏幕捕获器

屏幕捕获器

作者:rohanrav8 星标更新:2025-08-24

项目介绍

Screeny Banner

MCP Server version PyPI Downloads macOS License: MIT

Screeny MCP Server: 首先考虑隐私的macOS截图工具,用于AI代理

一个以隐私为中心,仅限macOS的MCP服务器,允许AI代理捕获预先批准的应用窗口截图,提供安全的视觉上下文,用于开发和调试任务。

安装MCP服务器

[!IMPORTANT] 需要屏幕捕捉权限+窗口审批设置-请参阅以下说明。

🔒 首先考虑隐私的设计

与其它截图工具不同,Screeny需要在每次捕获窗口之前获得用户的明确批准:

  • 窗口审批系统 - 只有预先批准的窗口可以被捕获(在设置期间批准)
  • 用户控制访问 - 您决定哪些窗口可以访问
  • 非侵入性捕获 - 在后台捕获截图,不会改变窗口焦点或中断您的工作流程
  • 无外部连接 - Screeny完全在您的设备上运行,截图在使用后立即删除

可用工具

  • listWindows - 列出所有已批准的应用窗口,这些窗口可用于截图。

    • 只显示用户批准的窗口
  • takeScreenshot - 根据ID捕获特定窗口的截图。

    • 后台捕获窗口 - 不需要将窗口带到前台,但不能捕获最小化的窗口
    • 提供实际像素数据 - 完整保真度图像,不是OCR或文本提取
    • JPEG压缩,可配置上限 - 截图总是JPEG压缩,并带有base64负载上限(默认预设:中等 / 250KB),可配置并限制在100–900KB

资源

  • screeny://info - 服务器信息和配置详情

配置

Claude Desktop

  1. 打开Claude设置 → 开发者 → 编辑配置
  2. 添加配置
  3. 保存配置后重启Claude Desktop
<details> <summary><strong>使用pipx</strong></summary>

首先安装:pipx install mcp-server-screeny

{
  "mcpServers": {
    "screeny": {
      "command": "mcp-server-screeny",
      "args": []
    }
  }
}

注意: 如果遇到ENOENT错误,请将"mcp-server-screeny"替换为可执行文件的完整路径(通过终端中的which mcp-server-screeny找到)。

</details> <details> <summary><strong>使用uvx</strong></summary>
{
  "mcpServers": {
    "screeny": {
      "command": "uvx",
      "args": ["mcp-server-screeny"]
    }
  }
}

注意: 如果遇到“spawn uvx ENOENT”错误,请将"uvx"替换为uvx的完整路径:

which uvx  # 查找您的uvx路径

然后在配置中使用该完整路径(例如,"/opt/homebrew/bin/uvx")。

</details>

Cursor

  1. 打开Cursor设置 → 工具与集成 → MCP工具
  2. 添加配置
  3. 保存配置后重启Cursor
<details> <summary><strong>使用pipx</strong></summary>

首先安装:pipx install mcp-server-screeny

{
  "mcpServers": {
    "screeny": {
      "command": "mcp-server-screeny",
      "args": []
    }
  }
}

注意: 如果遇到ENOENT错误,请将"mcp-server-screeny"替换为可执行文件的完整路径(通过终端中的which mcp-server-screeny找到)。

</details> <details> <summary><strong>使用uvx</strong></summary>
{
  "mcpServers": {
    1. "screeny": {
      "command": "uvx",
      "args": ["mcp-server-screeny"]
    }
  }
}

注意: 如果遇到“spawn uvx ENOENT”错误,请将"uvx"替换为uvx的完整路径:

which uvx  # 查找您的uvx路径

然后在配置中使用该完整路径(例如,"/opt/homebrew/bin/uvx")。

</details>

[!NOTE] > Cursor MCP主机

  • Cursor自动上下文总结可能会触发循环工具调用(重复截图)。
  • 如果发生这种情况,降低KB上限(使用较小的预设)或选择具有更大上下文窗口的模型。

设置

1. 授予屏幕捕捉权限(必需)

重要提示: 在运行窗口审批之前授予权限。

注意:您需要授予屏幕捕捉权限给两者:

  1. 您的终端应用(如Terminal.app、iTerm2等)- 运行设置所需(之后可以禁用)
  2. 您的MCP主机(如Claude Desktop、Cursor)- 捕获截图所需

添加它们的方法:

  1. 打开系统设置 > 隐私与安全性 > 屏幕与系统音频录制
  2. 点击**"+"**按钮
  3. 添加您的终端应用和MCP主机应用
  4. 授予权限后重新启动两个应用

2. 窗口审批(必需)

在上面配置好您的MCP客户端后,批准哪些窗口可以被捕获。

<details> <summary><strong>如果使用pipx</strong></summary>
# 交互式审批
mcp-server-screeny --setup

# 自动批准所有当前窗口
mcp-server-screeny --setup --allow-all
</details> <details> <summary><strong>如果使用uvx</strong></summary>
# 交互式审批
uvx mcp-server-screeny --setup

# 自动批准所有当前窗口
uvx mcp-server-screeny --setup --allow-all
</details>

审批记录保存在~/.screeny/approved_windows.json。当您想要更新已批准窗口列表时,重新运行设置。

高级选项(可选)

在设置过程中,您可以配置截图大小预设(影响稳定性和清晰度):

  • 小型(50KB) — 最稳定;细小文本会模糊
  • 小(100KB) — 推荐默认值;平衡清晰度和稳定性
  • 中等(250KB) — 更多细节;可能较慢且更重
  • 大(500KB) — 高细节;可能会触发客户端总结
  • 特大(750KB) — 最大细节;最易出错

您的选择保存在~/.screeny/config.json作为max_b64_kb。您也可以通过环境变量SCREENY_MAX_B64_KB覆盖。活动上限限制在100–900KB

安全与隐私

  • 只能捕获用户批准的窗口
  • 所有处理都在您的机器上本地进行
  • 截图是临时的,在使用后立即删除

故障排除

权限问题

# 测试窗口检测和权限
mcp-server-screeny --debug

# 如果窗口更改,重新运行设置
mcp-server-screeny --setup

常见问题

"spawn uvx ENOENT" 错误

  • 解决方案:在您的MCP配置中使用uvx的完整路径,而不是仅仅"uvx"
  • 查找路径:which uvx
  • 示例:"/opt/homebrew/bin/uvx""/usr/local/bin/uvx"

"未找到已批准的窗口"

  • 解决方案:首先运行mcp-server-screeny --setup(如果使用uvx,则运行uvx mcp-server-screeny --setup

"需要屏幕录制权限"或"未找到窗口"

  • 解决方案:在系统设置 > 隐私与安全性 > 屏幕与系统音频录制中授予屏幕录制权限
    • 点击"+"按钮并手动添加您的MCP主机(如Claude Desktop、Cursor等)
    • 授予权限后重新启动您的MCP主机应用
  • 授予权限后再尝试运行设置

贡献

欢迎提交拉取请求!如果您有任何新想法、错误修复或增强功能,请随时贡献。

这是我第一个MCP项目——如果您遇到任何错误,请打开一个问题,我会尽力解决!

<details> <summary><strong>为什么我创建了这个工具</strong></summary>

我创建这个工具是为了简化我的移动开发工作流程。我厌倦了反复手动截屏来描述UI问题。有了Screeny,Cursor可以直接捕获我的iOS模拟器截图并在循环中迭代设计。我很期待看到其他人如何使用这个工具!

</details>

要求

  • Python 3.10+
  • macOS
  • 屏幕捕捉权限

许可证

MIT许可证