ghost-hands
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GHOST_HANDS_CHROME | No | Overrides the Chromium/Chrome binary path used when GHOST_HANDS_DRIVER is chromium. | |
| GHOST_HANDS_DRIVER | No | Selects the MCP session body: fake, chromium, simphone, or android. Defaults to fake. Unknown values fail loudly at startup. | fake |
| GHOST_HANDS_POLICY | No | Policy pack name for the MCP server, such as readonly, standard, strict, or seatbelt. Unknown pack names fail loudly. | |
| GHOST_HANDS_APPROVER | No | Set to phone to route session ask verdicts through PhoneApprover. By default, asks are denied with an explanation. | |
| GHOST_HANDS_START_URL | No | URL to open on the first perceive. | |
| GHOST_HANDS_ANDROID_TOKEN | No | Pairing token for the MrGhosty Ghost Hands Android bridge, used when GHOST_HANDS_DRIVER is android. The token never appears in tool output. | |
| GHOST_HANDS_ANDROID_BRIDGE | No | Android bridge address used when GHOST_HANDS_DRIVER is android. |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| hands_perceiveC | Open a URL (or install a fake web via 'pages') and return the numbered element map. |
| hands_actA | Perform one governed action (e.g. {"kind":"click","target":3}) on the perceived page. Consequential actions are denied without an approver (or decided by the phone when GHOST_HANDS_APPROVER=phone); the response states which channel decided. |
| hands_runC | Run scripted steps through the governed Runner. driver: 'fake', 'chromium', 'simphone' or 'android' (default: the session body, GHOST_HANDS_DRIVER). |
| hands_trailB | Return this session's trail events and per-run accounting. |
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 4 tools
hands_perceive (observe/build element map) and hands_trail (read telemetry) are clearly distinct from the action tools, and hands_act vs hands_run is mostly separable by cardinality (one governed action vs scripted multi-step run). The boundary is slightly fuzzy since a single-step script could be expressed via either act or run, but the descriptions make the intended split readable.
All four tools use the same hands_<verb> convention (hands_act, hands_run, hands_trail, hands_perceive) with concrete, unambiguous verbs. No mixing of casing or verb styles.
Four tools map cleanly onto the core loop of a governed automation driver: perceive the page, act once, run a batch, inspect the trail. Each tool earns its place with no filler or redundancy, and the surface stays small enough to be trivially comprehensible.
The observe → act → batch-run → audit loop is fully covered, including approver-gated consequential actions. Minor gaps exist around session lifecycle (no explicit session start/close/reset) and approval management (approver state only reported indirectly via act responses), which agents can mostly work around.