Skip to main content
Glama
beckettlab

Beckett — MCP for Godot

by beckettlab

play_scene

Play a Godot scene in the editor, wait for play to start, and read logs for errors. Apply runtime property writes when the game connects.

Instructions

Play a scene in the editor. 'scene' (res://) plays a specific scene; current=true plays the open scene; otherwise the project's main scene. Then wait_until condition=play_started, and logs_read for errors. on_ready queues runtime property writes applied the moment the new game connects — the restart boundary batch_execute cannot cross. on_ready shape and its retry behaviour: help(tool="play_scene").

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sceneNores:// path; omit for main/current
currentNo
on_readyNoproperty writes applied once the game connects (shape in help)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.14.0
    • changedInput schema / properties / on_ready / description
      Previous value: -"property writes applied once the game connects: [{path, property, value}, ...] (path may be a name/class selector, same as runtime_set_property)"New value: +"property writes applied once the game connects (shape in help)"
  2. Addedv1.12.1
  3. Removedv1.10.0
  4. First observedv1.0.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only carry generic hints, so the description carries the burden. It discloses the wait-then-logs flow, that on_ready property writes are queued and applied when the game connects, and the restart-boundary limitation. No contradiction with annotations.

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

Conciseness5/5

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

Every sentence adds a distinct fact: action, target resolution, wait/log check, on_ready timing, and pointer to full shape. Dense but no filler and logically ordered.

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 three-parameter action with no output schema and weak annotations, it covers invocation, target selection, post-conditions, and the advanced on_ready use case. It leaves precedence between scene and current implicit and does not state a return value, but neither is critical for this command.

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 coverage is 67% and leaves current undocumented, but the description explains all three parameters: res:// scene, current=true open scene, and on_ready property writes with retry behavior via help. This adds meaning the schema lacks.

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?

States the action explicitly ('Play a scene in the editor') and resolves all three play-target cases (specific res:// path, current scene, main scene). This separates play_scene from siblings like open_scene and stop_scene.

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?

Provides clear post-conditions: wait for play_started and check logs for errors. It also identifies on_ready as the mechanism for runtime writes that batch_execute cannot apply across the restart boundary, though it does not name other alternatives like open_scene explicitly.

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