hyprland-mcp-server (rodsilvavieira2/hyprland-mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 70 out of 100, grade C. It declares 20 tools. No publisher has claimed this listing.

C
Caution
70/100

hyprland-mcp-server

Enables LLMs to capture screenshots, inspect windows, and interact with the Hyprland desktop environment through mouse clicks and keyboard input.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

rodsilvavieira2

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
⚠️
Known vulnerabilities in dependencies: 2 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
20 tools verified — handlers match their declared behaviour
8 read-only tools verified — handlers contain no write/delete/exec
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
// tools this server exposes20 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

hyprland_click_at

Move the cursor to absolute coordinates and perform a mouse click. Requires ydotool and the ydotoold daemon to be running. The cursor is moved to the target position first, then the click is fired. Coordinates are in global layout pixels. Use hyprland_list_windows to get window geometry (x, y, wid

hyprland_click_window

Click on a window by targeting its center (with optional offset). Automatically computes the window center from its geometry and performs a click there. Requires ydotool and the ydotoold daemon to be running. Identify the target window with ONE of: address, class (substring), title (substring), or

hyprland_click_window_relative

Click inside a specific window using coordinates relative to that window. This avoids global-coordinate mistakes when using hyprland_screenshot_window output. Given a local point (local_x, local_y), this tool converts to global coordinates: global_x = window_x + local_x global_y = window_y + lo

hyprland_click_and_screenshot_active

Execute click-at with optional bounded retries, then capture the active window screenshot. This helper implements a practical click → verify loop: 1) click at global coordinates 2) optionally retry nearby nudged points if focus does not match expected window 3) capture and return active-window scre

hyprland_double_click_at

Move the cursor to absolute coordinates and perform a double mouse click. Requires ydotool and the ydotoold daemon to be running. The cursor is moved to the target position first, then two clicks are fired with a short pause. Coordinates are in global layout pixels. Use hyprland_list_windows to ge

hyprland_double_click_window

Double-click on a window by targeting its center (with optional offset). Automatically computes the window center from its geometry and performs a double click there. Requires ydotool and the ydotoold daemon to be running. Identify the target window with ONE of: address, class (substring), title (

hyprland_focus_window

Bring keyboard and compositor focus to a specific window in Hyprland. Uses hyprctl dispatch focuswindow to focus the target window. After focusing, keyboard input (type_text, send_key) will be directed to that window. Identify the target window with ONE of: address, class (substring), title (subst

hyprland_get_active_window

Get metadata for the currently focused (active) window in Hyprland. Returns the same fields as hyprland_list_windows for a single window: address, class, title, PID, workspace, monitor, geometry, and flags. Use this tool when you want to interact with or screenshot whatever the user is looking at.

hyprland_get_cursor_pos

Get the current cursor (mouse pointer) position in global layout coordinates. Returns the absolute X/Y position of the mouse cursor on the Wayland compositor canvas. Coordinates are in pixels relative to the top-left corner of the global layout (across all monitors). Returns: { "x": number,

hyprland_list_monitors
hyprland_list_windows

List all open windows in the Hyprland Wayland compositor with their metadata. Returns window address, class, title, PID, workspace, monitor, geometry (position + size), and flags (floating, pinned, fullscreen, XWayland). The window `address` is the unique identifier required by other tools such as

hyprland_list_workspaces
hyprland_move_cursor

Move the mouse cursor to an absolute position in global layout coordinates. Uses hyprctl dispatch movecursor to reposition the cursor without clicking. Coordinates are in pixels relative to the top-left corner of the Wayland compositor canvas. Use hyprland_list_windows to get window geometry (x, y

hyprland_screenshot_active_window

Capture a screenshot of the currently focused (active) window in Hyprland. No selector needed — automatically identifies the focused surface via hyprctl activewindow. This is the most convenient way to screenshot "what the user is currently looking at". Args: - include_image (boolean): Embed bas

hyprland_screenshot_monitor

Capture a full-monitor screenshot in Hyprland using grim. Captures the entire display output of a single monitor. Useful for capturing the full desktop or when you need to see the complete layout across all windows on that output. Args: - monitor (string): Monitor name like 'DP-1' or 'HDMI-A-1'.

hyprland_screenshot_window

Capture a screenshot of a specific window in Hyprland using grim. Identify the target window with ONE of: address, class (substring), title (substring), or pid. Prefer `address` for precision; class/title for convenience. Use hyprland_list_windows to discover addresses and classes. The window must

hyprland_send_key

Send a key or key combination to a specific window or the active window. Uses hyprctl dispatch sendshortcut to inject keyboard events without disturbing focus. The window does not need to be focused — keys can be sent to background windows. For typing plain text strings, use hyprland_type_text ins

hyprland_switch_workspace

Switch the active workspace on the focused monitor. Accepts either a numeric workspace ID or a workspace name. Use hyprland_list_workspaces to discover available workspaces and their IDs/names. Hyprland also supports special values for 'name': - "previous" → switch to the previously active work

hyprland_type_text

Type a text string into the currently focused window using wtype. The text is injected directly into the Wayland compositor as keyboard events. The target window must be focused first — use hyprland_focus_window if needed. Supports Unicode characters including emoji. For special keys (Enter, Tab,

hyprland_press_key

Press a single special key by XKB name in the currently focused window. Uses wtype -k to inject a key event. The window must be focused — use hyprland_focus_window first. For typing text strings use hyprland_type_text. For key combinations with modifiers (Ctrl+C) use hyprland_send_key. Common XKB

// known CVEs in dependencies2 high

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

high@modelcontextprotocol/sdk@1.6.1GHSA-8r9q-7v3j-jr4g

Anthropic's MCP TypeScript SDK has a ReDoS vulnerability

high@modelcontextprotocol/sdk@1.6.1GHSA-w48q-cv73-mx4w

Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configWAYLAND_DISPLAYThe server must run inside an active Hyprland session with set.
// quality suggestions

Tool inputs are validated

Only 0/20 tool handlers declare input schemas (0%)

Declare an inputSchema with zod/joi/yup on every tool definition.

License file

No license file

Add a LICENSE file (MIT, Apache-2.0, etc.).

Tests exist

No test files found

Add tests that exercise each declared tool.

Production dependencies are patched

0 critical, 2 high severity in production deps — @modelcontextprotocol/sdk@1.6.1 (high), @modelcontextprotocol/sdk@1.6.1 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 4 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/rodsilvavieira2/hyprland-mcp-server?variant=verified)](https://m8ven.ai/mcp/rodsilvavieira2/hyprland-mcp-server)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: ff287c5f3e5a3b50ed340c6fad98716db6ea8bad
code hash: 5b5c5c725312eaf02229638248c8b1aac0aa79c7e6cfcd24a3c046fdf94c0201
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client