第三只眼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
