A side-by-side look at the Computer Use and Kwin MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Computer Use for os automation work as a local process; choose Kwin MCP for os automation as a local process. You can also run both side by side in one mcpServers block.
mouse_move, mouse_move_smooth, mouse_move_relative.session_start, session_connect, session_stop.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | OS Automation | OS Automation |
| Quality signal | 52/100 · Good | 53/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 3 | 2 |
| Directory activity | 1 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 44 | 30 |
| Full listing | View Computer Use | View Kwin MCP |
mouse_moveMove cursor to absolute coordinatesmouse_move_smoothSmooth cursor movement (human-like)mouse_move_relativeRelative cursor movementmouse_get_positionGet current cursor positionmouse_clickMouse clickmouse_click_atMove and clickmouse_togglePress/release mouse buttonmouse_dragDrag operationmouse_drag_smoothSmooth drag operationmouse_scrollScrollmouse_scroll_directionScroll in directionmouse_scroll_smoothSmooth scrollsession_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 coordinatesPaste 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": {
"computer-use-2": {
"command": "npx",
"args": [
"-y",
"go-computer-use-mcp-server"
]
}
}
}
{
"mcpServers": {
"kwin-mcp": {
"command": "uvx",
"args": [
"kwin-mcp"
]
}
}
}