A Model Context Protocol server for taking Linux / Wayland screenshots via `grim` (screenshot) and `slurp` (interactive region selection).
Two tools with basic descriptions and minimal parameter documentation. take_screenshot has a reasonable description (145 chars) but parameters lack type constraints and validation guidance. list_outputs is trivial (29 chars, below 20-char floor). Neither tool documents output schema or error recovery paths. No input validation, no enums for constrained values (region parameter accepts free-form strings), no pagination support. Parameter descriptions exist but are generic and lack format/constraint details. No tool annotations (readOnlyHint, idempotentHint). Error handling returns plain strings without actionable recovery guidance.
List available Wayland outputs (monitors).
Take a screenshot of the Linux desktop. Args: region: Optional region to capture. Use "select" to interactively pick a region with slurp, or pass geometry like "100,200 400x300". If omitted, captures the full screen. output_path: Optional path to save the screenshot. If omitted, saves to a temp file and returns the image as base64.
list_outputs description is 29 characters, below the 20-char floor. Provides no context for when/why to call it. Violates pattern:tool-description baseline (avg 194 chars, p10=34).
take_screenshot region parameter accepts free-form strings ('select', '100,200 400x300') with no enum constraint or regex pattern. LLMs will hallucinate invalid geometry strings. Should declare enum or strict format.
No output schema documented for either tool. take_screenshot returns base64 data URL or file path string; list_outputs returns raw command output. LLMs cannot plan downstream calls or extract structured data.
Error handling returns plain strings ('Screenshot failed: {stderr}', 'Selection cancelled') without recovery guidance. Per pattern:recovery-guide, errors must tell LLM what to do next (retry, ask user, or fail).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint). Both tools are read-only and idempotent, declaring this via annotations helps agents reason about safety and retry logic.