loading…
Search for a command to run...
loading…
GNOME desktop automation for AI agents. 30 tools via D-Bus: screenshots, window management, mouse/keyboard injection, clipboard, workspaces, and system notifica
GNOME desktop automation for AI agents. 30 tools via D-Bus: screenshots, window management, mouse/keyboard injection, clipboard, workspaces, and system notifications. Works on any GNOME 45–49 Linux desktop.
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
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.
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]
pip install gnome-desktop-mcp
Add to ~/.claude/settings.json:
{
"mcpServers": {
"desktop-automation": {
"command": "gnome-desktop-mcp"
}
}
}
| 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 |
| 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 |
| 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 |
| Tool | Description |
|---|---|
ping |
Check extension is alive |
get_enabled / set_enabled |
Check/toggle automation |
get_monitors |
List monitors with geometry |
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 injectionThe Python MCP server (gnome-desktop-mcp) translates MCP tool calls into D-Bus method calls via dasbus.
# 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
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"sbuysse-gnome-desktop-mcp": {
"command": "npx",
"args": []
}
}
}Web content fetching and conversion for efficient LLM usage.
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also