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
Máy chủ liên quan
Manifold Markets
Interact with Manifold Markets prediction markets, including market creation, trading, and liquidity management.
Tapo MCP
MCP server for discovering and controlling TP-Link Tapo smart home devices via AI Agents
pop-pay
Stop AI agents leaking your payment info or making hallucinated purchases. No SaaS, No login, No pain, fully local.
Stock Market Tracker
MCP server for advanced financial analysis, stock monitoring, and real-time market intelligence to support buy/sell decisions
Cybersecurity Vulnerability Intel MCP
Real-time CVE lookup via NIST NVD 2.0, CISA KEV alerts, EPSS exploitation probability, and MITRE ATT&CK mappings. 7 tools for AI-powered vulnerability assessment.
Payman API
Integrates with Payman AI's payment APIs to manage payees, payments, and balances using natural language.
Stockfish
Enables AI to communicate with the Stockfish chess engine.
Ultra MCP SS
An MCP server for programmatic control of smartscreen.tv displays via HTTP and MCP commands, with YouTube integration.
UN World Population Demographics
Global population data from 1950-2023. Fertility rates, life expectancy, mortality, and migration for 298 countries via MCP.
xuanxue-bazi-matching
Deterministic Chinese divination APIs (BaZi/QiMen/ZiWei/MeiHua/LiuYao/LiuRen) for AI agents — pay-per-call via x402 on Base.