Back to Browse

Hypruse MCP Server

Developer ToolsUse Caution4.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

Computer use for Hyprland: semantic desktop state over IPC, plus vision and native input

About

Computer use for Hyprland: semantic desktop state over IPC, plus vision and native input

Security Report

4.2
Use Caution4.2High Risk

hypruse is a well-architected Hyprland desktop automation MCP server with thoughtful security controls and comprehensive permission documentation. The codebase shows strong awareness of security constraints (approval prompts, trust layers, readonly mode, journaling). However, several moderate-severity issues exist: subprocess calls to external binaries without full path validation, potential privilege escalation via unguarded `hyprctl dispatch`, missing input sanitization in keyboard events, and insufficient validation of window addresses before operations. The permissions are appropriate for its stated purpose (desktop control), but the implementation has gaps in input validation and subprocess safety that users should understand. Supply chain analysis found 5 known vulnerabilities in dependencies (0 critical, 5 high severity). Package verification found 1 issue.

3 files analyzed · 15 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

process_spawn

Check that this permission is expected for this type of plugin.

Shell Command Execution

Runs commands on your machine. Be cautious — only use if you trust this plugin.

system_info

Check that this permission is expected for this type of plugin.

dbus

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

How captures are returned: 'file' writes to XDG_RUNTIME_DIR and returns the path, 'image' returns the image inline. Use 'image' for clients that render MCP images but cannot read files, such as Claude Desktop.Optional

Environment variable: HYPRUSE_SCREENSHOT_MODE

Set to 1 to expose only the observation tools (desktop, screenshot, zoom, ui, marks, binds, wait_for). The agent can see and narrate but cannot click, type, or launch.Optional

Environment variable: HYPRUSE_READONLY

Restrict input to a scope of windows and refuse everything outside it: 'launched' (only windows hypruse opened this session), 'class:firefox,kitty', or 'workspace:3,special:notes'. Unset means no confinement.Optional

Environment variable: HYPRUSE_CONFINE

Refuse to click or type into system authentication dialogs (polkit, keyring prompts). On by default; 'strict' also refuses password fields in ordinary windows; 0 disables it.Optional

Environment variable: HYPRUSE_AUTH_GUARD

Set to 1 to refuse to act when the cursor or focused window moved since hypruse's last action, so the agent must re-read the desktop before retrying.Optional

Environment variable: HYPRUSE_STRICT

Set to 1 to make the agent's presence legible: tag every window it opens 'hypruse-owned' and flash an on-screen notice when it opens a window or captures the screen.Optional

Environment variable: HYPRUSE_MARK

Set to 1 to register the opt-in clipboard tool (never in read-only mode). Off by default because clipboards hold passwords.Optional

Environment variable: HYPRUSE_CLIPBOARD

Record every tool call, refusals included, as one NDJSON line: 1 writes to XDG_STATE_HOME/hypruse/journal.ndjson, or give a path. Read it back with 'hypruse journal'. Off by default.Optional

Environment variable: HYPRUSE_JOURNAL

Rotate the journal once it reaches this size, keeping one previous generation alongside it. Set 0 to never rotate.Optional

Environment variable: HYPRUSE_JOURNAL_MAX_BYTES

Set to 1 to record typed and copied text in the journal verbatim instead of as a length plus digest. Off by default because keystrokes are passwords; needed only to replay typing.Optional

Environment variable: HYPRUSE_JOURNAL_TEXT

Set to 1 for a rehearsal: every acting tool validates its arguments and runs every trust guard, then reports what it would have done and delivers no input.Optional

Environment variable: HYPRUSE_DRYRUN

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-ilyaskhallouki-hypruse": {
      "env": {
        "HYPRUSE_MARK": "your-hypruse-mark-here",
        "HYPRUSE_DRYRUN": "your-hypruse-dryrun-here",
        "HYPRUSE_STRICT": "your-hypruse-strict-here",
        "HYPRUSE_CONFINE": "your-hypruse-confine-here",
        "HYPRUSE_JOURNAL": "your-hypruse-journal-here",
        "HYPRUSE_READONLY": "your-hypruse-readonly-here",
        "HYPRUSE_CLIPBOARD": "your-hypruse-clipboard-here",
        "HYPRUSE_AUTH_GUARD": "your-hypruse-auth-guard-here",
        "HYPRUSE_JOURNAL_TEXT": "your-hypruse-journal-text-here",
        "HYPRUSE_SCREENSHOT_MODE": "your-hypruse-screenshot-mode-here",
        "HYPRUSE_JOURNAL_MAX_BYTES": "your-hypruse-journal-max-bytes-here"
      },
      "args": [
        "hypruse"
      ],
      "command": "uvx"
    }
  }
}

Reviews

No reviews yet

Be the first to review this server!