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 | Capture the desktop and return it as an image. Take one before acting, and after any action whose result you need to see. All other tools expect coordinates measured on this image. |
| clickB | Click at (x, y), in screenshot-image coordinates. button: "left", "right" or "middle". count: 2 for a double-click. |
| moveB | Move the pointer to (x, y) without clicking -- useful for hover states. |
| dragB | Press at one point, move, and release at another. Use for selecting text, moving windows, and dragging sliders. |
| scrollA | Scroll under the pointer at (x, y). dy is in wheel detents: negative scrolls down the page, positive scrolls up. |
| type_textA | Type text into whatever currently has keyboard focus. Click the target field first. Newlines in the text are typed as Enter. |
| keyB | Press a key or chord, e.g. "enter", "ctrl+s", "alt+tab", "cmd+space". Modifiers: ctrl, alt, shift, super (aka win), cmd. "cmd" is Command on macOS and Super elsewhere, so one chord works across platforms. |
| cursor_positionA | Report where the pointer is, in both image and screen coordinates. |
| list_windowsA | List open windows with their titles and geometry, where the OS allows it. |
| waitC | Pause, then look again. Use while a page loads or an animation finishes. |
| desktop_infoA | Report the environment, the chosen backends, and the active safety limits. Worth calling once at the start of a session, or whenever something fails. |
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 11 tools
Each tool maps to a distinct input modality or query—screenshot, pointer actions, keyboard actions, and state queries—so there is little chance of selecting the wrong tool. The only adjacent pair is type_text vs key, but their descriptions clearly separate literal text entry from chords/hotkeys.
Most names are short, lowercase imperative verbs (click, move, drag, scroll, wait), with a few compound state/query names (cursor_position, desktop_info) and two verb_noun pairs (type_text, list_windows). The style is readable and predictable, though not every tool follows a uniform verb_noun pattern.
11 tools cover the core desktop-automation surface without redundancy or bloat. Each tool addresses a distinct need, so the count feels intentional and well-scoped.
The set provides observation (screenshot, cursor_position, list_windows, desktop_info), mouse control (click, move, drag, scroll), keyboard control (type_text, key), and a synchronization primitive (wait), covering the full cycle of GUI automation. I don't see an obvious missing operation that would leave an agent stuck in normal desktop flows.