Skip to main content
Glama

Read the running game's errors and console

live_diagnostics
Read-only

Fetch live game logs: uncaught exceptions, failed loads, and console errors. Merge repeats and fetch only new entries via cursor, even after a crash.

Instructions

Return what the live game has logged: uncaught exceptions, entries from the engine's own error screen, failed image/audio/data loads, and console.warn/error output. The plugin keeps a rolling 200-entry buffer and merges repeats, so a per-frame throw arrives once with a repeat count. Pass the cursor from a previous reply as since to fetch only what is new, or clear before an action so whatever appears afterwards was caused by it, or full to get the recorded call stack with each entry. This keeps answering after the game has crashed (SceneManager.stop() freezes the render loop; stopped reports it), which is exactly when the file layer cannot tell you what went wrong.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fullNoInclude each error's call stack, up to 24 frames. Off by default to keep the reply small.
clearNoEmpty the buffer after reading it
limitNo
sinceNoOnly return entries newer than this cursor (default 0)

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 declare readOnlyHint; the description adds the rolling 200-entry buffer with repeat-merge semantics, call-stack retrieval behavior, and the critical fact that it keeps answering after SceneManager.stop() freezes the render loop, with `stopped` reporting that state. This is rich behavior beyond the annotation.

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-loads what gets returned, then parameter recipes, then the crash-resilience fact. Dense but every clause earns its place. The parenthetical about SceneManager.stop() is slightly compressed, but overall well-structured.

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?

For a read tool with no output schema and rich annotations-light context, the description covers return content, dedup behavior, cursor semantics, and post-crash resilience. An agent has everything it needs to invoke and interpret results correctly.

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 75% (full, clear, since documented; limit is not). The description explains the intent of `since` and `clear` with concrete workflows and reinforces `full`, adding operational meaning beyond the schema. `limit` remains unexplained in both places, keeping this from a 5.

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 (return logged output) and resource (live game logs), and enumerates exactly what's captured: uncaught exceptions, error screen entries, failed loads, console.warn/error. This distinguishes it from live_status, validate_game, and check_assets.

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 operational recipes: pass cursor as `since` for incremental reads, use `clear` before an action to attribute new errors, use `full` for stacks. Closes with a 'when to reach for this' statement — after a crash, when the file layer can't help — which is a strong usage cue.

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