Skip to main content
Glama

run_playtest

Runs bounded input, frame, state-assertion, and screenshot-comparison steps in a temporary Godot debug session, returns pass/fail evidence, and always stops the game afterward.

Instructions

Run bounded input/frame/state-assertion/screenshot-comparison steps in a fresh temporary debug session and always stop its game. Queued inputs are delivered on the following frame step. Compare reference PNGs with compare_screenshot; references are never updated. Returns evidence and pass/fail; does not promise deterministic simulation. Replaces the game in the selected session.

Input Schema

NameRequiredDescriptionDefault
stepsYes
headlessNo
scenePathNo
sessionIdNoExplicit process/debug session handle; required for follow-up tools on MCP 2026-07-28
timeoutMsNo
projectPathYes

Output Schema

NameRequiredDescriptionDefault
codeNo
errorNo
stepsYes
passedYes
stoppedYes
diffCountNo
diagnosticsYes
completedStepsYes
requestedStepsYes
screenshotCountYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.1/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: inputs are delivered on the following frame step (ordering semantics), reference PNGs are never updated (no baseline mutation despite a comparison step), the game is always stopped, the session's game is replaced, and simulation is explicitly non-deterministic. These are exactly the traits an agent cannot infer from readOnlyHint/destructiveHint/openWorldHint.

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?

Four dense, front-loaded sentences with almost no filler; the isolation and teardown guarantees come first. The 'Returns evidence and pass/fail' sentence is the least necessary, since an output schema already exists, but it is brief.

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?

Covers the hard parts an agent needs — isolation, non-determinism, frame ordering, baseline immutability, session displacement. With an output schema present, return details can be omitted, and only the unelaborated top-level parameters (sessionId, headless, timeoutMs, scenePath) leave a real gap.

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

Parameters3/5

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

Schema description coverage is only 17%, so the description must carry the parameter burden; it partially does by naming the step kinds (input, frames, assert, screenshot, compare_screenshot) and the frame-delivery rule for queued inputs. But sessionId, projectPath, scenePath, headless, and timeoutMs get no explanation, and nothing clarifies the 'fresh temporary session' semantics relative to the sessionId handle.

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 a specific verb and composite resource: run input/frame/assertion/screenshot steps in a fresh temporary debug session that is always torn down. This clearly separates it from the granular siblings (simulate_input, step_frames, capture_screenshot) by describing the orchestrated, self-cleaning nature of the call.

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

Usage Guidelines3/5

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

Usage context is implied (a scripted, bounded playtest in an isolated session) but no alternative is named. It never tells the agent when to prefer run_scene_test, run_scene, or the individual simulate_input/step_frames calls, and the closest thing to guidance — 'Replaces the game in the selected session' — is a caveat rather than a selection rule.

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