GNOME Desktop MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| screenshotA | Take a full screenshot of the entire screen. Args: include_cursor: Whether to include the mouse cursor. format: "path" returns filepath, "base64" returns base64-encoded PNG. |
| screenshot_windowA | Take a screenshot of a specific window. Args: window_id: The window's stable ID (from list_windows). include_frame: Whether to include window decorations. include_cursor: Whether to include the mouse cursor. format: "path" returns filepath, "base64" returns base64-encoded PNG. |
| screenshot_areaA | Take a screenshot of a rectangular screen region. Args: x: Left edge in pixels. y: Top edge in pixels. width: Width in pixels. height: Height in pixels. include_cursor: Whether to include the mouse cursor. format: "path" returns filepath, "base64" returns base64-encoded PNG. |
| pick_colorA | Get the pixel color at screen coordinates. Args: x: X coordinate in pixels. y: Y coordinate in pixels. Returns: JSON with r, g, b values (0.0-1.0). |
| list_windowsA | List all open windows with their properties. Returns JSON array with id, title, wmClass, position, size, state, workspace. |
| get_windowA | Get detailed properties of a specific window. Args: window_id: The window's stable ID (from list_windows). |
| focus_windowB | Focus and raise a window. Args: window_id: The window's stable ID (from list_windows). |
| move_resize_windowA | Move and resize a window. Unmaximizes first if needed. Args: window_id: The window's stable ID. x: New X position. y: New Y position. width: New width. height: New height. |
| minimize_windowC | Minimize a window. |
| unminimize_windowB | Unminimize (restore) a window. |
| maximize_windowB | Maximize a window. |
| unmaximize_windowB | Unmaximize a window. |
| close_windowC | Close a window. |
| list_workspacesB | List all workspaces with their properties. |
| activate_workspaceB | Switch to a workspace by index (0-based). |
| key_pressA | Press and release a single key. Args: key: Key name like "Return", "a", "F5", "Ctrl", "Escape". |
| key_comboB | Press a key combination. Args: keys: Combo like "Ctrl+Alt+t", "Shift+F5", "Super+l". |
| type_textB | Type text character by character. Args: text: Text to type. |
| mouse_moveA | Move the mouse to absolute screen coordinates. |
| mouse_clickA | Click at screen coordinates. button: 1=left, 2=middle, 3=right. |
| mouse_double_clickB | Double-click at screen coordinates. |
| mouse_downB | Press mouse button down without releasing. |
| mouse_upC | Release mouse button. |
| mouse_dragC | Drag from one position to another. |
| mouse_scrollB | Scroll at screen coordinates. dy negative=up, positive=down. |
| get_monitorsB | List all monitors with their geometry and scale. |
| pingA | Check if the extension is running and responding. |
| get_enabledB | Check if automation is enabled. |
| set_enabledC | Enable or disable automation. |
| cleanup_screenshotsB | Remove all temporary screenshot files. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 30 tools
Most tools have distinct purposes with clear boundaries, such as separate mouse actions (click, drag, scroll) and window operations (maximize, minimize, move_resize). However, some overlap exists between key_press and key_combo, which could cause confusion if an agent needs to press a single key versus a combination, though descriptions help clarify.
All tool names follow a consistent snake_case pattern with clear verb_noun structure, such as activate_workspace, close_window, and screenshot_area. There are no deviations in naming conventions, making the set predictable and easy to parse.
With 30 tools, the count is borderline high for a desktop automation server, as it includes many granular actions like separate mouse_down and mouse_up. While comprehensive, it may feel heavy and could be streamlined by grouping related operations, though it covers a broad scope reasonably.
The tool set provides complete coverage for GNOME desktop automation, including window management (list, focus, close, resize), workspace control, input simulation (keyboard, mouse, typing), screenshots (full, area, window), and system checks (ping, enable/disable). No obvious gaps exist; agents can perform end-to-end automation tasks without dead ends.