Tools reference
The full read + write surface the MCP server exposes, and the domain resources it grounds itself in.
Read
list_projects
Accessible grounds with slug, name, latestActivityAt, isActive, transplanting.
Input — none
get_graph
The tree: nodes (with plan / implements / dormant flags), edges, apis, seasons, bugs, project.transplanting. The summary view omits soft-deleted nodes.
Input — slug; optional view, rootId/depth, maxType, role, season, descriptions
Read a big tree in slices rather than all at once:
rootId(+depth) — one trunk or limb. Get its id from amaxType="trunk"skeleton first.maxType— a layer ceiling.twiggives the skeleton without leaves and veins.role— a cross-section (structure / object / action).season— what grew in that season.descriptions—none/excerpt/full, controlling the heaviest field.
The summary also carries a shape block (depth and width), a per-node childCount, and iaHints flagging structural smells.
get_impact
Blast radius — the nodes affected if a target breaks, following dependencies and API flow.
Input — slug, node or bug; optional direction (affected / dependsOn / both)
list_bugs
Bugs of the ground. Each carries a score (0–8 change risk) and an impactCount.
Defaults to status: "active" — wild + chasing. Healed bugs are history, so a scan leaves them out until you ask for catched or all.
Input — slug; optional status (active / wild / chasing / catched / all), limit, order (asc / desc), view
get_bug
One bug by its number (ref: 14 — the #014 shown in the UI) or its id. Returns the full description plus its blast radius.
Input — slug, ref
list_seasons
Seasons in chronological order.
Input — slug
list_events
Append-only change history of the ground (create / update / delete / plan_commit).
Input — slug; optional limit, before, entityType
Write — tree, edges, APIs
create_node
Follows the plant vocabulary protocol and warns on soft issues. Build leaf-first.
Input — slug, type, label; optional parent, season, description, metadata
update_node
Patch label / type / parent / season / description / metadata. Record realized code in metadata.implements.
Input — slug, id, patch
delete_node
Soft delete; rejects nodes with active children. hard (with cascade) works only while the ground is transplanting.
Input — slug, id; optional hard
create_edge / delete_edge
Dependency and data-flow edges between nodes.
Input — slug, source and target (create) or id (delete)
create_api / update_api / delete_api
API flows — first-class, not generic edges.
Input — slug, start / end, …
Write — grounds & bugs
create_project
A new ground. It starts in transplant mode, with relaxed guards until you root it.
Input — slug, name; optional description
create_bug
score is a 0–8 change risk (impact × fix difficulty) and defaults to 4.
Input — slug, title, target {kind, id?}; optional score, status
update_bug / delete_bug
Status transitions, score, metadata.resolvedVersion, and so on.
Input — slug, id, patch
Plan loop & lifecycle
commit_plan
Promotes a plan node into the real tree. Rejected unless the node carries metadata.implements — proof it was actually realized.
Input — slug, id
record_commit
Appends a commit to metadata.commits of every node whose implements match a changed file. Usually called by CI.
Input — slug, sha, files; optional message
reopen_transplant
Re-opens transplant on a rooted ground — only on explicit user request. Rooting back is human-only, from the UI.
Input — slug
Seasons have no write tool — they are created by humans only (umtri://rules/seasons-human-only).
Resources
Read-only resources let AI clients ground their behaviour in Umtri’s domain rules:
| URI | What it covers |
|---|---|
umtri://rules/vocabulary | Plant metaphor (trunk → limb → twig → leaf → vein), roles, the tree as an information-structure diagram, “record results not a work log”. |
umtri://rules/vocabulary-detailed | Reclassification, twig-vs-leaf, promotion signals, Korean label heuristics. |
umtri://rules/system-structure | Nodes are information units, not code files; metadata key conventions. |
umtri://rules/plan | Plan nodes are a node-based brief: read → realize in code → attach implements → commit. |
umtri://rules/transplant | While transplanting, past-season edits and hard-delete are allowed for importing a project. |
umtri://rules/seasons-human-only | Why and how AI tools must not create seasons. |
umtri://about/vision | What Umtri is — the brief + configuration-record hub — and the tone to use. |