gnome-desktop-mcp is an open-source tool for GNOME desktop automation, with the goal of providing desktop operation capabilities to AI agents. It supports allowing compatible AI clients (such as Claude Code) to perform operations such as screenshots, window management, and keyboard and mouse input injection through MCP (Model Context Protocol).
Purpose Because GNOME Wayland prohibits external processes from taking screenshots or injecting input, this project bypasses the restrictions by running a GNOME Shell extension inside the compositor, and exposes an interface through D-Bus. The MCP server written in Python then converts MCP tool calls into D-Bus method calls (with the help of dasbus), thereby allowing any client that supports MCP to indirectly control the GNOME desktop.
Main capabilities
- Provides about 30 MCP tools, covering screenshots, window management, input injection, and workspace control.
- Screenshots: silent screenshots are implemented through Shell.Screenshot, without popping up a permission dialog.
- Window management: manipulate windows with the help of Meta.Window.
- Keyboard/mouse injection: send input events through Clutter.VirtualInputDevice.
- Privacy indicator: a top bar icon shows the connection status (red indicates active, gray indicates idle).
- Master switch: all automation can be disabled with one click.
- Activity log: records the most recent 20 method calls (only names and timestamps, no data).
How to use
- Quick installation (development version): after installation, you need to log out and log back in (required under Wayland), then enable it.
- The MCP server can be installed from PyPI only.
- When using it in Claude Code, the configuration can be added to ~/.claude/settings.json.
- A confirmation dialog will pop up before first use, and automation can only be enabled after agreeing.
Applicable scenarios
- Scenarios where an AI assistant needs to perform automated tasks such as screenshots, window switching, and simulated keyboard and mouse operations on a GNOME Wayland desktop.
- Used in conjunction with MCP-compatible clients such as Claude Code.
Limitations and security model
- Only supports GNOME Shell 45 to 49 (Wayland).
- Uses a session bus trust model: any local user process can call this API, which is consistent with GNOME's own security model.
- Access is gated through D-Bus, and all methods are blocked when disabled.
- The master switch can immediately disable automation, and the privacy indicator shows the current connection/activation status.
Other information: the project address is https://github.com/sbuysse/gnome-desktop-mcp;GNOME The Shell extension identifier is desktop-automation@gnomemcp.github.io, and it exports io.github.gnomemcp.DesktopAutomation on the session D-Bus; the MCP server package name is gnome-desktop-mcp. Regarding clipboard and notification features, official materials only mention them in the overview, and specific tool details are not yet provided; information such as pricing, cost, platform, and effects is not yet provided.