Skip to main content
Glama

theme_manage

Create and apply Godot Theme resources for Controls, setting colors, constants, font sizes, styleboxes, or presets to style UI across a scene tree.

Instructions

Theme authoring (Godot's stylesheet-like resource for Controls). Cascades down a Control subtree when assigned via theme_apply.

Ops (pass via op="..." plus a params dict): • create(path, overwrite=False) Create a new empty Theme .tres at a res:// path. • set_color(theme_path, class_name, name, value) Set a color slot. value: "#rrggbb"/"#rrggbbaa", named, or {"r","g","b","a"}. • set_constant(theme_path, class_name, name, value) Set an integer constant (separation, margin, padding). • set_font_size(theme_path, class_name, name, value) Set a font_size slot in pixels. • set_stylebox_flat(theme_path, class_name, name, bg_color?, border_color?, border?, corners?, margins?, shadow?, anti_aliasing?) Compose a StyleBoxFlat (panels, button states, line edits). border/corners/margins/shadow each accept "all" + per-side keys. • apply(node_path, theme_path="") Assign the theme to a Control (cascades to descendants). Empty theme_path clears. • apply_preset(preset="dark_modern", theme_path="", node_path="", set_as_default=False, overwrite=True) Apply a full cohesive Theme preset (Button states, Panels, LineEdits, Sliders, ProgressBars, Labels) in one call. Presets: 'cyberpunk_neon', 'dark_modern', 'retro_pixel', 'fantasy_parchment', 'clean_light'.

All ops accept session_id on the wrapper to target a specific editor.

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 changedv5.0.28
    • changedInput schema / properties / op / enum
      Previous value: -[
      -  "apply",
      -  "create",
      -  "set_color",
      -  "set_constant",
      -  "set_font_size",
      -  "set_stylebox_flat"
      -]New value: +[
      +  "apply",
      +  "apply_preset",
      +  "create",
      +  "set_color",
      +  "set_constant",
      +  "set_font_size",
      +  "set_stylebox_flat"
      +]
  2. First observedv4.1.0

TDQS

A3.8/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the transparency burden. It discloses meaningful behaviors: apply cascades to descendants, empty theme_path clears, and overwrite flags exist for create and apply_preset. However, it does not mention side effects like writing .tres files to disk, mutating existing resources, undo implications, or whether any operation is readonly.

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 well-structured as a bulleted op list with front-loaded domain context. Each line adds operational information; the only slight redundancy is repeating the canonical call shape after already explaining op/params dicts, but this is useful for clarity. It is dense without being bloated.

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?

For a seven-op tool with minimal schema and no annotations, the description covers the essential operational space: parameter formats, defaults, presets, session targeting, and behaviors. Since an output schema exists, return values need not be described. It lacks explicit side-effect warnings and sibling-routing guidance, but the operation manual itself is largely complete.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates. It documents every op's parameters, color formats ('#rrggbb', named, or {'r','g','b','a'}), StyleBoxFlat sub-options (border/corners/margins/shadow with 'all' or per-side keys), preset names, and the canonical call shape. This is the only source of param semantics and it is thorough.

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 description explicitly states the resource ('Theme', Godot's stylesheet-like resource for Controls) and its key behavior ('Cascades down a Control subtree when assigned via theme_apply'). It lists concrete operations (create, set_color, set_stylebox_flat, apply_preset), making the tool's function unambiguous. This clearly differentiates theme_manage from the large sibling group of `*_manage` tools even though the tool name is generic.

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

Usage Guidelines2/5

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

The description implies usage for theme authoring but never explicitly states when to choose this tool over alternatives such as ui_manage, resource_manage, or stylebox-related tools. It offers no exclusion criteria, no prerequisites, and no sibling comparisons. Given the extensive list of sibling `*_manage` tools, the agent gets no active routing guidance.

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

Deploy Server

Other Tools