LabscoMCP early access ↗
sbuysseMCP SERVER · OFFICIAL PROJECT

GNOME Desktop MCP

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

by sbuysse ↗Desktop & OS Automation✓ Official

LABSCO 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 project's install.sh links the Shell extension into your GNOME extensions folder and installs the server from your clone of the repository; after it runs, log out and back in, then enable the extension.

Setup effort

Build from source — git clone https://github.com/sbuysse/gnome-desktop-mcp.git