Screenshot MCP Server

Captura capturas de pantalla de Windows desde asistentes de IA en WSL, con opciones para monitores o ventanas específicas.

Documentación

Este repositorio está en modo de solo lectura y ha sido reemplazado

Use el repositorio WSLSnapIt-MCP en su lugar (¡funciona mejor, con más funciones!)

Servidor MCP de Captura de Pantalla

Un servidor del Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de IA que se ejecutan en WSL capturar capturas de pantalla de Windows con funciones avanzadas como selección de monitor y captura específica de ventanas.

Características

  • 📸 Captura de Escritorio Completo - Captura todos los monitores (comportamiento predeterminado)
  • 🖥️ Selección de Monitor - Captura monitores específicos (principal, 1, 2, etc.)
  • 🪟 Captura de Ventana - Captura ventanas específicas por coincidencia de título con conocimiento de DPI
  • 🚀 Captura de Proceso - Captura ventanas por nombre de proceso (por ejemplo, notepad.exe)
  • 📂 Ubicaciones de Guardado Personalizadas - Guarda en cualquier carpeta usando rutas WSL o Windows
  • 🔄 Conversión Automática de Rutas - Convierte rutas WSL a rutas Windows
  • 📁 Almacenamiento Organizado - Las capturas de pantalla se guardan en workspace/screenshots/ de forma predeterminada
  • 🎯 Conocimiento de DPI - Escalado adecuado para pantallas de alto DPI
  • 🖼️ Captura de Ventana Completa - Incluye sombras y bordes de ventana sin recortes

Requisitos Previos

  • Windows con WSL (Subsistema de Windows para Linux)
  • Node.js instalado en WSL
  • Claude Desktop o Claude Code con soporte MCP

Instalación

  1. Clone este repositorio:
git clone https://github.com/peterparker57/screenshot-mcp.git
cd screenshot-mcp
  1. Instale las dependencias:
npm install
# or with bun:
bun install
  1. Agregue a su configuración de Claude (~/.claude.json o ~/.claude/claude_desktop_config.json):
{
  "mcpServers": {
    "screenshot": {
      "command": "node",
      "args": [
        "/path/to/screenshot-mcp/index.js"
      ],
      "disabled": false,
      "alwaysAllow": [
        "take_screenshot"
      ]
    }
  }
}
  1. Reinicie Claude Desktop/Code

Uso

Una vez instalado, puede pedirle a Claude que tome capturas de pantalla:

Uso Básico

Take a screenshot

Capturar Monitor Específico

Take a screenshot of monitor 1
Take a screenshot of the primary monitor

Capturar Ventana Específica por Título

Take a screenshot of the "Chrome" window
Take a screenshot of window titled "Visual Studio Code"

Capturar Ventana Específica por Nombre de Proceso

Take a screenshot of notepad.exe
Take a screenshot of the chrome process
Take a screenshot of process "Code"

Nombre de Archivo Personalizado

Take a screenshot and save it as "test.png"

Guardar en Carpeta Personalizada

Take a screenshot and save it to /mnt/c/Users/username/Pictures/
Take a screenshot and save to C:\Users\username\Desktop\
Take a screenshot of monitor 1 and save to folder "../docs/images"

Referencia de la API

El servidor MCP proporciona una única herramienta:

take_screenshot

Parámetros:

  • filename (opcional): Nombre para el archivo de captura de pantalla (predeterminado: "screenshot.png")
  • monitor (opcional): Qué monitor capturar
    • "all" - Captura todos los monitores (predeterminado)
    • "primary" - Captura solo el monitor principal
    • 1, 2, etc. - Captura un monitor específico por índice
  • windowTitle (opcional): Captura una ventana específica por su título (se admite coincidencia parcial)
  • processName (opcional): Captura una ventana específica por nombre de proceso (por ejemplo, "notepad.exe" o "notepad")
  • folder (opcional): Ruta de carpeta personalizada para guardar la captura de pantalla
    • Admite rutas WSL: /mnt/c/Users/...
    • Admite rutas Windows: C:\Users\...
    • Admite rutas relativas: ../images
    • Predeterminado: workspace/screenshots/

Devuelve:

  • Mensaje de éxito con la ruta del archivo
  • Mensaje de error si la captura falla

Notas:

  • Si se proporcionan tanto windowTitle como processName, windowTitle tiene prioridad
  • Las carpetas personalizadas se crean automáticamente si no existen
  • Los formatos de ruta se convierten automáticamente entre WSL y Windows según sea necesario

Detalles Técnicos

Arquitectura

  • Servidor MCP: Node.js con @modelcontextprotocol/sdk
  • Captura de Pantalla: PowerShell con .NET Windows Forms
  • Comunicación: Ejecuta comandos de PowerShell desde WSL
  • Codificación: Codificación Base64 para ejecución confiable de comandos

Características de Captura de Ventana

  • Conocimiento de DPI: Maneja automáticamente pantallas de alto DPI para capturas nítidas
  • Relleno de Ventana: Agrega 10px de relleno para capturar sombras y bordes de ventana
  • Espera de Renderizado: Espera 200ms después de enfocar la ventana para asegurar un renderizado completo
  • Verificación de Límites: Previene coordenadas negativas cuando las ventanas están cerca de los bordes de la pantalla
  • Coincidencia de Procesos: Coincidencia inteligente de nombres de proceso (elimina la extensión .exe automáticamente)

Cómo Funciona

  1. El servidor MCP recibe la solicitud de captura de pantalla de Claude
  2. Determina la ubicación de guardado (carpeta personalizada o predeterminada)
  3. Convierte rutas entre formatos WSL y Windows según sea necesario
  4. Construye el script de PowerShell apropiado según los parámetros
  5. Codifica el script en base64 para evitar problemas de escape
  6. Ejecuta el comando de PowerShell desde WSL
  7. PowerShell captura la pantalla usando APIs de Windows Forms
  8. La imagen se guarda en la ubicación especificada

Manejo de Errores

  • Filtra la salida CLIXML de PowerShell (registro detallado, no errores)
  • Valida índices de monitor
  • Proporciona mensajes de error claros para ventanas o procesos faltantes
  • Lista ventanas disponibles cuando la captura falla
  • Crea directorios automáticamente si es necesario
  • Maneja formatos de ruta tanto WSL como Windows

Solución de Problemas

Carpeta de capturas de pantalla no creada

El servidor crea carpetas automáticamente según sea necesario. Asegúrese de tener permisos de escritura en la ubicación de destino.

Errores de ejecución de PowerShell

Verifique su política de ejecución de PowerShell:

Get-ExecutionPolicy

Errores de ventana no encontrada

  • Asegúrese de que la ventana esté abierta y no minimizada
  • La coincidencia de título no distingue entre mayúsculas y minúsculas y admite coincidencias parciales
  • Intente usar un título de ventana más específico
  • Al buscar por proceso, la herramienta listará todas las ventanas disponibles para ayudarle a identificar la correcta

La captura de ventana está recortada

La última versión incluye relleno automático y conocimiento de DPI. Si aún experimenta recortes:

  • Asegúrese de estar usando la última versión
  • Intente maximizar la ventana antes de la captura
  • Verifique si la ventana tiene renderizado inusual (algunas aplicaciones usan marcos personalizados)

Problemas de conversión de rutas

El servidor convierte automáticamente entre formatos de ruta WSL y Windows:

  • Rutas WSL como /mnt/c/... se convierten a C:\... para PowerShell
  • Rutas Windows como C:\... se convierten a /mnt/c/... para verificación de archivos
  • Asegúrese de que sus rutas sean accesibles tanto desde WSL como desde Windows

Actualizaciones Recientes

v1.2.0

  • Se agregó soporte de carpeta personalizada con el parámetro folder
  • Admite rutas WSL (/mnt/...) y rutas Windows (C:\...)
  • Conversión automática de rutas entre formatos WSL y Windows
  • Crea directorios personalizados automáticamente si no existen
  • Mantiene compatibilidad con versiones anteriores con la carpeta de capturas de pantalla predeterminada

v1.1.0

  • Se agregó soporte de captura por nombre de proceso
  • Ahora puede capturar ventanas por nombre de proceso (por ejemplo, "notepad.exe")
  • Manejo inteligente de la extensión .exe
  • Mensajes de error mejorados que muestran ventanas disponibles

v1.0.1

  • Se corrigieron problemas de recorte en la captura de ventanas
  • Se agregó conocimiento de DPI para pantallas de alto DPI
  • Se agregó relleno para capturar sombras de ventana
  • Se mejoró el tiempo de espera de renderizado de ventanas
  • Se agregó verificación de límites para casos extremos

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de Extracción.

Licencia

Licencia MIT - consulte el archivo LICENSE para más detalles

Agradecimientos