Pi Desktop Bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| --host | Yes | SSH alias or hostname of the Raspberry Pi desktop. Required to connect the bridge to the correct Pi. | |
| --capture-max-width | No | Maximum width for post-action screenshots (e.g., 960). Optional; reduces image size. |
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 |
|---|---|
| desktop_statusA | Show connection and desktop dimensions for the authorized Raspberry Pi. |
| desktop_healthA | Check Pi agent and desktop prerequisites without acquiring a session. This does not reserve the desktop or guarantee a later capture. |
| desktop_screenshotA | Capture the Pi desktop, optionally a source region in original pixels and/or a downscaled image. The returned view_id enables image-pixel mouse coordinates. |
| desktop_wait_for_stableB | Observe sampled desktop pixels until unchanged for the requested duration, or sampling times out. Returns the last image and stability status; sampled equality does not prove the app is ready. A full desktop_screenshot is still required to recover from an uncertain input. |
| desktop_disconnectA | Release this bridge's Pi desktop session. The MCP server can reconnect on the next tool call. |
| desktop_moveA | Move the pointer in original desktop pixels, or image pixels with the current view_id, then show a fresh screenshot. |
| desktop_clickB | Click in original desktop pixels, or image pixels with the current view_id, then show a fresh screenshot. Button is left, right, or middle. |
| desktop_dragB | Drag in original desktop pixels, or image pixels with the current view_id, then show a fresh screenshot. |
| desktop_scrollC | Scroll at an explicit target in original pixels (x and y together), or image pixels with the current view_id, then show a fresh screenshot. Direction is up, down, left, or right. |
| desktop_typeB | Type text into the focused desktop app and show a fresh screenshot. |
| desktop_keyB | Press a key combination in the focused desktop app and show a fresh screenshot. Keys is a list such as ['Control_L','a']. |
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
Most tools have clearly distinct actions: input actions (click, move, drag, scroll, type, key), capture (screenshot), and session management (status, health, disconnect). Minor overlap exists between desktop_status and desktop_health, and between desktop_screenshot and desktop_wait_for_stable, but descriptions clarify their different purposes.
All tool names use a consistent snake_case pattern with the desktop_ prefix and a clear action-oriented verb or noun. The convention is predictable throughout the set.
The 11 tools are well-scoped for a remote desktop control bridge, covering observation, input, and session management without excessive or redundant tools. Each tool appears to earn its place.
The set covers essential desktop automation operations: screenshot, wait for stability, pointer movement, clicking, dragging, scrolling, typing, key presses, and session status/health/disconnect. Minor gaps like explicit double-click or clipboard access are not critical and can be worked around with existing tools.