Skip to content

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 ​

OrganRoleToolsPage
Vue (Sight)See the screen: captures, coordinate conversion, text location, display profiles8Vue
Touché (Touch)Read the accessibility tree: elements, roles, labels2Touché
Mains (Hands)Act: click, type, scroll, drag, drive windows15Mains
OverlayShow the person in front of the screen what the AI is doing5Overlay
DiagnosticCheck the state of the machine and the authorization ceiling2, plus pingDiagnostic

The 33 tools ​

ToolOrganRequired level
vue_displaysVueread
vue_snapshotVueread
vue_resolveVueread
vue_findVueread
vue_calibrateVueread (saves a display profile)
vue_profileVueread
vue_profile_briefVueread
vue_pilot_briefVueread
touche_treeTouchéread
touche_probeTouchéread
main_navigateMainsL1
main_hoverMainsL1
main_activateMainsL1
main_window_minimizeMainsL1
main_window_hideMainsL1
main_window_showMainsL1
main_clickMainsL2
main_typeMainsL2
main_dragMainsL2
main_keyMainsL2
main_pressMainsL3
main_mouse_downMainsL4
main_mouse_upMainsL4
main_key_downMainsL4
main_key_upMainsL4
overlay_highlightOverlaynone (presentation)
overlay_spotlightOverlaynone (presentation)
overlay_cursorOverlaynone (presentation)
overlay_bannerOverlaynone (presentation)
overlay_clearOverlaynone (presentation)
daimon_doctorDiagnosticread
main_ceilingDiagnosticread
pingDiagnostic (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.

LevelInternal nameWhat it allows
L0READLooking only, no action
L1NONDESTRUCTIVEScrolling, hovering, activating and hiding windows
L2INPUTClick, typing, keys, drag and drop
L3VALIDATIONActivating a committing button (main_press)
L4AUTONOMOUSLow-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.