Hyprland控制协议服务器

一个轻量级的非官方Model Context Protocol服务器,通过自然语言接口暴露Hyprland Wayland合成器的所有功能,用于查询和控制窗口管理、布局、输入等。

  • by stefanoamorelli
  • Python
  • 本地部署
  • 35 星标
  • 更新于
在 GitHub 查看 stefanoamorelli/hyprmcp

使用说明

Hyprland MCP服务器

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

一个轻量级的、非官方的 模型上下文协议(MCP) 公开所有功能的服务器 hyprctl--的命令行界面 Hyprland 的 Wayland合成器——语言模型。

该服务器支持自然语言界面查询和控制Hyprland的窗口管理、布局、输入等。

注: 这个项目是实验性的,处于测试阶段。

🚀 快速开始

1.克隆存储库

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

2.抓住你的 HYPRLAND_INSTANCE_SIGNATURE

echo $HYPRLAND_INSTANCE_SIGNATURE

3.在MCP客户端中安装服务器

例如,在Claude Desktop中,修改 ~/.config/Claude/claude_desktop_config.json 文件如下:

"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>"
  }
},

🧰 可用工具

工具名称 描述
run_hyprctl_command 执行任意操作 hyprctl 命令。
get_version 检索Hyprland版本和构建信息。
list_monitors 列出所有连接的监视器和属性。
list_workspaces 列出所有活动工作区。
list_clients 列出所有窗口及其属性。
list_devices 列出所有连接的输入设备。
get_active_window 显示当前活动窗口的详细信息。
list_layers 显示合成器中的所有图层。
get_splash 检索当前随机启动消息。
dispatch_command 向Hyprland发送命令。
set_keyword 动态设置配置关键字。
reload_config 强制重新加载Hyprland配置文件。
enter_kill_mode 启用终止模式,通过单击终止窗口。

这些工具允许语言模型与Hyprland的功能无缝交互。

💡 示例用法

用户提示: “切换到工作区2。”

MCP服务器操作: 执行 hyprctl dispatch workspace 2.

用户提示: “当前活动窗口是什么?”

MCP服务器操作: 执行 hyprctl activewindow -j 并返回详细信息。

🛠️ 发展

要在本地运行服务器进行开发,请执行以下操作:

mcp dev server.py

确保Hyprland正在运行,并且设置了必要的环境变量。

📚 参考文献

📜 许可证

MIT许可证 ©2025 Stefano Amorelli