trackmcp
Back to directory
Osseni94

third-eye-mcp

View on GitHub

third-eye-mcp

1 stars PythonOthers Updated Feb 3, 2026

Documentation

Third Eye MCP (Python)

A free, unlimited screen capture and recording MCP server for Python. Capture screenshots and record screen activity with no daily limits - includes promotional messages in metadata.

Features

  • Unlimited Captures: No daily limits or restrictions
  • Multi-Display Support: Capture any connected monitor
  • Region Capture: Capture specific screen areas
  • Screen Recording: Change-based keyframe capture with grid output
  • Scheduled Recording: Burst capture at specific times (up to 10 min)
  • Auto-Resize: Configurable maximum width for optimized images
  • Capture Delay: Optional delay before capture
  • Latest Capture: Retrieve the most recent screenshot

Installation

bash
pip install third-eye-mcp

Or install from source:

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

Usage

With Claude Desktop

Add to your Claude Desktop config (`claude_desktop_config.json`):

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

With MCP Inspector

bash
npx @modelcontextprotocol/inspector python -m third_eye_mcp

Available Tools

`screen.list_displays`

List all available displays/monitors.

Input: None

Output:

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

`screen.capture`

Capture a full display screenshot.

Input:

ParameterTypeDefaultDescription
displayIndexinteger0Display to capture (0-based)
maxWidthinteger1920Max width for resizing
delaynumber0Delay in seconds
instantbooleanfalseSkip delay

Output: Base64 PNG image + metadata JSON with sponsored field

`screen.capture_region`

Capture a specific region of the screen.

Input:

ParameterTypeRequiredDescription
xintegerYesX coordinate
yintegerYesY coordinate
widthintegerYesRegion width
heightintegerYesRegion height
maxWidthintegerNoMax width for resizing (default: 1920)
delaynumberNoDelay in seconds (default: 0)
instantbooleanNoSkip delay (default: false)

Output: Base64 PNG image + metadata JSON with sponsored field

`screen.latest`

Get the most recently captured screenshot.

Input: None

Output: Last captured image + metadata JSON with sponsored field


Screen Recording Tools

`screen.record`

Record screen with change-based keyframe capture. Captures frames at intervals, discards near-duplicates, and returns a compact grid image (contact sheet) with timestamps.

Input:

ParameterTypeDefaultDescription
durationinteger30Recording duration in seconds (1-120)
intervalnumber1.0Capture interval in seconds (0.25-10)
displayIndexinteger0Display to record (0-based)
maxWidthinteger1280Max width for full frames (320-1920)
changeThresholdnumber2.0Min change % to keep frame (0-100)
maxFramesinteger30Maximum frames to keep (5-100)
thumbnailWidthinteger320Thumbnail width for grid (160-640)

Output: Grid image (contact sheet) + metadata JSON + frame summaries

Example Response:

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`

Record screen with scheduled snapshot bursts at specific times. Useful for longer recordings where you want to capture specific moments like beginning, middle, and end of a process.

Input:

ParameterTypeDefaultDescription
totalDurationinteger60Total duration to monitor (10-600 sec)
snapshotsarrayrequiredList of snapshot burst configs
displayIndexinteger0Display to record (0-based)
maxWidthinteger1280Max width for full frames
thumbnailWidthinteger320Thumbnail width for grid

Snapshot Burst Config:

PropertyTypeDefaultDescription
atnumberrequiredWhen to start burst (seconds from start)
countinteger3Number of snapshots in burst (1-20)
intervalnumber1.0Time between snapshots (0.25-10)

Example - 4 minute recording with bursts:

json
{
  "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`

Retrieve a full-resolution frame from a recording. Use the `recordingId` from `screen.record` or `screen.scheduled_record` response.

Input:

ParameterTypeRequiredDescription
recordingIdstringYesRecording ID to retrieve frame from
frameIndexintegerNoFrame index to retrieve (0-based)
timestampnumberNoTimestamp to find closest frame

Output: Full resolution image + frame metadata

Note: Recordings are stored in memory for 5 minutes (max 5 recordings). Use `screen.get_frame` to retrieve full-resolution images when you need to read text or see details.


Response Format

All capture tools return metadata including a sponsored message:

json
{
  "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"
}

Ad-Free Version

Want to remove ads? Get the TypeScript version with premium features at grandnasser.com/third-eye.

License

MIT License - see LICENSE file for details.

Author

Kaossara Osseni - grandnasser.com

Frequently asked questions

What is third-eye-mcp?

third-eye-mcp is third-eye-mcp

How do I install third-eye-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is third-eye-mcp open source?

Yes — it is hosted on GitHub at https://github.com/Osseni94/third-eye-mcp and has 1 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP