feat(#2305): hive-screen-mcp — screenshot + input MCP for GUI agents

New crate hive-screen-mcp: a stdio MCP bridge activated automatically
when an agent has hyperhive.gui.enable = true. Provides five tools:

- screenshot   — grim → saves PNG, returns path for Read tool
- type_text    — wtype → Unicode text input (no daemon)
- key_press    — ydotool key → combos like ctrl+c, super+l
- mouse_move   — ydotool mousemove --absolute
- mouse_click  — ydotool click, optionally with prior move

New nix/agent-modules/screen.nix: wires the MCP bridge into
extraMcpServers.screen; adds grim + wtype to systemPackages. Adds
hyperhive.gui.screenInput option (default false) which enables the
ydotoold daemon + ydotool for mouse/keyboard injection via /dev/uinput.

screenshot and type_text work without screenInput. key_press,
mouse_move, and mouse_click return a ydotool error until ydotoold is
running and /dev/uinput is accessible in the container.
This commit is contained in:
iris 2026-07-20 20:21:38 +02:00 committed by mara
commit 0b3268feae
8 changed files with 311 additions and 1 deletions

13
Cargo.lock generated
View file

@ -1734,6 +1734,19 @@ dependencies = [
"serde",
]
[[package]]
name = "hive-screen-mcp"
version = "0.1.0"
dependencies = [
"anyhow",
"rmcp",
"schemars",
"serde",
"tokio",
"tracing",
"tracing-subscriber",
]
[[package]]
name = "hive-sh4re"
version = "0.1.0"