Skip to main content
Glama

screen-mcp

Ein MCP-Server (Model Context Protocol), der KI-Agenten Augen auf einem Omarchy / Hyprland-Wayland-Desktop verleiht. Er erfasst Screenshots über grim und bietet eine optionale Bildanalyse mithilfe der Gemini API an — nützlich, wenn das aufrufende Modell keinen nativen Vision-Encoder besitzt.

Funktionen

Tool

Was es tut

Rückgabe

list_windows

Listet Hyprland-Fenster über hyprctl auf

Textliste mit Adressen, Titeln, Arbeitsbereichen, Größen

screenshot_region

Erfasst ein Pixel-Rechteck (x, y, width, height)

Inline-PNG-Bild (base64)

screenshot_window

Erfasst ein Fenster per Titel, Klasse, Adresse oder "focused"

Inline-PNG-Bild (base64)

screenshot_fullscreen

Erfasst den gesamten Bildschirm

Inline-PNG-Bild (base64)

analyze_image

Sendet ein Bild (base64 oder Dateipfad) an Gemini zur Analyse

Textantwort

screenshot_and_analyze

Erfasst einen Bereich und analysiert ihn in einem Aufruf

Text (Gemini-Antwort)

Screenshots verwenden grim (wlroots-Screencopy-Protokoll) — kein X11 erforderlich.

Voraussetzungen

  • Omarchy, Hyprland oder einen beliebigen wlroots-basierten Wayland-Compositor

  • grim — Wayland-Screenshot-Tool

  • slurp — (optional) Hilfsprogramm für die interaktive Bereichsauswahl

  • hyprctl — Hyprland-Fenster-/Abfrage-CLI

  • jq — (optional) wird von einigen Hilfsskripten verwendet

Überprüfen mit:

grim --help && hyprctl clients -j | head -c 20

Für die Bildanalyse (optional)

export GEMINI_API_KEY="your-api-key-here"

Ohne den Schlüssel funktionieren die Screenshot-Tools weiterhin; nur analyze_image und screenshot_and_analyze geben einen Fehler zurück.

Installation

Über Claude Desktop

Füge Folgendes zur claude_desktop_config.json deiner Claude-Desktop-Installation hinzu:

{
  "mcpServers": {
    "screen-mcp": {
      "command": "npx",
      "args": ["-y", "screen-mcp"],
      "env": {
        "GEMINI_API_KEY": "your-api-key-here"
      }
    }
  }
}

Über npx

npx -y screen-mcp

# Or install globally:
npm install -g screen-mcp

Verwendungsbeispiele

Einen Bildschirmbereich erfassen

screenshot_region(x=100, y=200, width=800, height=600, include_cursor=true)

Ein bestimmtes Fenster erfassen

Liste zuerst die verfügbaren Fenster auf, um eine Adresse oder einen Titel zu erhalten:

list_windows()

Erfasse das Fenster dann über Titel (Teilstring-Übereinstimmung), Adresse oder "focused":

screenshot_window(window="Spotify")
screenshot_window(window="focused")
screenshot_window(window="0x557ba79b4900")

Ein Bild mit Gemini analysieren

analyze_image(
  image_path="/tmp/my-screenshot.png",
  prompt="What applications are visible in this screenshot?",
  model="gemini-2.5-flash"
)

Oder gib base64-codierte Bilddaten direkt weiter:

analyze_image(
  image="<base64-encoded-image>",
  prompt="Describe what you see in this image.",
  mime_type="image/png"
)

Erfassen und Analysieren in einem Aufruf

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"
)

Entwicklung

# Install deps
npm install

# Build
npm run build

# Run
npm start

# Development (recompile on change)
npm run dev

So funktioniert es

  • Erfassung: src/capture.ts kapselt grim (Screenshots) und hyprctl (Fensterauflistung). Für die Fenster-Erfassung wird zuerst grim -T <stableId> (Foreign-Toplevel-Handle) versucht; alternativ wird auf grim -g "<x>,<y> <w>x<h>" (Geometrie von hyprctl) zurückgegriffen.

  • Analyse: src/gemini.ts verwendet das offizielle @google/genai-SDK. Bilder werden inline als base64 an den interactions.create-Endpunkt der Gemini-API übergeben.

  • Server: src/index.ts verbindet alles zu einem über stdio transportierten MCP-Server mithilfe von @modelcontextprotocol/server.

Lizenz

MIT

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all MCP Connectors

Latest Blog Posts

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