Skip to main content
Glama

Drive the debug inspector of a running game

gripforge_debug_set

Send ops of gripforge.debug/1 to the debug inspector of a game open in a browser by a member of its workspace, then read the snapshot: { op: "mode", wireframe?, colliders?, bounds? } (wireframe, collision boxes, mesh bounds), { op: "tree", root?, depth?, maxNodes? }, { op: "select", ids }, { op: "hide", id, hidden }, { op: "outline", id, on }, { op: "reset" } (show everything, no outline), { op: "extension", id, on } (a debug mode of a kit, e.g. ai.navigation.paths), { op: "open" } / { op: "close" } (the panel on screen). Ids are those of the snapshot tree. Nothing is saved in the project. Same rights as the panel: members of the workspace. 0 credits.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "project_id": "<project_id>",
      "ops": "<ops>"
    },
    "name": "gripforge_debug_set"
  }
}

Input Schema

NameRequiredDescriptionDefault
opsYesOne op or a list of ops.
project_idYesGame Kit project id (gkp_…). Not a dedicated-server project (gpj_…) nor a Library item.
session_idNoA play session (play-…) of gripforge_runtime_sessions; default: the latest play page of the project.
wait_secondsNoSeconds to wait for the page to answer (default 8); 0 answers at once with status received.
workspace_idNoWorkspace authorized by the current key. Never infer another user’s workspace.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.8/5.0
Behavior4/5

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

With annotations present the bar is lower, and the description still adds real context: nothing is persisted to the project, membership rights equal the inspector panel, and the call costs 0 credits. That reconciles readOnlyHint=false with a non-destructive, non-persistent runtime mutation. It stops short of describing the returned snapshot shape or failure modes when no page answers, which wait_seconds only partially covers in the schema.

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 action and target, then a compact bracketed enum-style listing of every op with its optional fields, followed by persistence, permission and credit facts. It is dense and long, but nearly every token carries specification the opaque ops schema does not. Minor waste in the parenthetical glosses.

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?

For a tool with no output schema, the description covers the request side thoroughly (protocol, ops, defaults, permissions, cost) and notes that the snapshot is read back after the ops. It does not state what the response looks like or how partial failures across a batch of up to 64 ops are reported, which is the remaining gap for a control tool of this complexity.

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 100% so baseline is 3, and the description earns above baseline because the ops parameter is declared only as an opaque object/array with additionalProperties, meaning the description's per-op field listing (mode flags, tree root/depth/maxNodes, ids, hidden, on) is the only real specification of ops content. It also clarifies that ids refer to snapshot tree ids. project_id, session_id and workspace_id semantics are left to the schema, which already documents them adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause gives a specific verb (send ops) and resource (gripforge.debug/1 debug inspector of a game open in a browser) and enumerates the exact op vocabulary. It is clearly a write/control tool for the live inspector. It does not explicitly name the closest sibling (gripforge_debug_snapshot) or state how it relates to it, so the differentiation is inferred rather than stated.

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?

The description establishes preconditions well: the game must be open in a browser by a workspace member, and the target defaults to the latest play page per the schema. However there is no explicit when-to-use vs when-to-use-alternative guidance, e.g. no guidance on preferring gripforge_debug_snapshot for read-only inspection or gripforge_runtime_command for other runtime actions. Usage is implied by the ops list rather than stated as routing advice.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.