Skip to main content
Glama

Ui Manage

ui_manage

Create and manage Godot UI controls by applying layout presets, setting text, building UI trees, and attaching custom vector drawings.

Instructions

UI / Control authoring (HUD, menus, layouts, vector decoration).

Ops: • set_anchor_preset(path, preset, resize_mode="minsize", margin=0) Apply a Control layout preset. preset: top_left | top_right | bottom_left | bottom_right | center_left | center_top | center_right | center_bottom | center | left_wide | top_wide | right_wide | bottom_wide | vcenter_wide | hcenter_wide | full_rect. resize_mode: minsize | keep_width | keep_height | keep_size. Target must be a Control. CanvasLayer is the canonical HUD parent but is not a Control — put a Control child under the CanvasLayer and apply the preset to that overlay. • set_text(path, text) Set text on a Label/Button/LineEdit/TextEdit/RichTextLabel. • set_richtext(path, text, bbcode=True) Set a RichTextLabel's text with BBcode parsing on by default — "[color=red]HP[/color]" renders as markup, and bbcode=False writes literal text. Undoable. • build_layout(tree, parent_path="") Atomically build a UI subtree from a nested spec ({type, name?, properties?, anchor_preset?, anchor_margin?, theme?, children?}). Validates everything before mutating. properties is direct node properties only. Theme constants like container spacing live under theme_override_constants/<name> — e.g. {"theme_override_constants/separation": 8} on a VBoxContainer, not {"separation": 8} (which errors). theme and anchor_preset require a Control / Window — for a HUD, nest a Control under a CanvasLayer and apply them to the Control child, not the layer itself. • draw_recipe(path, ops, clear_existing=True) Attach a declarative list of vector _draw() ops to a Control — radar sweeps, gauges, corner brackets, crosshairs, waveforms. Op kinds: line | rect | arc | circle | polyline | polygon | string.

Canonical call shape: {"op": "<verb>", "params": {...}}. Flat op parameters are accepted as a compatibility alias when the client transmits them; op and session_id remain top-level.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
opYes
paramsNo
session_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv4.2.1
    • changedInput schema / properties / op / enum
      Previous value: -[
      -  "build_layout",
      -  "draw_recipe",
      -  "set_anchor_preset",
      -  "set_text"
      -]New value: +[
      +  "build_layout",
      +  "draw_recipe",
      +  "set_anchor_preset",
      +  "set_richtext",
      +  "set_text"
      +]
  2. Addedv3.1.4
  3. Removedv3.0.7
  4. First observedv2.9.1

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it discloses important behaviors: bbcode parsing defaults on, set_richtext is undoable, build_layout validates before mutating atomically, and draw_recipe defaults to clear_existing=True. It does not cover persistence/lifecycle effects or what happens on error, but the main side effects are made visible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but the length is justified by five operations and their enums; it is front-loaded with a purpose statement and organized as a scannable Ops list. Minor redundant CanvasLayer/Control caveats in set_anchor_preset and build_layout keep it from being perfectly tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It is highly complete for a minimal-schema tool with no annotations: target types, defaults, enum values, atomicity, and the invocation envelope are all covered. The remaining gap is the underspecified nested shape of draw_recipe ops, which an output schema does not resolve; otherwise the agent has enough context to invoke most ops correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates with documented signatures, defaults, enums, and the build_layout tree spec. It falls short of fully specifying draw_recipe's op-object required fields (beyond naming line/rect/arc/etc.) and some build_layout fields such as anchor_margin, so an agent still has to guess some nested argument shapes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line, 'UI / Control authoring (HUD, menus, layouts, vector decoration)', states the domain, and the Ops list gives five specific verb+resource pairs: set_anchor_preset on Controls, set_text on text-bearing nodes, set_richtext on RichTextLabel, build_layout for UI subtrees, and draw_recipe for vector drawing. This clearly distinguishes ui_manage from the generic node_manage/theme_manage siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each op provides concrete applicability guidance, e.g. 'Target must be a Control', 'CanvasLayer is the canonical HUD parent but is not a Control', and which node types set_text works on. It also gives the canonical call shape and flat-parameter compatibility. However, it never explicitly contrasts ui_manage with sibling tools or states when not to use it, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.