loading…
Search for a command to run...
loading…
Enables Claude to capture and analyze screen content across Windows, macOS, and Linux with zero native runtime dependencies.
Enables Claude to capture and analyze screen content across Windows, macOS, and Linux with zero native runtime dependencies.
An MCP server that exposes read-only screen state. Capture, OCR, and change detection only — no input control.
git clone https://github.com/lfzds4399-cpu/claude-screen-mcp
cd claude-screen-mcp
npm install
npm run build
claude mcp add screen -- node "$(pwd)/dist/index.js"
Restart the MCP host after registration.
| Tool | Purpose |
|---|---|
screenshot |
Capture a full display and resize the image result. |
screenshot_region |
Capture a rectangular region. |
list_displays |
Enumerate connected displays. |
list_windows |
List visible top-level windows with optional title filter. |
read_screen_text |
Run OCR on the full display or a region. |
find_text_on_screen |
Search OCR text and return matching bounding boxes. |
screenshot_if_changed |
Capture only when perceptual-hash distance exceeds a threshold. |
get_screen_diff |
Return hash-distance diagnostics without an image. |
wait_for_change |
Poll until the screen changes or a timeout elapses. |
record_screen |
Sample a short interval and return deduplicated keyframes. |
Windows 10+ is the primary target and is exercised on every release. macOS 11+ and Linux (X11 and Wayland) pass CI and smoke tests but are not regularly exercised. Window enumeration on macOS and Linux requires platform tooling; multi-monitor display enumeration is supported on Windows.
All processing is local. No screenshot, OCR text, or telemetry leaves the machine; the only network call is the initial Tesseract language data download.
OCR output is untrusted input. Text rendered on screen may attempt to influence
the model. Treat output as user-supplied data and avoid auto-executing commands
derived from it. Scope read_screen_text to a window when full-desktop capture
is not required.
| Variable | Default | Purpose |
|---|---|---|
SCREEN_MCP_LOG_LEVEL |
info |
debug, info, warn, or error. |
SCREEN_MCP_OCR_LANGS |
eng+chi_sim |
Tesseract language list (allowlist enforced). |
The first OCR call downloads language data (~10MB per language); subsequent calls reuse the local cache.
npm install
npm run build
npm test
node tests/e2e-wire.mjs
screenshot_window(title) for direct single-window capture.Run in your terminal:
claude mcp add claude-screen-mcp -- npx Yes, Claude Screen MCP is free — one-click install via Unyly at no cost.
No, Claude Screen runs without API keys or environment variables.
Self-hosted: the server runs locally on your machine via the install command above.
Open Claude Screen on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
CSA PROJECT - FZCO © 2026 IFZA Business Park, DDP, Premises Number 31174 - 001
Security
Low riskAutomated heuristic from public metadata — not a security guarantee.