Skip to main content
Glama

Do something in the world

golemreach_play

Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.

Do something in the game. Pass ONE of the keys below per call (plus an optional caption). Every result says what happened and shows the fresh world, so one call per decision is enough. To read, use golemreach_look.

  • action:{...}: any exact game action. NEXT ACTION and every OPTIONS line give one ready to send: copy it as is. A walk_to waits until you arrive.

  • move:{x,y,z}: walk there; it waits until you arrive, across floors too. move:{to:""} walks to a place you have found or a town. move:{direction:"n"} takes one step. move:{push:{targetId,x,y}} shoves a creature next to you onto a free tile. move:{unstuck:true} only when boxed in inside a temple.

  • attack:{targetId:"m245"}, attack:{monster:"rat"} or attack:{} for the nearest: runs the WHOLE fight (closes in, heals, breaks off below 25% health, loots the corpse) and answers within 40 s; if the fight goes on, call again. Check THREATS first: if you would last under about 15 s, do not fight. Ranged characters pass keepDistance (4-6).

  • cast:{spell, targetId?} (or x,y, or direction for waves): SPELLS READY in a look lists what you can cast now.

  • use:{item, mode}: mode "use" (eat, drink; nothing regenerates while you are HUNGRY), "equip", "unequip", "drop", "loot" (the default with no item: pick up everything on and around your tile), "gather" (a node or fishing spot from the GATHER line), "search" (the 8 tiles around you, where a TELLS line shows a sign).

  • talk:{npcId:"n3", text}: NPCs within 3 tiles take plain English. "where can I hunt?" gives a lead (walk that way until you arrive). "task" gives work: asking is accepting; say it again to hand it in. "trade" lists prices. When a reply offers CHOICES, say the keyword.

  • trade:{npcId, operation:"buy"|"sell", itemId, count?}.

  • craft:{operation:"make", recipeId, count?} next to a station (golemreach_look about:"recipes" lists them).

  • travel:{operation:"routes"} asks the captain; travel:{operation:"board", routeId} sails. THE ISLAND FERRY IS ONE WAY (from level 10) and needs confirm:"one-way". Ask the person you play for before you confirm.

  • guild:{operation:"accept"|"survey"|"challenge"|"claim"|"abandon"|"title", expeditionId?, reward?, title?}: Lantern Guild expeditions (golemreach_look about:"guild" shows the board).

  • wait:{seconds?} or wait:{untilHealthPercent}: let time pass; it wakes early when something needs you. This is the answer to a "cooldown" rejection.

  • tactics:{heal_below?, potion_below?, retreat_below?, auto_reel?, auto_target?}: standing orders the server runs every tick, even between calls. Each call replaces all; tactics:{} clears them.

  • watch:{}: the live view and a watch link to share.

  • invite_administrator:{}: a one-time code that lets a human administer this account.

Failures explain themselves: "cooldown" (wait), "protection_zone" (step off the P tiles), "out_of_range" (move closer), "not_found" (look again; the id is stale).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "golemreach_play"
  }
}

Input Schema

NameRequiredDescriptionDefault
useNoItems and the ground: {item, mode:"use"|"equip"|"unequip"|"drop"}; {mode:"loot"} picks everything up; {mode:"gather"}; {mode:"search"}.
castNoCast one spell: {spell, targetId?} or {spell, x, y} or {spell, direction}.
moveNoWalk. {x,y,z} travels there and waits until you arrive; {to:"<place you know>"}; {direction:"n"} one step; {push:{targetId,x,y}}; {unstuck:true}.
talkNoSay something to an NPC within 3 tiles: {npcId:"n3", text:"where can I hunt?"}.
waitNoLet time pass: {seconds?} or {untilHealthPercent}. Wakes early when something needs you.
craftNoCraft at a station: {operation:"make", recipeId, count?}.
guildNoLantern Guild: {operation:"accept"|"survey"|"challenge"|"claim"|"abandon"|"title", expeditionId?, reward?, title?}.
tradeNoBuy or sell: {npcId, operation:"buy"|"sell", itemId, count?}.
watchNoThe live view and a watch link to share: {}.
actionNoAny exact game action with a "type", sent as is, e.g. the one a NEXT ACTION or OPTIONS line gives. A walk_to waits until you arrive.
attackNoFight to the end. {targetId:"m245"}, {monster:"rat"}, or {} for the nearest. Loots the corpse.
travelNoFerry: {operation:"routes"} or {operation:"board", routeId}. The island ferry is ONE WAY and needs confirm:"one-way".
captionNoOptional. A short line (80 characters or fewer) shown over your character's head to everyone watching, e.g. "Off to the rat cellar". It changes at most once every 3 seconds.
tacticsNoStanding orders the server runs every tick: {heal_below?, potion_below?, retreat_below?, auto_reel?, auto_target?}. Replaces all; {} clears.
sessionIdNoPass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.
invite_administratorNoA one-time code that lets a human administer this account: {}.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only say readOnly=false, destructive=false, openWorld=true; the description adds substantial behavior beyond that: attack runs the entire fight autonomously and answers within 40 s, move waits until arrival, wait wakes early, and tactics persist server-side every tick even between calls. It also discloses the secret-handling requirement for sessionId, the caption rate limit (once per 3 s), and the irreversibility of the one-way ferry with an explicit instruction to ask the human first.

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?

Given 16 top-level parameters and nested objects, the length is largely justified, and the most critical facts (sessionId on every call, one key per call) are front-loaded. There is some redundancy — "A walk_to waits until you arrive" appears in the action bullet and again in the move bullet — but no bullet is filler.

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?

With no output schema, the description still tells the agent what comes back ("Every result says what happened and shows the fresh world, so one call per decision is enough") and how failures are reported. Combined with sibling routing and the session bootstrap instruction, an agent has everything needed to invoke this complex dispatcher 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 100%, so the baseline is 3, but the description goes further by telling the agent where valid values come from — THREATS for fight viability, SPELLS READY for castable spells, the GATHER line for nodes, TELLS for search targets, and golemreach_look about:"recipes"/"guild" for craft and guild ids. It also clarifies defaults that matter operationally, such as loot being the implicit mode when no item is given and keepDistance 4-6 for ranged characters.

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 tool is a polymorphic action dispatcher, and the description makes that concrete by enumerating every accepted key (action, move, attack, cast, use, talk, trade, craft, travel, guild, wait, tactics, watch, invite_administrator). It also explicitly separates itself from the read sibling: "To read, use golemreach_look." The only weakness is the generic opening line "Do something in the game," which alone would not identify the tool.

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?

It states the core calling convention up front ("Pass ONE of the keys below per call"), routes reads to golemreach_look, and gives conditional exclusions such as "move:{unstuck:true} only when boxed in inside a temple" and "Check THREATS first: if you would last under about 15 s, do not fight." It even maps rejection codes to next actions ("cooldown" → wait, "protection_zone" → step off the P tiles), which is unusually actionable guidance.

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.