Built for Wayland users who need Claude to capture and analyze what's on screen. Wraps grim and slurp to expose two tools: take_screenshot lets you grab the full display, a specific geometry, or launch an interactive region selector, while list_outputs enumerates your monitors via wlr-randr. Screenshots come back as base64 for inline analysis or get saved to disk. Setup requires pointing to your Wayland socket and runtime directory, so you'll need to configure WAYLAND_DISPLAY and XDG_RUNTIME_DIR when adding it. Works with Sway, Hyprland, and other wlroots compositors. If you're debugging UI issues or want Claude to see your desktop without manual uploads, this handles the capture layer.
MCP server for taking Linux / Wayland screenshots via grim and slurp.
Exposes 2 tools to capture the full screen, a selected region, or an interactive crop — returned inline as base64 or saved to disk.
| Tool | Purpose |
|---|---|
take_screenshot | Capture screen (full / geometry / interactive select) |
list_outputs | List available Wayland outputs / monitors |
grim — screenshot toolslurp — interactive region selectorwlr-randr (optional) — for list_outputsInstall on Arch Linux:
sudo pacman -S grim slurp wlr-randr
claude mcp add screenshot -s user \
--env WAYLAND_DISPLAY=wayland-1 \
--env XDG_RUNTIME_DIR=/run/user/1000 \
-- /path/to/mcp-screenshot/.venv/bin/python /path/to/mcp-screenshot/server.py
Build the venv once:
cd /path/to/mcp-screenshot
uv venv --python 3.12 .venv
uv pip install --python .venv/bin/python mcp
Copyright © 2026 likezara™. All rights reserved. Developed by Kamaru (pen name).
WAYLAND_DISPLAY*Wayland display identifier (e.g. wayland-1). Required for grim to find the compositor.
XDG_RUNTIME_DIR*Wayland runtime directory (e.g. /run/user/1000). Required for socket lookup.