hypruse
Provides tools to control the Hyprland desktop environment, including screen capture, mouse and keyboard input, and window management via Hyprland's native IPC.
Leverages Wayland protocols for screen capture (wlr-screencopy) and input injection (virtual-pointer) to enable agent control on Wayland sessions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hyprusetake a screenshot and describe the UI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hypruse [hybrid-use]
Hyprland-native computer-use backend for MCP-capable agents (OpenCode, Claude Code, and anything speaking MCP).
No Xvfb, no X11 hacks. Uses Hyprland's native IPC + wlr virtual pointer protocols for cursor/keyboard injection on actual Wayland sessions.
how it works
Hyprland has no xdotool. Wayland doesn't let clients inject input into other surfaces. But hypruse bridges the gap with:
grim / grimblast for screen capture (wlr-screencopy)
hyprctl dispatch movecursor for absolute cursor positioning (Hyprland's native IPC)
ydotool (uinput) or wlrctl (wlroots virtual-pointer protocol) for click/type/scroll injection
Coordinate math that maps screenshot pixels to compositor-space coordinates (handles multi-monitor)
Related MCP server: mcp-screenshot
install
# install deps
sudo pacman -S grim ydotool # or grimblast from AUR
# start ydotoold daemon
systemctl --user enable --now ydotoold
# install hypruse
pip install .
# or
uv tool install .backend options
backend | pros | cons |
| works on any compositor | needs |
| no daemon needed | wlroots-only (Hyprland qualifies) |
usage
CLI (manual testing)
hypruse screenshot -o test.png
hypruse click 800 450
hypruse move 400 300
hypruse type "hello world"
hypruse key ctrl+s
hypruse monitors
hypruse active
hypruse cursorposMCP server (for agents)
hypruse-mcpFlags: --dry-run, --confirm-destructive, --target-width 1600, --target-height 900, --backend auto
MCP configuration
OpenCode (~/.config/opencode.json)
{
"mcpServers": {
"hypruse": {
"command": "hypruse-mcp",
"args": []
}
}
}Claude Code (.mcp.json in project, or ~/.mcp.json)
{
"mcpServers": {
"hypruse": {
"command": "hypruse-mcp",
"args": []
}
}
}Or via CLI:
claude mcp add hypruse --cmd hypruse-mcpavailable MCP tools
tool | params | what it does |
|
| captures screen, returns PNG + display dims |
|
| crops+scales a region from last screenshot |
|
| moves cursor (screenshot space -> compositor space) |
|
| move + click |
|
| press and hold |
|
| release |
|
| click-drag through points |
|
| move + scroll |
|
| keyboard type |
|
| key combo (both |
|
| hold for duration |
|
| sleep |
| - | monitor layout json |
| - | active window info |
safety features
deny-list: certain key combos (ctrl+c, alt+f4, etc) trigger confirmation prompts
action log: every call logged to
~/.local/state/hypruse/actions.logdry-run:
--dry-runlogs everything but executes nothing
coordinate system
All coordinates are in the last screenshot's pixel space. Internally hypruse translates them to Hyprland's compositor space using hyprctl monitors -j offsets. The scale factor from original resolution to delivered screenshot is handled transparently.
deny list config
~/.config/hypruse/config.json:
{
"deny_list": ["ctrl+c", "alt+f4", "super+q"],
"target_width": 1600,
"target_height": 900,
"backend": "auto"
}This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server for Hyprland desktop automation that allows AI assistants to see the screen, control mouse and keyboard, and manage windows using native Wayland tools. It integrates OCR for text-based interaction and supports complex multi-monitor setups with pixel-accurate coordinate mapping.Last updated275MIT
- FlicenseAqualityDmaintenanceMCP server for taking Linux / Wayland screenshots via grim and slurp.Last updated2
- Alicense-qualityDmaintenanceA standalone MCP server for Linux desktop control, enabling screenshots, mouse/keyboard input, app/window management, and clipboard access via a Python bridge.Last updatedMIT
- FlicenseAqualityBmaintenanceAn MCP server that lets Claude control Hyprland through hyprctl, providing tools for windows, workspaces, monitors, config, keybinds, notifications, screenshots, app launcher, tags, groups, cursor, blue light filter, wallpaper, and raw hyprctl access.Last updated48
Related MCP Connectors
A TypeScript MCP server for Home Assistant, enabling programmatic management of entities, automati…
MCP server for Hailuo (MiniMax) AI video generation
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/XLRC888/hypruse'
If you have feedback or need assistance with the MCP directory API, please join our Discord server