Skip to main content
Glama

Fuzz playtest

fuzz

Play 2D web games headlessly with random plausible inputs to find runtime errors, stuck states, and loops, returning explained, replayable scenarios for reproduction.

Instructions

Play the game headlessly with random but plausible input (movement keys held, action keys tapped) to find runtime errors, stuck states and back-and-forth loops. Each finding includes the explained error (kind, source-mapped file:line, hint) and repro: a scenario file that replays it exactly. Pass that file to run_scenarios to reproduce, then again after fixing to verify. The same seed gives the same inputs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keysNoKeyboardEvent.code values to press. Default: arrows, WASD, Space, Enter, Z, X.
rootNoProject root. Absolute path, or relative to the server's root. Default: the server's root.
runsNoIndependent runs. Default 3.
seedNoInput seed; reuse it to repeat a run exactly.
secondsNoSimulated seconds of play per run. Default 60.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.0

TDQS

A4.3/5.0
Behavior4/5

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

Adds substantial context beyond the annotations: execution is headless, findings carry a kind/file:line/hint plus a replayable `repro` scenario file, and seeds are deterministic. With destructiveHint=false already declaring safety, the remaining gap is disk/state side effects (repro files written?) and resource cost of runs, which go unstated.

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?

Three sentences, front-loaded with what the tool does before the finding format and the follow-up workflow. No filler; each sentence (behavior, return shape, workflow/determinism) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and five optional parameters, the description carries the return-value burden well: it names the finding fields and the repro artifact, and closes the loop with the verification workflow. An agent has everything needed to invoke and act on results.

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 100%, so the schema already documents keys, root, runs, seed, and seconds. The description's seed statement ('The same seed gives the same inputs') restates the schema's own 'reuse it to repeat a run exactly' without adding new syntax or constraints. Baseline 3 applies.

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 resource ('Play the game headlessly with random but plausible input') plus the goal (find runtime errors, stuck states, loops). It is clearly distinguished from the sibling run_scenarios, which is positioned as the reproduction step rather than the discovery step.

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 an explicit downstream workflow: pass the generated `repro` file to run_scenarios to reproduce, then run it again after fixing to verify. This routes the agent to the right sibling. It stops short of saying when not to fuzz (e.g., versus run_tests) or any cost/limits, so it is not a full 5.

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