Godot automation CLI and MCP server for building, inspecting, and playtesting games. Provides command-line interface and optional MCP connection for editor commands, scene operations, and runtime inspection.
Swallowtail has 12 tools with basic descriptions and partial schemas. Most tools lack parameter descriptions entirely, only 'engine.commands' and 'scene.validate' have documented input params. Descriptions are present but generic (avg ~40 chars, well below the 194-char baseline). No output schemas documented. No error handling guidance. Tool names follow verb_noun convention (good), but parameter naming is inconsistent (e.g., 'input' in input.send is vague; 'path' appears in 5 tools without format clarification). No evidence of idempotency, pagination, or composition patterns. Security-critical tools like 'node.set' and 'input.send' lack permission gates or validation guidance.
List available editor commands and their documentation
Send input to the running game
Set a property on a node in the scene
Get information about the current Godot project
Get runtime errors from the running game
Inspect the scene tree of the running game
Play a scene in the editor
Save the current scene
8 of 12 tools have no documented output schema. LLMs cannot plan downstream calls or extract required fields (e.g., node IDs from scene.tree, error details from runtime.errors).
Most parameters lack descriptions. 'input' in input.send is vague (what fields does the input object require?). 'path' appears in 5 tools without format clarification (res:// prefix required? absolute or relative?).
Destructive tools (scene.play, scene.stop, scene.save, node.set, input.send) lack error handling guidance and confirmation patterns. No indication of retryability, side effects, or recovery steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Stop playing the current scene
Inspect the scene tree of the currently open scene
Validate a saved scene file
Validate a GDScript file in the editor context
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. LLMs cannot distinguish safe reads from dangerous writes without explicit hints.
Parameter naming inconsistency: 'input' (input.send) is generic; 'path' lacks format spec; 'mode' (scene.play) undefined. No enum constraints for known-set values (e.g., play modes).