Windows Screenshots
Un servidor del Model Context Protocol (MCP) que proporciona funcionalidad de captura de pantalla en sistemas Windows.
Documentación
MCP Windows Screenshots
Un servidor de Model Context Protocol (MCP) que proporciona funcionalidad de captura de pantalla en sistemas Windows.
Características
- Capturas de pantalla completas: Captura monitores completos o todos los monitores
- Capturas de región: Selección interactiva de área para capturas específicas
- Gestión de capturas: Lista y gestiona las capturas de pantalla realizadas
- Inserción de imágenes: Inserción opcional de imágenes en base64 en las respuestas MCP
- Soporte multi-monitor: Maneja configuraciones de múltiples monitores
Requisitos previos
- Sistema operativo Windows (actualmente solo Windows)
- Node.js >= 18.0.0
- Ejecutable auxiliar: Un ejecutable de Windows (RegionSnip.exe) que maneja la captura de pantalla real
Instalación
-
Clona el repositorio
-
Instala las dependencias:
npm install
- Compila el proyecto:
npm run build
- Asegúrate de que el ejecutable auxiliar exista en
bin/RegionSnip.exe
Uso
Como servidor MCP
Este servidor se comunica a través de stdio y puede usarse con cualquier cliente compatible con MCP (como Claude Desktop).
Inicia el servidor:
npm start
O con el inspector MCP para depuración:
npm run inspector
Uso con npx
Puedes ejecutar este servidor MCP directamente usando npx sin instalarlo globalmente:
Cursor
Añade a tu .cursor/mcp.json:
{
"mcpServers": {
"windows-screenshots": {
"command": "npx",
"args": ["mcp-windows-screenshot"]
}
}
}
Claude Desktop
Añade a tu claude_desktop_config.json:
{
"mcpServers": {
"windows-screenshots": {
"command": "npx",
"args": ["mcp-windows-screenshot"]
}
}
}
Windsurf
Añade a tu ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"windows-screenshots": {
"command": "npx",
"args": ["mcp-windows-screenshot"]
}
}
}
Herramientas disponibles
takeScreenshot
Captura una captura de pantalla completa.
Parámetros:
mode: Siempre "full" (predeterminado)allMonitors: Captura todos los monitores (predeterminado: true)monitor: Número de monitor específico (opcional)includeImage: Inserta la imagen como base64 en la respuesta (predeterminado: false)timeoutMs: Tiempo de espera en milisegundos (predeterminado: 60000)
Ejemplo:
{
"mode": "full",
"allMonitors": true,
"includeImage": true
}
Respuesta:
{
"ok": true,
"cancelled": false,
"path": "screenshots/full-2024-01-14T10-53-52-000Z.png",
"rect": {"x": 0, "y": 0, "width": 1920, "height": 1080},
"width": 1920,
"height": 1080,
"mode": "full",
"allMonitors": true,
"monitor": null
}
takeSelectedAreaScreenshot
Permite la selección interactiva de una región de pantalla para capturar.
Parámetros:
mode: Siempre "region" (predeterminado)includeImage: Inserta la imagen como base64 en la respuesta (predeterminado: false)timeoutMs: Tiempo de espera en milisegundos (predeterminado: 120000)
Ejemplo:
{
"includeImage": true
}
Respuesta:
{
"ok": true,
"cancelled": false,
"path": "screenshots/region-2024-01-14T10-53-52-000Z.png",
"rect": {"x": 100, "y": 100, "width": 800, "height": 600},
"width": 800,
"height": 600,
"mode": "region"
}
listScreenshots
Lista las capturas de pantalla guardadas en el directorio de capturas.
Parámetros:
limit: Número máximo de capturas a devolver (predeterminado: 50, máximo: 200)
Ejemplo:
{
"limit": 10
}
Respuesta:
{
"items": [
{
"path": "screenshots/region-2024-01-14T10-53-52-000Z.png",
"sizeBytes": 245760,
"createdAt": "2024-01-14T10:53:52.000Z"
}
]
}
Configuración
Ejecutable auxiliar
El servidor requiere un ejecutable auxiliar en bin/RegionSnip.exe que admita los siguientes argumentos de línea de comandos:
--mode full|region: Modo de captura--out <path>: Ruta del archivo de salida--all: Captura todos los monitores (solo modo completo)--monitor <n>: Número de monitor específico (solo modo completo)
El ejecutable debe generar JSON en stdout con la siguiente estructura:
{
"ok": true,
"cancelled": false,
"rect": {"x": 0, "y": 0, "width": 1920, "height": 1080},
"width": 1920,
"height": 1080
}
Directorio de capturas
Las capturas de pantalla se guardan automáticamente en el directorio screenshots/ en la raíz del proyecto. Este directorio se crea automáticamente si no existe.
Desarrollo
Compilación
npm run build
Pruebas
El servidor se puede probar usando el inspector MCP:
npm run inspector
Esto inicia el servidor y abre una interfaz de depuración para probar las herramientas disponibles.
Estructura del proyecto
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── screenshots/ # Screenshot storage directory
├── bin/
│ └── RegionSnip.exe # Helper executable (not included)
├── package.json
└── README.md