MCP tools reference
This section describes the 33 public tools that Daimon exposes to your AI client through the MCP protocol, over stdio. Daimon is a local organ of perception and action: it calls no AI itself and only answers when your client queries it.
The default values quoted are those in the code; if they differ, the code is authoritative.
The organs
| Organ | Role | Tools | Page |
|---|---|---|---|
| Vue (Sight) | See the screen: captures, coordinate conversion, text location, display profiles | 8 | Vue |
| Touché (Touch) | Read the accessibility tree: elements, roles, labels | 2 | Touché |
| Mains (Hands) | Act: click, type, scroll, drag, drive windows | 15 | Mains |
| Overlay | Show the person in front of the screen what the AI is doing | 5 | Overlay |
| Diagnostic | Check the state of the machine and the authorization ceiling | 2, plus ping | Diagnostic |
The 33 tools
| Tool | Organ | Required level |
|---|---|---|
vue_displays | Vue | read |
vue_snapshot | Vue | read |
vue_resolve | Vue | read |
vue_find | Vue | read |
vue_calibrate | Vue | read (saves a display profile) |
vue_profile | Vue | read |
vue_profile_brief | Vue | read |
vue_pilot_brief | Vue | read |
touche_tree | Touché | read |
touche_probe | Touché | read |
main_navigate | Mains | L1 |
main_hover | Mains | L1 |
main_activate | Mains | L1 |
main_window_minimize | Mains | L1 |
main_window_hide | Mains | L1 |
main_window_show | Mains | L1 |
main_click | Mains | L2 |
main_type | Mains | L2 |
main_drag | Mains | L2 |
main_key | Mains | L2 |
main_press | Mains | L3 |
main_mouse_down | Mains | L4 |
main_mouse_up | Mains | L4 |
main_key_down | Mains | L4 |
main_key_up | Mains | L4 |
overlay_highlight | Overlay | none (presentation) |
overlay_spotlight | Overlay | none (presentation) |
overlay_cursor | Overlay | none (presentation) |
overlay_banner | Overlay | none (presentation) |
overlay_clear | Overlay | none (presentation) |
daimon_doctor | Diagnostic | read |
main_ceiling | Diagnostic | read |
ping | Diagnostic (appendix) | read |
Authorization levels
Perception, overlay and diagnostic tools are never subject to the ceiling. Only the 15 action tools of Mains are. The ceiling is a human setting: an AI can never raise it, and a tool above the ceiling is refused.
| Level | Internal name | What it allows |
|---|---|---|
| L0 | READ | Looking only, no action |
| L1 | NONDESTRUCTIVE | Scrolling, hovering, activating and hiding windows |
| L2 | INPUT | Click, typing, keys, drag and drop |
| L3 | VALIDATION | Activating a committing button (main_press) |
| L4 | AUTONOMOUS | Low-level primitives: holding the mouse and keys |
The effective level of a call can be raised by the target (for example, a drop onto the Trash), but never lowered below the nominal level in the table above. An unknown tool name is treated as a read and never raises the ceiling. To find out the active ceiling, call main_ceiling (see Diagnostic).
Common conventions
Coordinates. Vue and Mains speak in points: the unit of the global desktop, the one returned by vue_find and vue_resolve and used by the pointer. On a Retina display, one point corresponds to several pixels of the served image; image_scale gives the number of image pixels per point. On Windows, a point is a physical pixel of the virtual screen and backing_scale is always 1.0. Overlay coordinates, by contrast, are raw global pixels: see Overlay.
Region. A region parameter is a rectangle {x, y, width, height} in points, local to the chosen display (the origin is the top-left corner of that display, not of the desktop). It is clamped to the display; a rectangle of zero area captures nothing.
Image space. The Mains tools that take a point accept space="image" with display=k: you give the pixels of a vue_snapshot and Daimon resolves the global point itself. Pass the same max_width and region as the snapshot.
Responses. Responses are structured JSON objects. An error from the Vue organ or from point resolution takes the form {"error": "<code>", "message": "<detail>"}. Mains returns {"status": "refused" | "done" | "error", ...}: see Mains.
Presence on screen. Every tool call first lights up the presence mark, so that the person in front of the screen knows an AI is using Daimon, whether to look or to act.
Privacy. Applications protected by your exclusions are censored in captures, and sensitive content is redacted from accessibility trees. The text typed by main_type is never written to the audit log.