GNOME Desktop MCP
GNOME Shell extension + Python MCP server giving AI assistants 30 tools to automate the Linux desktop: screenshots, window management, mouse/keyboard injection, clipboard, and workspaces.
Gnome-MCP
Desktop automation for GNOME Wayland via MCP. Take screenshots, manage windows, and inject keyboard/mouse input from AI assistants like Claude Code.
Claude Code ──MCP──▶ gnome-desktop-mcp (Python) ──D-Bus──▶ GNOME Shell Extension
Why
GNOME Wayland blocks external processes from taking screenshots or injecting input. This extension runs inside the compositor, bypassing those restrictions, and exposes a D-Bus API. The MCP server bridges that API to any MCP-compatible client.
Features
- 30 MCP tools: screenshots, window management, input injection, workspace control
- Privacy indicator: top bar icon shows connection status (red = active, grey = idle)
- Consent dialog: first-use confirmation before enabling automation
- Access gating: master kill switch to disable all automation instantly
Requirements
- GNOME Shell 45-49 (Wayland)
- Python 3.12+
Installation
Quick install (development)
git clone https://github.com/sbuysse/gnome-mcp.git
cd gnome-mcp
./install.sh
Then log out and back in (required for Wayland), and enable:
gnome-extensions enable [email protected]
MCP server only (from PyPI)
pip install gnome-desktop-mcp
Claude Code Configuration
Add to ~/.claude/settings.json:
{
"mcpServers": {
"desktop-automation": {
"command": "gnome-desktop-mcp"
}
}
}
Tools
Screenshots
| Tool | Description |
|---|---|
screenshot | Full screen capture |
screenshot_window | Capture a specific window |
screenshot_area | Capture a rectangular region |
pick_color | Get pixel color at coordinates |
cleanup_screenshots | Remove temp screenshot files |
Windows
| Tool | Description |
|---|---|
list_windows | List all open windows |
get_window | Get detailed window properties |
focus_window | Focus and raise a window |
move_resize_window | Move and resize a window |
minimize_window / unminimize_window | Minimize/restore |
maximize_window / unmaximize_window | Maximize/restore |
close_window | Close a window |
list_workspaces | List all workspaces |
activate_workspace | Switch workspace |
Input
| Tool | Description |
|---|---|
key_press | Press a single key ("Return", "F5", "a") |
key_combo | Key combination ("Ctrl+Alt+t") |
type_text | Type text character by character |
mouse_move | Move mouse to coordinates |
mouse_click | Click at coordinates |
mouse_double_click | Double-click |
mouse_down / mouse_up | Press/release mouse button |
mouse_drag | Drag from point A to point B |
mouse_scroll | Scroll at coordinates |
Utility
| Tool | Description |
|---|---|
ping | Check extension is alive |
get_enabled / set_enabled | Check/toggle automation |
get_monitors | List monitors with geometry |
Privacy
- Top bar indicator shows when automation is active
- Toggle switch to disable all automation instantly
- Activity log tracks last 20 method calls (name + timestamp only, no data)
- D-Bus access gating: all methods blocked when disabled
- Session bus trust model: any local user process can call the API (consistent with GNOME's security model)
Architecture
The GNOME Shell extension ([email protected]) runs inside the Wayland compositor. It exports io.github.gnomemcp.DesktopAutomation on the session D-Bus with privileged access to:
Shell.Screenshot— silent screenshots (no permission dialog)Meta.Window— window managementClutter.VirtualInputDevice— keyboard/mouse injection
The Python MCP server (gnome-desktop-mcp) translates MCP tool calls into D-Bus method calls via dasbus.
Development
# Install in development mode
pip install -e mcp-server[dev]
# Run tests
python -m pytest tests/ -v
# Watch extension logs
journalctl /usr/bin/gnome-shell -f
# Test D-Bus directly
gdbus call --session --dest org.gnome.Shell \
--object-path /io/github/gnomemcp/DesktopAutomation \
--method io.github.gnomemcp.DesktopAutomation.Ping
License
関連サーバー
MCP GameBoy Server
Allows Large Language Models to interact with a GameBoy emulator via the serverboy MCP server.
Data Wallets MCP
It connects Agents to data wallet with DID and verifiable credentials
Volume Wall Detector
Provides real-time stock trading volume analysis, detects significant price levels (volume walls), and tracks trading imbalances.
Factory Insight Service
Analyzes manufacturing production capacity, including evaluations, equipment, processes, and factory distribution to assess enterprise strength.
Chess Stats
An MCP server that provides chess statistics for any player.
ALMA_MCP
A Model Context Protocol (MCP) server that provides comprehensive access to the ALMA (Atacama Large Millimeter/submillimeter Array) archive through a clean, extensible architecture.
ROT Trading Intelligence
The first financial intelligence MCP server. Live AI-scored trading signals from Reddit, SEC filings, FDA approvals, Congressional trades, and 15+ sources. 7 tools, 2 resources, hosted remotely, free, no API key required.
Devices MCP Server
An MCP server for controlling and monitoring peripheral devices connected to your computer, such as cameras and microphones.
Cyberbro
Extracts Indicators of Compromise (IoCs) from text and checks their reputation using multiple threat intelligence services.
Weather
Provides real-time weather information for any location.