Screeny

Un servidor exclusivo para macOS que permite a los LLMs capturar capturas de pantalla de ventanas de aplicaciones específicas, proporcionando contexto visual para el desarrollo y la depuración.

Documentación

Screeny Banner

MCP Server version PyPI Downloads macOS License: MIT

Servidor MCP Screeny: Capturas de pantalla de macOS con prioridad en la privacidad para agentes de IA

Un servidor MCP exclusivo para macOS, con prioridad en la privacidad que permite a los agentes de IA capturar pantallas de ventanas de aplicaciones previamente aprobadas, proporcionando contexto visual seguro para tareas de desarrollo y depuración.

Install MCP Server

[!IMPORTANT] Requiere permiso de Captura de Pantalla + Configuración de Aprobación de Ventanas - consulta las instrucciones a continuación.

🔒 Diseño con prioridad en la privacidad

A diferencia de otras herramientas de captura de pantalla, Screeny requiere aprobación explícita del usuario para cada ventana antes de poder capturarla:

  • Sistema de aprobación de ventanas - Solo se pueden capturar ventanas previamente aprobadas (aprobadas durante la configuración)
  • Acceso controlado por el usuario - Tú decides exactamente qué ventanas son accesibles
  • Captura no intrusiva - Las capturas se toman en segundo plano sin cambiar el foco de la ventana ni interrumpir tu flujo de trabajo
  • Sin conexiones externas - Screeny se ejecuta completamente en tu dispositivo; las capturas se eliminan inmediatamente después de su uso

Herramientas disponibles

  • listWindows - Lista todas las ventanas de aplicaciones aprobadas disponibles para captura de pantalla.

    • Solo muestra ventanas aprobadas por el usuario
  • takeScreenshot - Captura una pantalla de una ventana específica por su ID.

    • Captura ventanas en segundo plano - no es necesario traer la ventana al frente, pero no puede capturar ventanas minimizadas
    • Proporciona datos de píxeles reales - imagen de fidelidad completa, no OCR ni extracción de texto
    • Compresión JPEG con límite configurable - las capturas siempre se comprimen en JPEG con un límite de carga útil en base64 (preajuste predeterminado: Medio / 250KB), configurable y limitado a 100–900KB

Recursos

  • screeny://info - Información del servidor y detalles de configuración

Configuración

Claude Desktop

  1. Abre la configuración de Claude → Desarrollador → Editar configuración
  2. Añade la configuración
  3. Reinicia Claude Desktop después de guardar la configuración
Usando pipx

Primero instala con: pipx install mcp-server-screeny

{
  "mcpServers": {
    "screeny": {
      "command": "mcp-server-screeny",
      "args": []
    }
  }
}

Nota: Si obtienes un error de ENOENT, reemplaza "mcp-server-screeny" con la ruta completa al ejecutable (encuéntrala con which mcp-server-screeny en tu terminal).

Usando uvx
{
  "mcpServers": {
    "screeny": {
      "command": "uvx",
      "args": ["mcp-server-screeny"]
    }
  }
}

Nota: Si obtienes un error "spawn uvx ENOENT", reemplaza "uvx" con la ruta completa a uvx:

which uvx  # Encuentra tu ruta de uvx

Luego usa esa ruta completa en la configuración (por ejemplo, "/opt/homebrew/bin/uvx").

Cursor

  1. Abre la configuración de Cursor → Herramientas e integraciones → Herramientas MCP
  2. Añade la configuración
  3. Reinicia Cursor después de guardar la configuración
Usando pipx

Primero instala con: pipx install mcp-server-screeny

{
  "mcpServers": {
    "screeny": {
      "command": "mcp-server-screeny",
      "args": []
    }
  }
}

Nota: Si obtienes un error de ENOENT, reemplaza "mcp-server-screeny" con la ruta completa al ejecutable (encuéntrala con which mcp-server-screeny en tu terminal).

Usando uvx
{
  "mcpServers": {
    "screeny": {
      "command": "uvx",
      "args": ["mcp-server-screeny"]
    }
  }
}

Nota: Si obtienes un error "spawn uvx ENOENT", reemplaza "uvx" con la ruta completa a uvx:

which uvx  # Encuentra tu ruta de uvx

Luego usa esa ruta completa en la configuración (por ejemplo, "/opt/homebrew/bin/uvx").

[!NOTE] > Host MCP de Cursor

  • La resumición automática de contexto de Cursor puede provocar llamadas a herramientas en bucle (capturas repetidas).
  • Si esto ocurre, reduce el límite de KB (usa un preajuste más pequeño) o elige un modelo con una ventana de contexto más grande.

Configuración

1. Otorgar permiso de Captura de Pantalla (Requerido)

Importante: Otorga el permiso antes de ejecutar la aprobación de ventanas.

Nota: Debes otorgar el permiso de Captura de Pantalla a AMBOS:

  1. Tu aplicación de Terminal (Terminal.app, iTerm2, etc.) - Requerida para ejecutar la configuración (puede deshabilitarse después)
  2. Tu host MCP (Claude Desktop, Cursor) - Requerido para tomar capturas

Para añadirlos:

  1. Abre Configuración del Sistema > Privacidad y seguridad > Grabación de pantalla y audio del sistema
  2. Haz clic en el botón "+"
  3. Añade tu aplicación de Terminal Y tu aplicación host MCP
  4. Reinicia ambas aplicaciones después de otorgar los permisos

2. Aprobación de ventanas (Requerido)

Después de configurar tu cliente MCP arriba, aprueba qué ventanas se pueden capturar.

Si usas pipx
# Interactive approval
mcp-server-screeny --setup

# Auto-approve all current windows
mcp-server-screeny --setup --allow-all
Si usas uvx
# Interactive approval
uvx mcp-server-screeny --setup

# Auto-approve all current windows
uvx mcp-server-screeny --setup --allow-all

Las aprobaciones se guardan en ~/.screeny/approved_windows.json. Vuelve a ejecutar la configuración cuando quieras actualizar la lista de ventanas aprobadas.

Opciones avanzadas (Opcional)

Durante la configuración, puedes configurar el preajuste de tamaño de captura (afecta la estabilidad y la claridad):

  • Tiny (50KB) — más estable; el texto fino se verá borroso
  • Small (100KB) — predeterminado recomendado; claridad y estabilidad equilibradas
  • Medium (250KB) — más detalle; puede ser más lento y pesado
  • Large (500KB) — alto detalle; puede provocar resumición del cliente
  • XL (750KB) — máximo detalle; más propenso a errores

Tu elección se guarda en ~/.screeny/config.json como max_b64_kb. También puedes anularla mediante la variable de entorno SCREENY_MAX_B64_KB. El límite activo está limitado a 100–900KB.

Seguridad y privacidad

  • Solo se pueden capturar ventanas aprobadas por el usuario
  • Todo el procesamiento permanece local en tu máquina
  • Las capturas son temporales y se eliminan inmediatamente después de su uso

Solución de problemas

Problemas de permisos

# Test window detection and permissions
mcp-server-screeny --debug

# Re-run setup if windows changed
mcp-server-screeny --setup

Problemas comunes

Error "spawn uvx ENOENT"

  • Solución: Usa la ruta completa a uvx en tu configuración MCP en lugar de solo "uvx"
  • Encuentra la ruta con: which uvx
  • Ejemplo: "/opt/homebrew/bin/uvx" o "/usr/local/bin/uvx"

"No approved windows found"

  • Solución: Ejecuta mcp-server-screeny --setup primero (o uvx mcp-server-screeny --setup si usas uvx)

"Screen Recording permission required" o "No windows found"

  • Solución: Otorga el permiso de Grabación de pantalla en Configuración del Sistema > Privacidad y seguridad > Grabación de pantalla y audio del sistema
    • Haz clic en el botón "+" y añade manualmente tu host MCP (Claude Desktop, Cursor, etc.)
    • Reinicia tu aplicación host MCP después de otorgar los permisos
  • Intenta ejecutar la configuración nuevamente después de otorgar los permisos

Contribuciones

¡Las solicitudes de extracción son bienvenidas! Siéntete libre de contribuir con nuevas ideas, correcciones de errores o mejoras.

Este es mi primer proyecto MCP: si encuentras algún error, abre un issue y haré todo lo posible por corregirlo.

Por qué construí esto

Creé esta herramienta para optimizar mi flujo de trabajo de desarrollo móvil. Estaba cansado de tomar capturas manualmente repetidamente para describir problemas de interfaz. Con Screeny, Cursor puede capturar directamente pantallas de mi simulador de iOS e iterar sobre el diseño en un bucle. ¡Estoy emocionado de ver cómo otros usarán esto!

Requisitos

  • Python 3.10+
  • macOS
  • Permiso de Captura de pantalla

Licencia

Licencia MIT