screen-mcp
screen-mcp
MCP-сервер (Model Context Protocol), который даёт AI-агентам глаза на Wayland-рабочем столе Omarchy / Hyprland. Он делает скриншоты через grim и предлагает опциональный анализ изображений на основе Gemini API — полезно, когда у вызывающей модели нет встроенного визуального энкодера.
Возможности
Инструмент | Что делает | Возвращает |
| Перечисляет окна Hyprland через | Текстовый список с адресами, заголовками, рабочими столами и размерами |
| Захватывает прямоугольную область в пикселях | Встроенное PNG-изображение (base64) |
| Захватывает окно по заголовку, классу, адресу или | Встроенное PNG-изображение (base64) |
| Захватывает весь экран | Встроенное PNG-изображение (base64) |
| Отправляет изображение (base64 или путь к файлу) в Gemini для анализа | Текстовый ответ |
| Захватывает область и анализирует её одним вызовом | Текст (ответ Gemini) |
Скриншоты используют grim (протокол wlroots screencopy) — X11 не требуется.
Предварительные требования
Omarchy, Hyprland или любой Wayland-композитор на основе wlroots
grim— инструмент создания скриншотов Waylandslurp— (необязательно) интерактивный помощник выбора областиhyprctl— CLI для окон/запросов Hyprlandjq— (необязательно) используется некоторыми вспомогательными скриптами
Проверьте с помощью:
grim --help && hyprctl clients -j | head -c 20Для анализа изображений (необязательно)
Ключ Gemini API — получите его на https://aistudio.google.com
Экспортируйте его в своём окружении:
export GEMINI_API_KEY="your-api-key-here"Без ключа инструменты создания скриншотов продолжат работать; только analyze_image и screenshot_and_analyze будут возвращать ошибку.
Установка
Через Claude Desktop
Добавьте это в claude_desktop_config.json в Claude Desktop:
{
"mcpServers": {
"screen-mcp": {
"command": "npx",
"args": ["-y", "screen-mcp"],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}Через npx
npx -y screen-mcp
# Or install globally:
npm install -g screen-mcpПримеры использования
Захват области экрана
screenshot_region(x=100, y=200, width=800, height=600, include_cursor=true)Захват конкретного окна
Сначала выведите список доступных окон, чтобы получить адрес или заголовок:
list_windows()Затем захватите окно по заголовку (частичное совпадение), адресу или "focused":
screenshot_window(window="Spotify")
screenshot_window(window="focused")
screenshot_window(window="0x557ba79b4900")Анализ изображения с помощью Gemini
analyze_image(
image_path="/tmp/my-screenshot.png",
prompt="What applications are visible in this screenshot?",
model="gemini-2.5-flash"
)Или передайте данные изображения в base64 напрямую:
analyze_image(
image="<base64-encoded-image>",
prompt="Describe what you see in this image.",
mime_type="image/png"
)Захват и анализ одним вызовом
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"
)Разработка
# Install deps
npm install
# Build
npm run build
# Run
npm start
# Development (recompile on change)
npm run devКак это работает
Захват:
src/capture.tsоборачиваетgrim(скриншоты) иhyprctl(перечисление окон). Захват окна сначала пробуетgrim -T <stableId>(дескриптор foreign-toplevel), а при неудаче используетgrim -g "<x>,<y> <w>x<h>"(геометрия из hyprctl).Анализ:
src/gemini.tsиспользует официальный SDK@google/genai. Изображения передаются встроенно в формате base64 в конечную точкуinteractions.createGemini API.Сервер:
src/index.tsсвязывает всё вместе как MCP-сервер с stdio-транспортом, используя@modelcontextprotocol/server.
Лицензия
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