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
- Clone este repositorio:
git clone https://github.com/peterparker57/screenshot-mcp.git
cd screenshot-mcp
- Instale las dependencias:
npm install
# or with bun:
bun install
- Agregue a su configuración de Claude (
~/.claude.jsono~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"screenshot": {
"command": "node",
"args": [
"/path/to/screenshot-mcp/index.js"
],
"disabled": false,
"alwaysAllow": [
"take_screenshot"
]
}
}
}
- 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 principal1,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/
- Admite rutas WSL:
Devuelve:
- Mensaje de éxito con la ruta del archivo
- Mensaje de error si la captura falla
Notas:
- Si se proporcionan tanto
windowTitlecomoprocessName,windowTitletiene 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
- El servidor MCP recibe la solicitud de captura de pantalla de Claude
- Determina la ubicación de guardado (carpeta personalizada o predeterminada)
- Convierte rutas entre formatos WSL y Windows según sea necesario
- Construye el script de PowerShell apropiado según los parámetros
- Codifica el script en base64 para evitar problemas de escape
- Ejecuta el comando de PowerShell desde WSL
- PowerShell captura la pantalla usando APIs de Windows Forms
- 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 aC:\...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
- Construido para uso con Claude Desktop y Claude Code
- Utiliza el Protocolo de Contexto de Modelo
- Agradecimiento especial al equipo de WSL por hacer posible la integración Windows/Linux