hypr-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HYPR_MCP_MAX_WIDTH | No | Maximum width for screenshots (default: 1440) | 1440 |
| HYPR_MCP_CLICK_SETTLE | No | Settle time in seconds after clicks (default: 0.2) | 0.2 |
| HYPR_MCP_FOCUS_SETTLE | No | Settle time in seconds after focus changes (default: 0.3) | 0.3 |
| HYPR_MCP_JPEG_QUALITY | No | JPEG quality for screenshots (default: 75) | 75 |
| HYPR_MCP_OCR_MIN_CONF | No | Minimum confidence for OCR (default: 30) | 30 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_monitorsA | List monitors with resolution, position, active workspace. |
| list_workspacesA | List workspaces with window counts. Active one is marked [focused]. |
| switch_workspaceA | Switch to a workspace by name/number (e.g. "1", "special:scratchpad"). |
| get_cursor_positionA | Cursor position in absolute layout coordinates. |
| list_windowsC | List windows with class, title, size, position. |
| focus_windowC | Focus a window by selector ("class:firefox", "title:Doc", "address:0x..."). |
| close_windowB | Close a window (WM_CLOSE, apps may prompt to save). |
| move_windowC | Move active/selected window to pixels and/or workspace (incl. "special:name"). |
| resize_windowC | Resize active/selected window to pixel dimensions. |
| toggle_specialC | Toggle a special (scratchpad) workspace by name. |
| wait_windowB | Wait for a window to exist / reach a title. Replaces blind sleeps. Use after launch_app or navigation: title change is the load signal (e.g. title_contains="Example Domain"). Returns instantly on match. |
| toggle_fullscreenB | Set fullscreen state. mode: "fullscreen"|"maximize", action: "set"|"unset"|"toggle". |
| toggle_floatingC | Set floating state. action: "set"|"unset"|"toggle". |
| launch_appA | Launch an app detached (no shell — binary + args only). Waits for its window. Slow starters (Steam) need the generous default; pass a smaller timeout for known-fast apps, larger for known-slow ones. |
| clipboard_readA | Read clipboard text (truncated to max_chars). |
| clipboard_writeB | Write text to clipboard. |
| mouse_moveB | Move cursor to absolute coordinates (pixel-accurate). |
| mouse_clickA | Click at coords or current pos. |
| mouse_scrollC | Scroll wheel, optionally after moving to absolute coords. |
| mouse_dragC | Drag in absolute coordinates. |
| type_textB | Type text via wtype. |
| key_pressB | Press combo ("ctrl+c") or single key ("Return"). Single source for shortcuts. |
| paste_textA | Reliable path for unicode/long text: clipboard + ctrl+v (wtype chokes on these). |
| screenshotB | Screenshot to inline JPEG + coordinate mapping (coords are absolute). Pass path to save full-res PNG to disk instead (no token cost) — for debugging OCR without an inline image. |
| find_text_on_screenC | OCR-search for text. Returns absolute coords for mouse_click. |
| wait_textA | Wait for on-screen text to appear (or disappear). Replaces blind sleeps. Use for in-window state no compositor event covers: button flips (UPDATE→PLAY), page content, dialogs. Returns instantly on match. |
| click_textB | OCR-find text and click it. Focusing |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 27 tools
Each tool targets a distinct resource or action. Overlapping categories (type_text, key_press, paste_text) are clearly differentiated by use case, and OCR tools (find_text_on_screen, wait_text, click_text) have precise roles. No ambiguity that would cause an agent to select the wrong tool.
All tools follow a consistent snake_case verb_noun pattern (list_monitors, switch_workspace, mouse_click, clipboard_write). The verbs are predictable and the naming is uniform, making the set highly readable and navigable.
With 27 tools, the count exceeds the 25+ threshold for 'too many'. While the domain is broad (window management, input, OCR, clipboard), the tool surface feels heavy and could potentially be consolidated. The scope justifies many tools, but the sheer number edges into over-provisioning.
The toolset covers window lifecycle, workspace switching, input control, OCR, clipboard, and screenshots. Minor gaps exist (e.g., no minimize or workspace creation), but core automation workflows are fully supported, and agents can accomplish most tasks without dead ends.