1. Conduid
  2. Developer Tools
  3. Third Eye MCP
MCP server · Developer Tools

Third Eye MCP

Free MCP server for screen capture and recording with promotional ads

Unclaimed MIT last commit 8 months ago devtools
49Fair

Scored 5 months ago · breakdown

About Third Eye MCP

Third Eye MCP is an MCP server published by Osseni94 in the Developer Tools category: free MCP server for screen capture and recording with promotional ads.

The repository has 1 stars and 0 forks, with the last commit 8 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/Osseni94/third-eye-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Third Eye MCP

Powered by Claude · Grounded in docs

I know everything about Third Eye MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository yesterday. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
  • !Dependencies pinnedNo lockfile. Installs can pull different code over time.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

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

pip install third-eye-mcp

Or install from source:

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):

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

With MCP Inspector

npx @modelcontextprotocol/inspector python -m third_eye_mcp

Available Tools

screen.list_displays

List all available displays/monitors.

Input: None

Output:

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

screen.capture

Capture a full display screenshot.

Input:

Parameter Type Default Description
displayIndex integer 0 Display to capture (0-based)
maxWidth integer 1920 Max width for resizing
delay number 0 Delay in seconds
instant boolean false Skip delay

Output: Base64 PNG image + metadata JSON with sponsored field

screen.capture_region

Capture a specific region of the screen.

Input:

Parameter Type Required Description
x integer Yes X coordinate
y integer Yes Y coordinate
width integer Yes Region width
height integer Yes Region height
maxWidth integer No Max width for resizing (default: 1920)
delay number No Delay in seconds (default: 0)
instant boolean No Skip 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:

Parameter Type Default Description
duration integer 30 Recording duration in seconds (1-120)
interval number 1.0 Capture interval in seconds (0.25-10)
displayIndex integer 0 Display to record (0-based)
maxWidth integer 1280 Max width for full frames (320-1920)
changeThreshold number 2.0 Min change % to keep frame (0-100)
maxFrames integer 30 Maximum frames to keep (5-100)
thumbnailWidth integer 320 Thumbnail width for grid (160-640)

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

Example Response:

{
  "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:

Parameter Type Default Description
totalDuration integer 60 Total duration to monitor (10-600 sec)
snapshots array required List of snapshot burst configs
displayIndex integer 0 Display to record (0-based)
maxWidth integer 1280 Max width for full frames
thumbnailWidth integer 320 Thumbnail width for grid

Snapshot Burst Config:

Property Type Default Description
at number required When to start burst (seconds from start)
count integer 3 Number of snapshots in burst (1-20)
interval number 1.0 Time between snapshots (0.25-10)

Example - 4 minute recording with bursts:

{
  "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:

Parameter Type Required Description
recordingId string Yes Recording ID to retrieve frame from
frameIndex integer No Frame index to retrieve (0-based)
timestamp number No Timestamp 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:

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

README fetched from the repository yesterday. The original is authoritative.

Questions

About Third Eye MCP

How do I install Third Eye MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Third Eye MCP safe to use with an AI agent?

Its trust score is 49 out of 100 (fair). It passes 3 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Third Eye MCP still maintained?

The last commit was 8 months ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.