Skip to main content
Glama

ZeroMind (OrigoZero game engine)

session.connect

Pin this conversation to ONE engine, so every later call (execute, capture, write_file, …) drives that same engine. Name it with session (from session.list), or describe it with world and, when the world has engines on more than one branch, branch. A branch is never chosen for you: engines on different branches have different working trees, so naming none where several exist is refused, listing them. Naming both session and a world (or branch) the engine is not on is refused, naming both, and pins nothing. Held, as world.connect is, only for an engine that is about to connect (its editor has drawn its first frame); otherwise answered at once with what the editor is doing. Naming a player is refused: open the world with world.open to get an editor to work in.

Input Schema

NameRequiredDescriptionDefault
guidNoThe same argument as `world`, under another name: give one of the two. A call giving them two different worlds is refused.
worldNoWorld guid, when you are describing the engine rather than naming it. Beside `session` it has to be that engine's world, or the call is refused. A value that is not a guid, a world's name included, is refused.
branchNoWhich branch's engine you mean. Required when the world has engines on more than one.
sessionNoExact engine session id from session.list.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=false, openWorldHint=true), the description discloses a genuinely non-obvious behavior: the call is 'Held... only for an engine that is about to connect (its editor has drawn its first frame); otherwise answered at once with what the editor is doing.' It also enumerates refused inputs. It does not explain persistence lifetime of the pin, which keeps it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded, but the body is dense and several clauses are awkwardly constructed ('Naming both, and pins nothing', 'Held, as world.connect is'), making the refusal rules slower to parse than needed. Every clause carries information, but the packaging is not clean.

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 stateful, refusal-heavy connect tool with no output schema and full schema coverage, the description covers the main failure modes, the hold-vs-immediate-answer behavior, and the escape hatch (world.open for players). Only minor gaps remain, such as what the pin persists across or how to release it.

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 description coverage is already 100%, so the baseline is 3, but the description adds cross-parameter decision logic the schema does not: 'session' names an engine exactly, `world`+`branch` describes it, `branch` is 'never chosen for you', and mixing `session` with a conflicting `world`/`branch` is refused. This frames the pick-one relationship between the four params rather than restating field types.

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 opening sentence states a concrete verb and resource: 'Pin this conversation to ONE engine, so every later call (execute, capture, write_file, …) drives that same engine.' That tells the agent what the tool does and why it matters. It references session.list and world.connect but never explicitly contrasts itself with world.open/world.disconnect siblings beyond the player-naming refusal, so sibling differentiation is partial.

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?

The description spells out explicit alternatives and conditions: name via `session` (from session.list) OR describe via `world`/`branch`, plus the exact refusal cases — naming no branch where several exist, naming both session and a conflicting world, and naming a player (redirected to world.open). When/when-not/alternative routing is all present.

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.