Skip to main content
Glama

Start or stop a headless playtest

live_session
Destructive

Start, boot, reload, or stop a headless RPG Maker MZ playtest session so screenshot, status, and assertion tools can inspect the running game without opening the editor.

Instructions

Own the whole loop from the tool surface: start serves the project on a loopback port, launches a windowless Chromium-family browser on it and waits for the RMMZLiveBridge plugin to report, so live_status / live_screenshot / assert_in_game have a game to answer from without anyone opening the editor. By default it then walks the title screen into a new game with the engine's own commandNewGame; a client that allows only sixty seconds per call should pass newGame: false and call boot afterwards, because a cold boot plus that walk can exceed sixty seconds. boot alone drives whatever the page is showing into a map, status reports what is running, reload reloads the page (what a freshly written plugin file needs), stop closes the browser and releases the port. The browser is the only process this tool starts, it is recorded in .rpgmaker-mcp/session.json, and stop kills that pid's tree only after confirming the recorded profile directory is still on its command line, so a recycled pid is never touched. It refuses to start a second browser while a game is already reporting, because two games on one bridge cannot be told apart. Reaching a map needs the plugin params Allow Eval and keepAwake: without the first the session comes up on the title screen and says so, without the second a headless page never has focus and MZ skips scene updates.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
forceNostart even though a game is already reporting to the bridge
actionYes
bootMsNoHow long the walk to the starting map may take (default 45000)
browserNoAbsolute path to a browser executable; otherwise RMMZ_BROWSER, then Edge/Chrome/Chromium
newGameNoWalk to the starting map as part of this call (default true)
gamePortNoLoopback port for the project files (default 8080; moves on if busy)
waitForBridgeMsNoHow long to wait for the plugin to report (default 45000)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.2

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say openWorldHint=false and destructiveHint=true; the description adds far more: the browser is the sole process started, it is recorded in .rpgmaker-mcp/session.json, and `stop` kills only that pid's tree after confirming the recorded profile directory is still on its command line. It also discloses the Allow Eval / keepAwake prerequisites and their failure modes.

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?

Front-loaded with the primary `start` behavior and action list before the edge cases. It is long and dense for a single paragraph, but nearly every clause carries operational value, so the size is largely earned.

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?

No output schema exists and this is a stateful, destructive-capable session tool, yet the description covers start/stop lifecycle, prerequisites, session-file tracking, refusal behavior, and action semantics. An agent has enough to call it correctly without opening other docs.

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 86%, so the schema already documents most parameters; the description still adds real meaning by explaining the newGame default walk, the 60-second call-budget interaction with boot, and why force exists. This goes beyond the schema text rather than merely restating it.

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 set and resource: it 'owns the whole loop' and enumerates each action (start/boot/status/reload/stop) with what each does. It explicitly distinguishes itself from siblings by saying live_status / live_screenshot / assert_in_game need a game that this tool provides.

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

Usage Guidelines5/5

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

Gives explicit when-to-use and alternatives: pass newGame:false and call `boot` afterwards under a 60s-per-call client, use `reload` for a freshly written plugin file, `boot` alone to drive to a map. It also states the refusal condition (won't start a second browser while a game is reporting).

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