screen-mcp
screen-mcp
Un servidor MCP (Model Context Protocol) que les da a los agentes de IA ojos en un escritorio Wayland Omarchy / Hyprland. Captura capturas de pantalla mediante grim y ofrece análisis de imágenes opcional impulsado por la API de Gemini, útil cuando el modelo que realiza la llamada no tiene codificador de visión nativo.
Características
Herramienta | Qué hace | Devuelve |
| Enumera las ventanas de Hyprland mediante | Listado de texto con direcciones, títulos, espacios de trabajo y tamaños |
| Captura un rectángulo de píxeles | Imagen PNG en línea (base64) |
| Captura una ventana por título, clase, dirección o | Imagen PNG en línea (base64) |
| Captura toda la pantalla | Imagen PNG en línea (base64) |
| Envía una imagen (base64 o ruta de archivo) a Gemini para su análisis | Respuesta de texto |
| Captura una región y la analiza en una sola llamada | Texto (respuesta de Gemini) |
Las capturas de pantalla usan grim (protocolo screencopy de wlroots); no se requiere X11.
Requisitos previos
Omarchy, Hyprland o cualquier compositor Wayland basado en wlroots
grim— herramienta de captura de pantalla para Waylandslurp— (opcional) ayudante interactivo para selección de regioneshyprctl— CLI de ventanas/consultas de Hyprlandjq— (opcional) usado por algunos scripts auxiliares
Verifica con:
grim --help && hyprctl clients -j | head -c 20Para el análisis de imágenes (opcional)
Una clave de API de Gemini: consíguela en https://aistudio.google.com
Expórtala en tu entorno:
export GEMINI_API_KEY="your-api-key-here"Sin la clave, las herramientas de captura siguen funcionando; solo analyze_image y screenshot_and_analyze devolverán un error.
Instalación
Mediante Claude Desktop
Añade esto a tu claude_desktop_config.json de Claude Desktop:
{
"mcpServers": {
"screen-mcp": {
"command": "npx",
"args": ["-y", "screen-mcp"],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}Mediante npx
npx -y screen-mcp
# Or install globally:
npm install -g screen-mcpEjemplos de uso
Capturar una región de la pantalla
screenshot_region(x=100, y=200, width=800, height=600, include_cursor=true)Capturar una ventana específica
Primero enumera las ventanas disponibles para obtener una dirección o un título:
list_windows()Luego captura por título (coincidencia de subcadena), dirección o "focused":
screenshot_window(window="Spotify")
screenshot_window(window="focused")
screenshot_window(window="0x557ba79b4900")Analizar una imagen con Gemini
analyze_image(
image_path="/tmp/my-screenshot.png",
prompt="What applications are visible in this screenshot?",
model="gemini-2.5-flash"
)O pasa directamente datos de imagen codificados en base64:
analyze_image(
image="<base64-encoded-image>",
prompt="Describe what you see in this image.",
mime_type="image/png"
)Capturar y analizar en una sola llamada
screenshot_and_analyze(
x=0, y=0, width=1920, height=1080,
prompt="Count the number of windows open and list their titles.",
scale=0.5,
model="gemini-2.5-flash"
)Desarrollo
# Install deps
npm install
# Build
npm run build
# Run
npm start
# Development (recompile on change)
npm run devCómo funciona
Captura:
src/capture.tsenvuelvegrim(capturas de pantalla) yhyprctl(enumeración de ventanas). La captura de ventanas primero intentagrim -T <stableId>(manejador foreign-toplevel) y, si falla, recurre agrim -g "<x>,<y> <w>x<h>"(geometría de hyprctl).Análisis:
src/gemini.tsutiliza el SDK oficial@google/genai. Las imágenes se pasan en línea como base64 al endpointinteractions.createde la API de Gemini.Servidor:
src/index.tsconecta todo como un servidor MCP con transporte stdio usando@modelcontextprotocol/server.
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Generate images, GIFs, and PDFs from HTML, URLs, or templates — from your AI agent.
Screenshots, PDFs and Markdown from any URL or HTML for AI agents, via the SnapForge API
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ferre-z/screen-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server