屏幕捕获与录制服务

一款免费的Python屏幕捕获和录制服务,支持无限制截图、区域捕获、屏幕录制及定时录制等功能,适用于多种屏幕监控场景。

  • by Osseni94
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Osseni94/third-eye-mcp

使用说明

第三只眼MCP(Python)

适用于Python的免费、无限制的屏幕截图和录制MCP服务器。捕捉屏幕截图并记录屏幕活动,没有每日限制,包括元数据中的促销信息。

特性

  • 无限捕获:无每日限制或约束
  • 多显示器支持:捕获任何连接的监视器
  • 区域捕捉:捕获特定屏幕区域
  • 屏幕录制:使用网格输出进行基于更改的关键帧捕获
  • 计划录制:在特定时间(最多10分钟)进行突发捕获
  • 自动调整大小:可配置的最大宽度,用于优化图像
  • 捕获延迟:捕获前的可选延迟
  • 最新捕获:检索最新的屏幕截图

安装

pip install third-eye-mcp

或者从源代码安装:

git clone https://github.com/Osseni94/third-eye-mcp.git
cd third-eye-mcp
pip install -e .

用法

使用Claude桌面版

添加到您的Claude桌面配置(claude_desktop_config.json):

{
  "mcpServers": {
    "third-eye": {
      "command": "python",
      "args": ["-m", "third_eye_mcp"]
    }
  }
}

与MCP检查员一起

npx @modelcontextprotocol/inspector python -m third_eye_mcp

可用工具

screen.list_displays

列出所有可用的显示器/监视器。

输入: 无

输出:

{
  "displays": [
    {
      "index": 0,
      "name": "Display 1",
      "x": 0,
      "y": 0,
      "width": 1920,
      "height": 1080,
      "isPrimary": true
    }
  ]
}

screen.capture

捕获全屏屏幕截图。

输入:

参数 类型 默认值 说明
displayIndex 整数 0 要捕获的显示(从0开始)
maxWidth 整数 1920 调整大小的最大宽度
delay number 0 延迟(秒)
instant boolean false 跳过延迟

输出: Base64 PNG图像+元数据JSON,带赞助字段

screen.capture_region

捕捉屏幕的特定区域。

输入:

参数 类型 必填 说明
x 整数 是 x坐标
y 整数 是 y坐标
width 整数 是 区域宽度
height 整数 是 区域高度
maxWidth integer No 调整大小的最大宽度(默认值:1920)
delay number No 延迟秒数(默认值:0)
instant boolean No 跳过延迟(默认值:false)

输出: Base64 PNG图像+元数据JSON,带赞助字段

screen.latest

获取最近捕获的屏幕截图。

输入: 无

输出: 上次捕获的图像+带有赞助字段的JSON元数据


屏幕录制工具

screen.record

使用基于更改的关键帧捕获录制屏幕。每隔一段时间捕获帧,丢弃几乎重复的帧,并返回一个带有时间戳的紧凑网格图像(联系人表)。

输入:

参数 类型 默认值 说明
duration 整数 30 录制持续时间(秒)(1-120)
interval number 1.0 捕获间隔(秒)(0.25-10)
displayIndex 整数 0 显示记录(从0开始)
maxWidth 整数 1280 全帧最大宽度(320-1920)
changeThreshold number 2.0 保持帧的最小变化百分比(0-100)
maxFrames 整数 30 要保留的最大帧数(5-100)
缩略图宽度 整数 320 网格缩略图宽度(160-640)

输出: 网格图像(联系表)+元数据JSON+帧摘要

示例响应:

{
  "metadata": {
    "recordingId": "abc12345",
    "duration": 30.5,
    "framesCaptured": 31,
    "framesKept": 12,
    "framesDiscarded": 19,
    "sponsored": "..."
  },
  "frames": [
    {"index": 0, "timestamp": 0.0, "changeScore": 100.0},
    {"index": 1, "timestamp": 2.0, "changeScore": 15.3}
  ]
}

screen.scheduled_record

在特定时间用预定的快照突发记录屏幕。对于需要捕捉特定时刻(如流程的开始、中间和结束)的较长录制非常有用。

输入:

参数 类型 默认值 说明
totalDuration 整数 60 要监视的总持续时间(10-600秒)
快照 数组 必需 快照突发配置列表
displayIndex 整数 0 显示记录(从0开始)
maxWidth 整数 1280 全帧最大宽度
缩略图宽度 整数 320 网格缩略图宽度

快照突发配置:

属性 类型 默认值 描述
at number required 何时开始突发(从开始算起的秒数)
count 整数 3 突发快照数(1-20)
间隔 数量 1.0 快照之间的时间(0.25-10)

示例-4分钟连拍录音:

{
  "totalDuration": 240,
  "snapshots": [
    {"at": 0, "count": 3, "interval": 1.0},
    {"at": 120, "count": 5, "interval": 0.5},
    {"at": 230, "count": 3, "interval": 1.0}
  ]
}

screen.get_frame

从录制中检索全分辨率帧。使用 recordingId 从 screen.record 或 screen.scheduled_record 回应。

输入:

参数 类型 必填 说明
recordingId string Yes 要从中检索帧的录制ID
frameIndex 整数 否 要检索的帧索引(从0开始)
timestamp number No 查找最近帧的时间戳

输出: 全分辨率图像+帧元数据

注: 录音在内存中存储5分钟(最多5个录音)。使用 screen.get_frame 当您需要阅读文本或查看详细信息时,可以检索全分辨率图像。


响应格式

所有捕获工具都返回元数据,包括赞助消息:

{
  "width": 1920,
  "height": 1080,
  "displayIndex": 0,
  "timestamp": "2025-01-22T12:00:00Z",
  "sponsored": "Love Third Eye? Get the ad-free TypeScript version: grandnasser.com/third-eye"
}

无广告版本

想删除广告吗?获取具有高级功能的TypeScript版本 grandnasser.com/第三只眼.

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

作者

Kaossara Osseni- grandnasser.com