third-eye-mcp

Servidor MCP de captura de pantalla con prioridad en la privacidad para agentes de codificación de IA. Permite que Claude, Cursor o cualquier IA compatible con MCP vea tu pantalla con control total.

Documentación

Third Eye Logo

PyPI Python Versions Downloads License

Third Eye MCP (Python)

Un servidor MCP de captura y grabación de pantalla gratuito e ilimitado para Python. Capture capturas de pantalla y grabe la actividad de la pantalla sin límites diarios: incluye mensajes promocionales en los metadatos.

Características

  • Capturas ilimitadas: Sin límites ni restricciones diarias
  • Soporte multi-pantalla: Capture cualquier monitor conectado
  • Captura de región: Capture áreas específicas de la pantalla
  • Grabación de pantalla: Captura de fotogramas clave basada en cambios con salida en cuadrícula
  • Grabación programada: Captura en ráfagas en momentos específicos (hasta 10 min)
  • Redimensionado automático: Ancho máximo configurable para imágenes optimizadas
  • Retardo de captura: Retardo opcional antes de la captura
  • Última captura: Recupere la captura de pantalla más reciente

Instalación

pip install third-eye-mcp

O instale desde el código fuente:

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

Uso

Con Claude Desktop

Agregue a su configuración de Claude Desktop (claude_desktop_config.json):

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

Con MCP Inspector

npx @modelcontextprotocol/inspector python -m third_eye_mcp

Herramientas disponibles

screen.list_displays

Lista todas las pantallas/monitores disponibles.

Entrada: Ninguna

Salida:

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

screen.capture

Capture una captura de pantalla completa de la pantalla.

Entrada:

ParámetroTipoPredeterminadoDescripción
displayIndexinteger0Pantalla a capturar (basado en 0)
maxWidthinteger1920Ancho máximo para redimensionar
delaynumber0Retardo en segundos
instantbooleanfalseOmitir retardo

Salida: Imagen PNG en Base64 + JSON de metadatos con campo patrocinado

screen.capture_region

Capture una región específica de la pantalla.

Entrada:

ParámetroTipoRequeridoDescripción
xintegerSíCoordenada X
yintegerSíCoordenada Y
widthintegerSíAncho de la región
heightintegerSíAlto de la región
maxWidthintegerNoAncho máximo para redimensionar (predeterminado: 1920)
delaynumberNoRetardo en segundos (predeterminado: 0)
instantbooleanNoOmitir retardo (predeterminado: false)

Salida: Imagen PNG en Base64 + JSON de metadatos con campo patrocinado

screen.latest

Obtenga la captura de pantalla más reciente.

Entrada: Ninguna

Salida: Última imagen capturada + JSON de metadatos con campo patrocinado


Herramientas de grabación de pantalla

screen.record

Grabe la pantalla con captura de fotogramas clave basada en cambios. Capture fotogramas a intervalos, descarte casi duplicados y devuelva una imagen de cuadrícula compacta (hoja de contactos) con marcas de tiempo.

Entrada:

ParámetroTipoPredeterminadoDescripción
durationinteger30Duración de la grabación en segundos (1-120)
intervalnumber1.0Intervalo de captura en segundos (0.25-10)
displayIndexinteger0Pantalla a grabar (basado en 0)
maxWidthinteger1280Ancho máximo para fotogramas completos (320-1920)
changeThresholdnumber2.0% mínimo de cambio para conservar el fotograma (0-100)
maxFramesinteger30Máximo de fotogramas a conservar (5-100)
thumbnailWidthinteger320Ancho de miniatura para la cuadrícula (160-640)

Salida: Imagen de cuadrícula (hoja de contactos) + JSON de metadatos + resúmenes de fotogramas

Ejemplo de respuesta:

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

Grabe la pantalla con ráfagas de capturas programadas en momentos específicos. Útil para grabaciones más largas donde desea capturar momentos específicos como el inicio, el medio y el final de un proceso.

Entrada:

ParámetroTipoPredeterminadoDescripción
totalDurationinteger60Duración total a monitorear (10-600 seg)
snapshotsarrayrequeridoLista de configuraciones de ráfagas de capturas
displayIndexinteger0Pantalla a grabar (basado en 0)
maxWidthinteger1280Ancho máximo para fotogramas completos
thumbnailWidthinteger320Ancho de miniatura para la cuadrícula

Configuración de ráfaga de capturas:

PropiedadTipoPredeterminadoDescripción
atnumberrequeridoCuándo iniciar la ráfaga (segundos desde el inicio)
countinteger3Número de capturas en la ráfaga (1-20)
intervalnumber1.0Tiempo entre capturas (0.25-10)

Ejemplo: grabación de 4 minutos con ráfagas:

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

Recupere un fotograma de resolución completa de una grabación. Use el recordingId de la respuesta de screen.record o screen.scheduled_record.

Entrada:

ParámetroTipoRequeridoDescripción
recordingIdstringSíID de grabación del cual recuperar el fotograma
frameIndexintegerNoÍndice del fotograma a recuperar (basado en 0)
timestampnumberNoMarca de tiempo para encontrar el fotograma más cercano

Salida: Imagen de resolución completa + metadatos del fotograma

Nota: Las grabaciones se almacenan en memoria durante 5 minutos (máximo 5 grabaciones). Use screen.get_frame para recuperar imágenes de resolución completa cuando necesite leer texto o ver detalles.


Formato de respuesta

Todas las herramientas de captura devuelven metadatos que incluyen un mensaje patrocinado:

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

Versión sin anuncios

¿Desea eliminar los anuncios? Obtenga la versión TypeScript con funciones premium en grandnasser.com/third-eye.

Licencia

Licencia MIT: consulte el archivo LICENSE para obtener más detalles.

Autor

Kaossara Osseni - grandnasser.com