
GNOME UI MCP
Gives Claude direct access to your GNOME Wayland desktop through AT-SPI for element discovery and Mutter's RemoteDesktop API for input. You can inspect UI trees, click buttons, type text, take screenshots, and wait for elements to appear. Setup requires passing through your session's D-Bus and runtime directories, so the container runs as your user and talks to the same session buses. Ships as a Docker image with stdio transport by default, plus streamable-http and SSE options if you need HTTP-based integration. Practical for automating desktop tasks that don't have CLI alternatives or testing GUI applications from an LLM.
- GitHub stars
- 1
- tools
- 10
- transport
- STDIO
- last updated
- Jun 26, 2026
Tools
10 toolsPublic tool metadata for what this MCP can expose to an agent.
take_snapshotCapture the active window (or pass window from list_windows, or app_name). Every element gets a stable opaque uid such as 7_42.
Capture the active window (or pass window from list_windows, or app_name). Every element gets a stable opaque uid such as 7_42.
No parameter schema in public metadata yet.
clickReference elements by uid. Actions auto-wait for the shell to settle and report effect verification.
Reference elements by uid. Actions auto-wait for the shell to settle and report effect verification.
No parameter schema in public metadata yet.
fillReference elements by uid. Actions auto-wait for the shell to settle and report effect verification.
Reference elements by uid. Actions auto-wait for the shell to settle and report effect verification.
No parameter schema in public metadata yet.
hoverReference elements by uid. Actions auto-wait for the shell to settle and report effect verification.
Reference elements by uid. Actions auto-wait for the shell to settle and report effect verification.
No parameter schema in public metadata yet.
fill_formReference elements by uid. Actions auto-wait for the shell to settle and report effect verification.
Reference elements by uid. Actions auto-wait for the shell to settle and report effect verification.
No parameter schema in public metadata yet.
select_windowSets the implicit snapshot scope.
Sets the implicit snapshot scope.
No parameter schema in public metadata yet.
list_windows
No parameter schema in public metadata yet.
find_elementsLower-level path-based tool remaining available as an advanced building block.
Lower-level path-based tool remaining available as an advanced building block.
No parameter schema in public metadata yet.
click_elementLower-level path-based tool remaining available as an advanced building block.
Lower-level path-based tool remaining available as an advanced building block.
No parameter schema in public metadata yet.
set_element_textLower-level path-based tool remaining available as an advanced building block.
Lower-level path-based tool remaining available as an advanced building block.
No parameter schema in public metadata yet.
Sponsors
Readme
gnome-ui-mcp
Small MCP server for GNOME Wayland desktop automation.
It exposes GNOME desktop inspection and interaction through AT-SPI for discovery and Mutter RemoteDesktop for input. In practice that means element lookup, activation, typing, screenshots, and wait helpers for the current desktop session.
For navigation it follows a snapshot-driven model: take a snapshot of the active window to get stable element uids, then click/fill/hover/fill_form those uids. Stale uids are rejected rather than silently mis-targeted, and actions auto-wait for the UI to settle. See Navigation below.
Requirements
- Linux host with GNOME Shell on Wayland
- Live local GNOME session on the machine you want to automate
- Session environment available:
DBUS_SESSION_BUS_ADDRESS,XDG_RUNTIME_DIR,WAYLAND_DISPLAY,DISPLAY,XDG_SESSION_TYPE
Docker
- Docker Engine
The container must run on the same machine as the GNOME session and use the session environment plus runtime mounts.
Docker image
The recommended way to run the server is via the published GHCR image:
ghcr.io/asattelmaier/gnome-ui-mcp:latest
Details
- Repository
- github.com/asattelmaier/gnome-ui-mcp
- Category
- Automation & Workflows
- Package
ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0- Transport
- STDIO
- Registry
- MCP registry, active