Skip to main content
Glama

Playtest a game: send inputs and watch what happens

interact_scene

Load a game HTML file and run a playtest script of key presses, clicks, and waits interleaved with screenshots and state reads to verify that game mechanics like movement, jumping, and scoring function correctly.

Instructions

Loads a game HTML file and executes a script of inputs (key presses/holds, clicks, waits) interleaved with screenshots and state reads, so you can VERIFY the gameplay you wrote actually works: does the player move, jump, collide, score? Games should expose window.__state = () => ({...}) for read_state assertions. Always playtest after building or changing game mechanics — a game that renders is not a game that plays.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
file_pathYesAbsolute path to the game's .html entry file
scriptYesPlaytest script, executed in order. Take screenshots and read_state between actions to verify the gameplay actually works.
formatNojpeg
widthNoViewport width in px
heightNoViewport height in px
settle_framesNorequestAnimationFrame frames to wait after load before capturing
extra_wait_msNoExtra fixed wait after settling, for slow async scenes
timeout_msNoHard cap for the whole operation
Behavior4/5

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

With no annotations, the description carries full burden. It explains the load-and-execute behavior, interleaved screenshots/state reads, and the requirement for window.__state. It lacks details on failure modes or error handling but covers core behavior well.

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?

The description is two paragraphs, front-loaded with the main action. It is informative without being verbose, though some sentences could be tightened.

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?

Given the tool's complexity (8 parameters, nested script array), the description covers the essential aspects. No output schema is provided, but the return of screenshots/state is implied. Missing details on error handling, but overall complete enough.

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

Parameters4/5

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

Schema coverage is 88%, so most parameters are described. The description adds context: e.g., script should interleave actions with screenshots/state reads, and key names follow Playwright conventions. This adds value beyond the schema.

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?

The description clearly states it loads a game HTML and executes an input script with screenshots/state reads for verification. It distinguishes from sibling tools like render_scene by emphasizing dynamic interaction testing over static rendering.

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?

The description advises using it after building or changing game mechanics, implying it's for playtesting. It doesn't explicitly state when not to use, but context from sibling names and the description itself gives good guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eduardosm123/mcp-3d-llm'

If you have feedback or need assistance with the MCP directory API, please join our Discord server