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:
parent
5906cc2f2b
commit
0b3268feae
8 changed files with 311 additions and 1 deletions
23
hive-screen-mcp/Cargo.toml
Normal file
23
hive-screen-mcp/Cargo.toml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
[package]
|
||||
name = "hive-screen-mcp"
|
||||
edition.workspace = true
|
||||
version.workspace = true
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
rmcp.workspace = true
|
||||
schemars.workspace = true
|
||||
serde.workspace = true
|
||||
tokio.workspace = true
|
||||
tracing.workspace = true
|
||||
tracing-subscriber.workspace = true
|
||||
|
||||
# `hive-screen-mcp` — stdio MCP bridge for GUI agents.
|
||||
# Provides screenshot (grim), text input (wtype), key press and mouse
|
||||
# actions (ydotool) for agents running a Weston compositor.
|
||||
[[bin]]
|
||||
name = "hive-screen-mcp"
|
||||
path = "src/main.rs"
|
||||
Loading…
Reference in a new issue