icon for mcp server

Hyprland Controller

STDIO

Lightweight server exposing Hyprland Wayland compositor functionality to language models.

Hyprland MCP Server

License: MIT Python 3.10+ Platform Build Status MCP Server

https://github.com/user-attachments/assets/b4fc1d26-ec04-451a-b7c9-7f87b44d9c9e

A lightweight, unofficial Model Context Protocol (MCP) server that exposes all the functionality of hyprctl—the command-line interface for the Hyprland Wayland compositor—to language models.

This server enables natural language interfaces to query and control Hyprland's window management, layouts, inputs, and more.

Note: This project is experimental and in beta.

🚀 Quick Start

1. Clone the repository

git clone https://github.com/stefanoamorelli/hyprmcp.git cd hyprmcp

2. Grab your HYPRLAND_INSTANCE_SIGNATURE

echo $HYPRLAND_INSTANCE_SIGNATURE

3. Install the server in your MCP client

For example, in Claude Desktop, modify the ~/.config/Claude/claude_desktop_config.json file as follows:

"Hyperland MCP Server": { "command": "uv", "args": [ "run", "--with", "mcp[cli]", "--with", "subprocess", "mcp", "run", "<global path of the repo>/hyprmcp/hyprmcp/server.py" ], "env": { "PYTHONPATH": "<global path of the repo>/hyprmcp", "HYPRLAND_INSTANCE_SIGNATURE": "<your-hyprland-instance-signature>" } },

🧰 Available Tools

Tool NameDescription
run_hyprctl_commandExecutes arbitrary hyprctl commands.
get_versionRetrieves the Hyprland version and build info.
list_monitorsLists all connected monitors and properties.
list_workspacesLists all active workspaces.
list_clientsLists all windows and their properties.
list_devicesLists all connected input devices.
get_active_windowShows the currently active window details.
list_layersDisplays all layers in the compositor.
get_splashRetrieves the current random splash message.
dispatch_commandDispatches a command to Hyprland.
set_keywordDynamically sets a configuration keyword.
reload_configForces a reload of the Hyprland config file.
enter_kill_modeEnables kill mode to terminate windows by click.

These tools allow language models to interact with Hyprland's features seamlessly.

💡 Example Usage

User Prompt: "Switch to workspace 2."

MCP Server Action: Executes hyprctl dispatch workspace 2.

User Prompt: "What is the current active window?"

MCP Server Action: Executes hyprctl activewindow -j and returns the details.

🛠️ Development

To run the server locally for development:

mcp dev server.py

Ensure that Hyprland is running and the necessary environment variables are set.

📚 References

📜 License

MIT License © 2025 Stefano Amorelli

Be the First to Experience MCP Now