Labsco
MCP SERVER

GNOME Desktop MCP

by sbuysse

Drive a GNOME Wayland desktop from an assistant — screenshots, windows, and keyboard and mouse input.

Desktop & OS Automation
Summary
Desktop automation on Wayland, where most tools cannot reach.

The screenshot and input APIs an assistant needs are closed to outside processes on GNOME Wayland, and running inside the compositor is what makes this work at all. The trade is the session bus trust model: any local process can call the same API, which is why the top-bar indicator and the master switch exist.

What it is

A Python server paired with a GNOME Shell extension. Wayland blocks outside processes from capturing the screen or injecting input, so the extension runs inside the compositor and exposes a D-Bus API that the server calls.

What you get
  • 30 tools across screenshots, window management, input injection and workspace control
  • Full-screen, single-window and rectangular-region captures, plus the pixel colour at a coordinate
  • Windows listed, focused, moved, resized, minimised, maximised and closed; workspaces listed and switched
  • Key presses, key combinations, typed text, mouse move, click, double-click, drag and scroll
  • A top-bar indicator showing when automation is active, and a switch that blocks every D-Bus method at once
Requirements

GNOME Shell 45-49 on Wayland and Python 3.12 or newer. The server installs from PyPI as gnome-desktop-mcp; the Shell extension installs separately and needs a log out and back in before it loads.