A side-by-side look at the Hypruse and Gnome Desktop MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Hypruse for os automation work as a local process; choose Gnome Desktop MCP for os automation. You can also run both side by side in one mcpServers block.
HYPRUSE_CLIPBOARD.desktop, screenshot, zoom.screenshot, screenshot_window, screenshot_area.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | OS Automation | OS Automation |
| Quality signal | 56/100 · Good | 49/100 · Fair |
| Install command | Confirmed | Not confirmed yet |
| Transport | Local subprocess (stdio) | — |
| Auth | Not declared | No auth required |
| Pricing | Not declared | Free |
| Required env vars | HYPRUSE_CLIPBOARD | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 33 | 15 |
| Directory activity | 0 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | 15 | 26 |
| Full listing | View Hypruse | View Gnome Desktop MCP |
desktopOne-call semantic snapshot: monitors, workspaces, windows (address/class/title/geometry), active window, cursor, and layer surfaces (launchers, bars, notification popups) with a best-effort kind and geometry. A listed layer is one the compositor tracks, not one you can see: transparent and dormant…screenshotFocused monitor, exact window crop by address, or `x,y,WxH` region; returns image + coordinate-mapping metadata; fast JPEG by default (`lossless=true` for PNG); `stable=true` waits for the frame to settlezoomNative-resolution re-capture around an estimated point (optionally clamped to a window): the precision step before clicking small controls, same metadata contractuiRead a window's accessibility tree (AT-SPI, GTK/Qt apps that expose one) and return clickable elements by name with exact global coordinates, no screenshot; reports current values too (typed text, slider position, checkbox state); falls back to vision when an app exposes nothingmarksSet-of-Marks capture: the window screenshot with every accessible control drawn as a numbered mark, plus a JSON legend (role, name, current value, exact click point per number); needs ImageMagick for the drawing, degrades to the legend alone without itclick_uiClick a control by accessible NAME or by a `marks` number in one call: the coordinate comes from the tree, the click goes through the real pointer (visible, same safety guarantees); an ambiguous name returns the candidates instead of guessingpointermove / click / drag / scroll (discrete wheel notches) in global coordinateskeyboardType literal text (unicode-safe) or press app-level combos (`ctrl+shift+t`, `esc`, `F5`); optional `window` address focuses the target first so keystrokes land in the right app. Compositor binds (`super+...`) go through `use_bind`, not herehyprSwitch workspace, focus/move/close windows, fullscreen, floating (pure IPC, milliseconds; `close_window` also waits up to 1s for the destroy event, so its result and `then=` observation reflect the close instead of racing it)launchStart an app (optionally silent on another workspace), block on its actual `openwindow` event, return its address; detects single-instance apps (browsers) whose window ignores exec rules and moves it to the requested workspacebindsThe user's own keybinds, decoded (`SUPER+Q`, action, description); the agent runs one with `use_binduse_bindExecute a keybind by combo (`SUPER+F`), running its bound action, so the agent drives the owner's own launchers and shortcuts. Not available for binds in a Lua `hyprland.lua`: those are anonymous closures Hyprland exposes no way to call, so `binds` shows them as action `lua` and `use_bind` says so…screenshotFull screen capturescreenshot_windowCapture a specific windowscreenshot_areaCapture a rectangular regionpick_colorGet pixel color at coordinatescleanup_screenshotsRemove temp screenshot fileslist_windowsList all open windowsget_windowGet detailed window propertiesfocus_windowFocus and raise a windowmove_resize_windowMove and resize a windowminimize_windowMinimize/restoremaximize_windowMaximize/restoreclose_windowClose a windowPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"hypruse": {
"command": "uvx",
"args": [
"hypruse"
],
"env": {
"HYPRUSE_CLIPBOARD": "YOUR_HYPRUSE_CLIPBOARD_HERE"
}
}
}
}
No confirmed install command for Gnome Desktop MCP yet — follow the setup steps linked from its listing page rather than a guessed package name.