A side-by-side look at the Kwin MCP and Gnome Desktop MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Kwin MCP for os automation work as a local process; choose Gnome Desktop MCP for os automation. You can also run both side by side in one mcpServers block.
session_start, session_connect, session_stop.screenshot, screenshot_window, screenshot_area.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | OS Automation | OS Automation |
| Quality signal | 53/100 · Good | 49/100 · Fair |
| Install command | Confirmed | Not confirmed yet |
| Transport | Local subprocess (stdio) | — |
| Auth | Not declared | No auth required |
| Pricing | Not declared | Free |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 15 |
| Directory activity | 0 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | 30 | 26 |
| Full listing | View Kwin MCP | View Gnome Desktop MCP |
session_startStart an isolated KWin Wayland session, optionally launching an app. A screen size of `0` auto-detects the bounding box of the logical desktop (all enabled outputs / connected monitors). Set `enable_clipboard=true` to enable clipboard tools (requires `wl-clipboard`). Set `keep_screenshots=true` to…session_connectConnect to an existing KWin session (real desktop or container). Defaults to `$DBUS_SESSION_BUS_ADDRESS` and `$WAYLAND_DISPLAY`. Clipboard is always enabled. `session_stop` only disconnects without killing KWin or pre-existing apps.session_stopStop the session and clean up. For virtual sessions: terminates KWin and all apps. For live sessions: disconnects without killing KWin or pre-existing apps.screenshotCapture a screenshot of the virtual display (saved as PNG, returns file path)accessibility_treeGet the AT-SPI2 widget tree with roles, names, states, and screen coordinates (translated from window-local coordinates via compositor-side window geometry). Use `role` to filter to specific element types (e.g. `"button"`, `"check box"`). Non-matching elements are hidden but their children are stil…find_ui_elementsSearch for UI elements by name, role, or description (case-insensitive). Returns screen coordinates suitable for `mouse_click` and friends. Optionally filter by AT-SPI2 states (e.g. `["focused"]`, `["active", "visible"]`). `query` can be empty when filtering by states only.mouse_clickClick at coordinates. Supports left/right/middle, single/double/triple click, modifier keys (e.g. `["ctrl", "shift"]`), and long-press via `hold_ms`.mouse_moveMove the cursor (hover) to coordinates without clickingmouse_scrollScroll at coordinates. `delta` positive = down/right, negative = up/left. Use `discrete=true` for wheel ticks, `steps` to split into smooth increments.mouse_dragDrag from one point to another with smooth interpolation. Supports custom `waypoints` for complex drag paths.mouse_button_downPress a mouse button at coordinates without releasing. Use with `mouse_button_up` for manual drag control.mouse_button_upRelease a previously pressed mouse button at coordinatesscreenshotFull screen capturescreenshot_windowCapture a specific windowscreenshot_areaCapture a rectangular regionpick_colorGet pixel color at coordinatescleanup_screenshotsRemove temp screenshot fileslist_windowsList all open windowsget_windowGet detailed window propertiesfocus_windowFocus and raise a windowmove_resize_windowMove and resize a windowminimize_windowMinimize/restoremaximize_windowMaximize/restoreclose_windowClose a windowPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"kwin-mcp": {
"command": "uvx",
"args": [
"kwin-mcp"
]
}
}
}
No confirmed install command for Gnome Desktop MCP yet — follow the setup steps linked from its listing page rather than a guessed package name.