Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DEBUGNoSet to "true" to enable verbose stderr loggingfalse
GODOT_PATHNoPath to the Godot 4 executable (auto-detected if unset)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_godot_versionA

Return the installed Godot 4 version string.

launch_editorA

Launch the Godot editor for the given project (non-blocking).

Args: project_path: Absolute path to the Godot project directory.

run_projectA

Run a Godot project in debug mode and capture output.

Args: project_path: Absolute path to the Godot project directory. scene: Optional specific scene file to run.

get_debug_outputA

Retrieve current stdout/stderr from the running Godot project.

stop_projectA

Stop the currently running Godot project and return its final output.

list_projectsA

Find Godot projects under a directory.

Args: directory: Root directory to search. recursive: If True, search all subdirectories.

get_project_infoA

Return metadata about a Godot project (name, structure, Godot version).

Args: project_path: Absolute path to the Godot project directory.

create_sceneB

Create a new Godot scene file via the GDScript engine.

Args: project_path: Absolute path to the Godot project directory. scene_path: Scene path relative to the project (e.g. 'scenes/player.tscn'). root_node_type: Godot class name for the root node (default: Node2D).

add_nodeA

Add a node to an existing Godot scene via the GDScript engine.

Args: project_path: Absolute path to the Godot project directory. scene_path: Scene path relative to project. node_type: Godot class name for the new node (e.g. Sprite2D). node_name: Name for the new node. parent_node_path: Node path of the parent (default: 'root'). properties: Optional dict of property_name -> value.

load_spriteA

Load a texture onto a Sprite2D/TextureRect node inside a scene.

Args: project_path: Absolute path to the Godot project directory. scene_path: Scene path relative to project. node_path: Path to the Sprite2D node (e.g. 'root/Player/Sprite2D'). texture_path: Texture path relative to project.

export_mesh_libraryB

Export a 3D scene as a MeshLibrary .res resource for GridMap.

Args: project_path: Absolute path to the Godot project directory. scene_path: Source .tscn scene path relative to project. output_path: Output .res path relative to project. mesh_item_names: Optional list of mesh items to include (all if omitted).

save_sceneA

Save (or save-as) a Godot scene file.

Args: project_path: Absolute path to the Godot project directory. scene_path: Scene path relative to project. new_path: If provided, save to this alternate path.

get_uidB

Get the UID for a Godot 4.4+ resource file.

Args: project_path: Absolute path to the Godot project directory. file_path: File path relative to project.

update_project_uidsB

Resave all resources to regenerate UID files (Godot 4.4+).

Args: project_path: Absolute path to the Godot project directory.

quantize_animation_keyframesA

Stepped Framerate Quantizer: Round keyframe timestamps inside a .tscn/.tres file to fixed frame intervals -- e.g. 0.0833s for 12-fps anime look, 0.0417s for 24-fps film.

Args: file_path: Absolute path to the .tscn or .tres animation file. target_fps: Target framerate to quantize to (12 for anime, 24 for film). animation_name: Reserved for future filtering by animation name.

set_animation_interpolation_modeB

Interpolation Mode Swapper: Bulk-edit keyframe easing modes in a .tscn/.tres file. Flip between linear, smooth bezier (cubic), or constant (stepped/nearest).

Args: file_path: Absolute path to the .tscn or .tres file. mode: Interpolation mode -- 'nearest'/'constant' (0), 'linear' (1), 'cubic' (2), 'linear_angle' (3), 'cubic_angle' (4). track_index: If >= 0, only patch this track index. -1 means all tracks.

stitch_animation_libraryA

Animation Library Stitcher: Generate a master AnimationLibrary .tres file that references external animation clips by clean string names (idle, run, attack).

Each clip dict must have:

  • 'name': library key (e.g. 'idle')

  • 'path': res:// path to the Animation .tres or glb sub-resource (e.g. 'res://char.glb/animations/Armature|run')

Args: output_res_path: Absolute filesystem path for the output .tres file. clips: List of {'name': str, 'path': str} dicts.

generate_track_filterA

Track Filtering & Blending: Generate GDScript and resource text for an AnimationNodeBlendFilter that locks specific bone chains while letting upper-body bones follow a separate overlay animation.

Args: scene_path: Absolute path to the .tscn scene file (appended if exists). locked_bone_paths: Bone NodePaths to exclude, e.g. ['Skeleton3D:Bone/Hip']. blend_node_name: Name for the AnimationNodeBlendFilter node.

generate_state_machineA

State Machine Graph Generator: Inject an AnimationNodeStateMachine sub-resource block into a .tscn file -- define visual state blocks without opening the editor.

Each state dict must have:

  • 'name': state name (e.g. 'Idle')

  • 'animation': animation clip name (e.g. 'idle')

  • 'position': optional [x, y] graph layout coordinates

Args: scene_path: Absolute path to the .tscn scene file. node_name: Name for the AnimationTree node (e.g. 'AnimationTree'). states: List of state definition dicts. anim_player_path: NodePath to the AnimationPlayer. start_state: Start state name (defaults to first state).

compile_state_transitionsA

Transition Logic Compiler: Write transition arrow connections between state blocks, attaching evaluation parameters like 'speed > 0.1' or 'is_attacking == true'.

Each transition dict must have:

  • 'from': source state name

  • 'to': destination state name

  • 'condition': optional condition string

  • 'xfade_time': crossfade duration in seconds (default 0.2)

  • 'advance_mode': 0=manual, 1=auto, 2=at_end (default 1)

Args: scene_path: Absolute path to the .tscn scene file. state_machine_resource_id: Sub-resource id of the AnimationNodeStateMachine. transitions: List of transition dicts.

calculate_blend_space_2dB

2D Blend Space Grid Calculator: Compute and inject an AnimationNodeBlendSpace2D for directional locomotion blending (N/S/E/W + idle) based on a controller vector.

Each blend_point dict must have:

  • 'animation': animation clip name (e.g. 'walk_north')

  • 'position': [x, y] normalized blend coordinates (e.g. [0, 1] for North)

Args: scene_path: Absolute path to the .tscn scene file. node_name: Name for the AnimationTree node. blend_points: List of blend point dicts. x_label: Horizontal axis label. y_label: Vertical axis label. anim_player_path: NodePath to the AnimationPlayer.

generate_bezier_camera_pathA

Bezier Camera Path Generator: Calculate Catmull-Rom bezier handles from world-space waypoints and serialize them as Path3D + Curve3D node blocks in a .tscn file. Supports arc pans, dolly zooms, hyper-fast cinematic swoops, and orbital moves.

Each waypoint dict must have:

  • 'position': [x, y, z] world position

  • 'tilt': optional tilt angle in radians (default 0.0)

Args: scene_path: Absolute path to the .tscn scene file. path_node_name: Name for the Path3D node (e.g. 'CameraRail'). waypoints: List of waypoint dicts. add_path_follow: If True, add a PathFollow3D child. add_camera: If True, add a Camera3D child under PathFollow3D. tension: Tension / speed-curve multiplier (-1.0 to 1.0, default 0.0). Use negative values (e.g. -0.5) for wide sweeping cinematic moves; positive values (e.g. 0.5) for crisp, tight corners.

inject_lookat_trackingB

Tracking & LookAt Injector: Generate a GDScript that procedurally tracks a target node's transform vector every frame, with smooth slerp interpolation.

Args: scene_path: Absolute path to the .tscn scene file. camera_node_path: NodePath of the Camera3D to control. target_node_path: NodePath of the node to track (e.g. 'Player/Body'). script_output_path: Where to write the .gd script. Empty = next to scene file.

build_camera_switcher_timelineA

Camera Switcher Timeline Builder: Write an Animation resource block that toggles Camera3D.current at exact timestamps for multi-angle cinematic cuts.

Each switch dict must have:

  • 'camera_path': NodePath to a Camera3D (e.g. 'CamA')

  • 'activate_at': float timestamp in seconds

  • 'deactivate_at': optional float timestamp to turn camera off

Args: scene_path: Absolute path to the .tscn scene file. anim_player_node: Name of the AnimationPlayer node in the scene. switches: List of camera switch event dicts. animation_name: Name for the generated animation clip. timeline_length: Total animation length in seconds.

batch_shader_uniformsA

Uniform Parameter Batcher: Scan ShaderMaterial .tres files and bulk-override shader_parameter/* values -- change cell-shading threshold, outline thickness, ink color across hundreds of assets in one call.

uniform_overrides maps param names to new value strings: {'outline_thickness': '2.0', 'light_threshold': '0.5'}

Args: directory: Directory to scan for .tres files. uniform_overrides: Dict of {param_name: new_value_string}. recursive: If True, scan all subdirectories (default True). dry_run: If True, report changes without writing files.

remap_texture_channelsA

Texture Channel Remapper: Link hand-painted image textures into specific material property slots by altering ext_resource references in a .tres file.

channel_map maps Godot property names to new res:// paths: { 'albedo_texture': 'res://textures/hero_albedo.png', 'normal_texture': 'res://textures/hero_normal.png', 'shader_parameter/base_tex': 'res://textures/hero_hand_painted.png' }

Args: material_path: Absolute path to the .tres material file. channel_map: Dict of {property_name: res_path}.

toggle_movie_makerA

Movie Maker Engine Activator: Edit project.godot to toggle Godot's built-in uncompressed video recorder, locking the render time-step to a perfect fps loop.

Args: project_path: Absolute path to the Godot project directory. enable: True to activate Movie Maker, False to disable. output_file: res:// output video path (e.g. 'res://render/movie.avi'). fps: Capture framerate (default 60). Only used when enable=True.

run_headless_diagnosticsA

Headless Project Diagnostics: Invoke Godot CLI to validate imports, check UID linkages, detect broken shader entry points, and output a structured diagnostic log.

Args: project_path: Absolute path to the Godot project directory. checks: Checks to run: 'import', 'uids', 'shaders', 'all'. Default: ['import','uids']. timeout_seconds: Max seconds to wait for Godot (default 120).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 28 tools

Disambiguation5/5

Each tool targets a distinct action-resource pair: project lifecycle, scene editing, animation graph generation, camera work, and diagnostics are cleanly separated. Even similar animation/camera tools (e.g., generate_state_machine vs compile_state_transitions) have clearly different purposes and arguments.

Naming Consistency5/5

All tool names follow a consistent verb_first_snake_case pattern (launch_editor, get_godot_version, run_project, generate_track_filter, batch_shader_uniforms). Verb choices are generally descriptive and uniform, with no camelCase or mixed naming conventions.

Tool Count2/5

With 28 tools, the server exceeds the 25+ threshold for 'too many' and would overwhelm an agent. While Godot is a broad domain, many tools are highly specialized (e.g., quantize_animation_keyframes, generate_bezier_camera_path) and could be consolidated or scoped down.

Completeness2/5

The server heavily favors creation/generation workflows but lacks basic editing operations like node deletion, scene tree inspection, property updates, or script file creation. This causes dead-ends: users can add nodes but not list or remove them, and cannot update existing scene resources beyond saving.

Maintenance

ActivityMaintained
ResponsivenessNo issues