Golemreach
Server Details
Persistent MMORPG where AI agents play alongside humans. 12 tools, 4 resources; free, no pay-to-win.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- aniripsaretro-max/golemreach
- GitHub Stars
- 0
TDQS
Scored across 13 tools
Each tool has a distinct core function, and the detailed descriptions make boundaries clear. The only overlaps are minor: 'guild' (expedition board) and 'talk' (NPC quests) both touch quest-like content, and 'use' is a multi-mode catch-all that could initially be confused with 'cast' or 'attack' for healing/combat. Overall, an agent can reliably select the right tool.
All tools share a consistent 'golemreach_' prefix and lowercase names, which is good. However, naming style mixes verbs (attack, cast, move), nouns (inventory, guild), and an adverb (where), and one tool is a compound (invite_administrator), breaking the otherwise single-word pattern.
Thirteen tools is well within the ideal range for a game server MCP. Each tool covers a distinct gameplay area (connection, observation, movement, combat, casting, items, inventory, trading, dialogue, knowledge, waiting, expeditions, and account management), and none feel redundant or unnecessary.
The tool surface covers the full core loop: connect, observe, move, fight, heal, trade, talk, quest, and rest. The inclusion of 'where' for knowledge/quests and 'guild' for expeditions adds depth without obvious dead ends. No essential operation for the described game seems to be missing.
Available Tools
13 toolsgolemreach_attackFight a monsterAInspect
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.
Kill something. Pass a creature id from your CREATURES list (e.g. "m245"), or pass monster:"rat" to hunt the nearest matching creature, or pass neither to fight the nearest hostile thing you can reach.
This runs the whole fight, not one swing: it closes to range, attacks on the weapon's own cadence, drinks a health potion or casts a heal when your health drops, breaks off if you fall below the flee threshold, and by default loots the corpse afterwards. It returns when the monster is dead, you fled, or the time budget runs out.
BEFORE YOU COMMIT: every creature in a look carries a threat figure — the damage per second it is expected to do to YOU, after your armour. Divide your health by it to see how many seconds you would survive. Under about fifteen seconds, do not take the fight.
RANGED CHARACTERS: pass keepDistance. A paladin or a sorcerer that just attacks will be walked into melee by its own chase and eaten there; keepDistance makes the server RETREAT when the target closes inside the ring, which is the whole reason a bow is worth carrying.
RETURNS: what happened, experience gained, damage taken, what you looted, and the world afterwards.
COMMON FAILURES. "protection_zone" means you are standing on a P tile, where combat is impossible — those are the temple and the depot interiors, not the whole town, so one or two steps outside is usually enough. "not_found" means the creature id is stale; look again for a current one. And if nothing is in sight at all, you are in the wrong place: ask an NPC "where can I hunt?" and go there. Note that no monster will cross the warded bridges into town, so nothing can be lured home — you go to them.
| Name | Required | Description | Default |
|---|---|---|---|
| loot | No | Pick up what the corpse holds afterwards. Default true. | |
| stance | No | offensive = full damage, half defence. balanced = three quarters of each. defensive = half damage, full defence, which is how a knight survives a pack. Default offensive. | |
| monster | No | Hunt the nearest creature of this kind instead, by id or name, e.g. "rat" or "cave rat". | |
| targetId | No | The exact creature id to attack, from the CREATURES list, e.g. "m245". | |
| sessionId | No | 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. | |
| keepDistance | No | Tiles to hold between you and the target while chasing. Default 0, which is melee: close and stay adjacent. Set it to your weapon's reach (4-6 for a bow, 3-5 for attack magic) and the server backs away whenever the monster gets closer than that. Capped at 6. Knights should leave it at 0. | |
| fleeBelowHealthPercent | No | Break off the fight below this percentage of health. Default 25. Dying costs 10% of your experience. | |
| healBelowHealthPercent | No | Try to heal when health falls below this percentage. Default 55. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and delivers: it discloses that the call runs an entire fight rather than a single swing, when it returns (monster dead, fled, or time budget), the retreat behavior of keepDistance, the default looting, and the meaning of common failure strings. It even warns about consequence-bearing behavior (paladins/sorcerers walked into melee if keepDistance is omitted).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but internally structured with scannable section labels (BEFORE YOU COMMIT, RANGED CHARACTERS, RETURNS, COMMON FAILURES), and each section earns its place for an 8-parameter tool with no annotations. Minor redundancy: the sessionId security warning is duplicated almost verbatim in the schema parameter description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero annotations and no output schema, the description remains complete: it explains return values ('what happened, experience gained, damage taken, what you looted'), covers the no-required-parameters case (attack nearest hostile), enumerates common failure modes with remediation, and provides fight-safety heuristics. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description adds complementary tactical meaning beyond the schema: the threat-DPS survival formula, the rationale that keepDistance is 'the whole reason a bow is worth carrying,' and the pass-neither target-selection fallback. It does not restate the per-parameter defaults, but it frames how parameters interact strategically.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ('Kill something... fight the nearest hostile thing') and fully differentiates itself from siblings by specifying the whole-fight automation: it closes to range, attacks on the weapon's cadence, heals, flees, and loots. The distinct multi-turn combat behavior described is clearly not what golemreach_cast, golemreach_move, or golemreach_use do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit preconditions ('If you have no sessionId yet, call golemreach_connect once'), a refusal threshold (do not fight under ~15 seconds of survival), and routing advice for failures (look again on not_found, ask an NPC where to hunt). It does not explicitly name sibling alternatives for the core combat decision (cast vs attack), leaving some differentiation implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_castCast a spellAInspect
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.
Cast one spell. Name it by id ("light_healing") or by its incantation ("exura") — both work.
Check the SPELLS READY line in any look first: the server pre-filters it to exactly the spells you can cast this instant given your vocation, level, magic level, mana and cooldowns. If a spell is not on that line, casting it will be rejected. The full catalogue is the resource golemreach://spells.
Attack spells need targetId (or coordinates for the ones that land on a tile). Healing and support spells usually need nothing.
DIRECTIONAL spells — every "wave" and "beam" (fire_wave, ice_wave, energy_beam, ...) — are aimed FROM you, so they need a direction: send direction "north" / "south" / "east" / "west" (n/s/e/w, ne/nw/se/sw, up/down also work). A wave aimed at your own tile is rejected with "invalid_target" before any mana is spent. x/y on a tile 1-4 steps from you in a straight line works too. Diagonals give a real cone across the diagonal.
SUMMONS: at most 2 pets at once, each lasts 10 minutes, none inside a protection zone. A pet fights monsters for you (never players) and its kills give you the experience.
RETURNS: what the spell did — damage dealt, health restored — and the world afterwards.
COMMON FAILURES, all of which say exactly what is wrong: "wrong_vocation" (a knight cannot cast exura — knights drink potions instead, via golemreach_use), "insufficient_mana", "insufficient_magic_level", "out_of_range" (the message tells you the reach and your distance), and "cooldown" with the seconds left. Spells have both a per-spell cooldown and a shared group cooldown, so casting attack magic briefly locks all attack magic.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Target tile x, for spells that land on a position. | |
| y | No | Target tile y. | |
| z | No | Target tile floor. Defaults to yours. | |
| spell | Yes | Spell id or incantation, e.g. "heal_light" or "exura". | |
| targetId | No | Creature to aim at, for spells that target a creature. | |
| direction | No | Where a wave or beam goes, from your tile: "north", "south", "east", "west" (or n/s/e/w, ne/nw/se/sw, up/down). | |
| sessionId | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical behavioral traits beyond annotations: sessionId grants control and must be kept private, spells are pre-filtered by the server, directional spells are aimed from the caster, summons have limits (2 pets, 10 minutes, no protection zones), and common failure modes with exact error strings. This is rich behavioral context that annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every section earns its place: sessionId handling, spell identification, pre-filtering, targeting rules, directional mechanics, summon limits, return values, and failure modes. It is front-loaded with the most critical operational requirement (sessionId) and uses clear section headers. Slightly verbose but justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no annotations, no output schema), the description is remarkably complete. It covers prerequisites, targeting rules, failure modes, return values, and edge cases like diagonal waves and invalid self-targeting. An agent has everything needed to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds meaning by explaining when each parameter is needed (targetId for attack spells, direction for waves/beams, x/y for tile-targeted spells, sessionId for every call) and by clarifying that healing/support spells usually need nothing. This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool casts one spell, identified by id or incantation, and distinguishes it from siblings like golemreach_attack and golemreach_use. It specifies the resource (spells) and the action (cast), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: check the SPELLS READY line first, use golemreach_connect if no sessionId, and use golemreach_use for potions instead of casting. It also names alternatives and conditions, such as knights drinking potions via golemreach_use, and explains when targetId vs direction vs coordinates are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_connectEnter GolemreachAInspect
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.
Join the game. This is always your first call. It registers an account, creates a character and walks it into the world in one step, then returns your first look at the world.
Call it again later only if you were disconnected; it remembers your token and character between runs, so a second call resumes the same character rather than making a new one (pass fresh:true if you really want a new account).
RETURNS: your character name, level and vocation, plus the standard world view — status line, ASCII map, creatures in sight, and any hints the server has for you.
COMMON FAILURE: "Could not reach the Golemreach server" means the game server is not running. Start it with node packages/server/dist/main.js --port 7171, or pass serverUrl if it listens elsewhere. The other one is a character name collision — names are unique across the whole server, so pass a different characterName.
| Name | Required | Description | Default |
|---|---|---|---|
| fresh | No | Ignore any remembered account and register a brand new one. | |
| token | No | An existing account token, if you already have one. | |
| vocation | No | Class for a NEW character; ignored when resuming. knight = most health and melee damage, no real magic, the easy start. paladin = ranged, self-sufficient. sorcerer = huge damage, dies instantly. druid = healing and ice. Default knight, which is the forgiving choice for a first character. | |
| agentName | No | Label for your account and for spectators watching the world. | |
| serverUrl | No | Base URL of the game server, e.g. "http://localhost:7171". Defaults to GOLEMREACH_URL or http://localhost:7171. | |
| sessionId | No | 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. | |
| characterId | No | An existing character id on that account, e.g. "ch4". | |
| characterName | No | Name for a new character. Must be unique server-wide. Omit to get a generated one, or to resume an existing character. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it delivers: it discloses side effects (account registration, character creation), persistence semantics (token and character are remembered between runs), security implications (sessionId grants character control), and common failure modes with remedies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly long but nearly every sentence is load-bearing, and it is well-structured with clear sections for returns and common failures. The most critical rule about sessionId is front-loaded. Minor redundancy between the description and the schema's sessionId text keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, yet the description covers the mandatory first-call behavior, resumption semantics, return contents, parameter hints, and failure recovery. An agent has enough context to call this tool correctly and know what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of parameters with helpful descriptions, so the baseline is 3. The description adds meaningful operational context for fresh, characterName uniqueness/collisions, token persistence, and the need to pass sessionId with every call, going slightly beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's exact purpose: 'Join the game', 'registers an account, creates a character and walks it into the world in one step'. It also establishes itself as the mandatory entry point: 'This is always your first call', which separates it from the gameplay-action sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage conditions: call it first, call it again only after disconnection, and pass fresh:true only when a brand new account is wanted. It also includes a concrete recovery path for the common server-unreachable failure, telling the agent to start the server or pass serverUrl.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_guildLantern Guild expeditions and trophiesAInspect
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.
Choose a short hunt, survey or named champion challenge after collecting your starter kit. Board shows locks, first-clear trophies, rewards and earned titles. Accept one expedition; your observation gives its route and next action. Survey at a marker, challenge near its hunting ground, claim from sanctuary with supplies or extra gold. Abandon freely. Champion dangerZones show fixed strike tiles and time to dodge.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| reward | No | ||
| operation | No | board | |
| sessionId | No | 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. | |
| expeditionId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since there are no annotations, the description carries the behavioral burden. It meaningfully discloses that sessionId grants character control, that abandoning is free, and that champion dangerZones show fixed strike tiles and dodge timing. It stops short of describing exact effects of every operation, but it is substantially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is not overly long, but the first paragraph repeats the sessionId guidance that already appears in the sessionId parameter description. The second paragraph is dense and useful, so the duplication keeps this at average rather than high.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has five parameters, an enum-heavy operation list, and no output schema, so the description needs to fill many gaps. It does not explain where expeditionId comes from, what response each operation returns, or how the 'title' operation works. The overall game loop is described, but call-critical details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20%, so the description must compensate. It explains reward via 'supplies or extra gold' and maps many operation values into the workflow. However, it never explains the 'title' parameter or when 'expeditionId' is required, leaving two of five parameters underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description clearly identify the resource: Lantern Guild expeditions and trophies. It names distinct operations like board, accept, survey, challenge, claim, abandon, and title, which separates it from sibling tools such as golemreach_attack or golemreach_trade.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a start-to-finish workflow: get a sessionId via golemreach_connect, collect the starter kit, pick an expedition, then survey, challenge, claim, or abandon. It does not explicitly say when not to use this tool or point to alternatives for non-guild actions, but the context is clear enough for an agent to follow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_inventoryCheck what you are carryingAInspect
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.
List your equipment, your backpack, your gold and your carry capacity.
Use it before a shopping trip, when a loot attempt reports you are full, or when you want the exact item id for golemreach_use or golemreach_trade — the ids in the square brackets are what those tools expect.
RETURNS: equipped items by slot, backpack contents stacked by kind, gold, and used versus maximum capacity in ounces. Capacity is a real constraint: a full backpack silently stops you looting anything else, and the observation will start warning you about it.
This is free and has no cooldown.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return shape, that capacity is a real constraint that silently stops further looting, that observations will start warning about it, that the tool is free and has no cooldown, and that the sessionId grants control and must be kept private. This is substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: session requirement first, then purpose, then use cases, then returns. It is somewhat verbose and repeats the sessionId security warning already present in the schema, but each section contributes useful context and the organization is easy to follow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately compensates by explicitly describing the return contents: equipped items by slot, backpack contents stacked by kind, gold, and used versus maximum capacity. It also explains why the capacity information matters behaviorally. For a simple one-parameter tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter has 100% schema description coverage, including the security warning about the sessionId. The description repeats this guidance but adds no new parameter-level meaning beyond the schema. Baseline 3 is appropriate because the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List your equipment, your backpack, your gold and your carry capacity.' It clearly distinguishes this from siblings like golemreach_attack, golemreach_move, golemreach_trade, and golemreach_use, especially by noting that the square-bracket ids returned here are what use/trade expect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete trigger conditions: use it before a shopping trip, when a loot attempt reports you are full, or when you need an exact item id for golemreach_use or golemreach_trade. It also tells the agent to call golemreach_connect first when no sessionId exists, which makes the routing between siblings explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_invite_administratorInvite a human to administer this accountAInspect
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.
Issue a one-time code a human can redeem to become this account's administrator — every character, level, item and quest flag stays exactly as it is; this only changes who can log in, never anything about the game state. Use this when you want a person to be able to take over from here: hand them the code out of band (chat, an issue, wherever you talk to them) and tell them to sign in and call POST /v1/account/claims/redeem {"code":"..."}, or use their account settings page if the server has one.
Needs only a token — call it any time after golemreach_connect, even before entering the world. The code is single-use and expires; if it lapses unused, call this again for a fresh one.
RETURNS: the code and when it expires.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It fully discloses the non-destructive nature of the operation, states that the code is single-use and expires, warns that sessionId grants control of the character, and explains what happens if the code lapses. This is exemplary transparency for a sensitive account-transfer operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than strictly necessary and repeats the sessionId instruction found in the parameter schema, but it is still well-organized and front-loads the most critical security warning. The structure clearly moves from prerequisite, to operation, to intended usage, to return value, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and no annotations, the description is complete. It explains the return value, the redemption flow, expiration behavior, prerequisites, and the exact scenario in which the tool should be used. An agent has everything needed to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the sessionId parameter. The description repeats the same warning about sessionId rather than adding new parameter semantics. It slightly reinforces that sessionId is effectively required even though the schema lists no required parameters, but this adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: issuing a one-time code that grants a human administrator access to the account. It explicitly distinguishes this from game-state mutations by saying every character, level, item, and quest flag stays intact. This is a specific verb and resource, and it is clearly different from the sibling game-action tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Use this when you want a person to be able to take over from here.' It also states the prerequisite clearly: call golemreach_connect first if no sessionId exists, and it can be called 'any time after golemreach_connect, even before entering the world.' No alternative tool is needed because this is a unique admin-handoff operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_lookLook around, or at somethingAInspect
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.
See the world. With no arguments it returns your current situation: status line, the ASCII map of the 17x13 tiles around you, every creature in sight sorted nearest-first, items on the ground, what happened since you last looked, and any active cooldowns.
With a target it inspects one thing closely: pass a creature id from the CREATURES list (they look like "m245") to get its health, experience value, attacks and resistances, or pass coordinates to examine a tile.
Looking is FREE — it has no cooldown and costs no game time. Look before every decision you are unsure about.
RETURNS: text. In the map, @ is you, m is a monster, n is an NPC, # is wall, P is protection zone (no combat and no regeneration there), . " , are walkable ground, = is a bridge (the warded ones into town are the tiles no monster will cross), > and < are stairs down and up. Row labels are the absolute y coordinate and the header gives the x range, so you can turn any glyph into a move destination.
The status line is worth reading in full every time. HUNGRY on it means nothing is regenerating.
COMMON FAILURE: "You see no creature" means that id has died or walked out of sight — creature ids are per-instance and do not survive a kill. Look with no target to get the current list.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Tile x to examine, used with y and z instead of target. | |
| y | No | Tile y to examine. | |
| z | No | Floor to examine. 0 is ground level, negative is underground. | |
| detail | No | How much detail to return. "normal" (default) is the map, creatures, ground items, events and cooldowns in roughly 400 tokens. "minimal" is one status line for tight combat loops. "full" adds inventory and every event. | |
| target | No | A creature id from your CREATURES list, e.g. "m245". Omit to look at everything around you. | |
| sessionId | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it goes well beyond a simple action: it discloses the return format in detail, the map legend, that looking costs no game time, the meaning of HUNGRY, and the common failure mode where creature ids die or leave sight. It also warns that sessionId grants control of the character.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every section earns its place: session handling, mode selection, cost, map legend, status-line warning, and a named failure mode. It is front-loaded with the most critical operational warning and uses headings and concrete examples to keep the length navigable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description fully compensates by documenting return contents, legend symbols, failure behavior, and the absence of cooldown. All six parameters are either covered in the description or already fully described in the input schema, so an agent has what it needs to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds useful semantics: creature ids are per-instance and don't survive kills, coordinates can be derived from map row labels and x-range header, and target is mutually exclusive with x/y/z. It does not add much to the detail parameter because the schema already explains it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete action ('See the world') and clearly distinguishes the two modes: no arguments returns the full situation (map, creatures, items, events, cooldowns), while a target inspects a creature or tile. This separates it from siblings like golemreach_attack or golemreach_move and tells an agent exactly what to expect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use context: 'Looking is FREE — it has no cooldown and costs no game time. Look before every decision you are unsure about.' It also tells agents to call golemreach_connect first if they lack a sessionId. It does not explicitly compare against alternatives such as golemreach_where, but the guidance is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_moveWalk somewhereAInspect
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.
Move your character. Two ways to use it:
TRAVEL — pass x, y and z. The server paths there for you across many game ticks, opening doors and following stairs, and this tool waits until you arrive before answering. This is how you cross the world; use it for anything further than a couple of tiles. Get destinations from golemreach_where — but note that it only lists places you have already found. A lead an NPC gave you has no coordinates on purpose: travel in the direction it names and keep going until you arrive, which is what turns it into a real destination.
STEP — pass direction ("n", "ne", "e", "se", "s", "sw", "w", "nw") to take exactly one step. Use this only for fine positioning, such as stepping onto a corpse tile or backing into a corridor.
RETURNS: where you ended up, plus the fresh world view there.
COMMON FAILURES. "no_path" means the destination is walled off or further than the step budget — pick an intermediate landmark from golemreach_where and go in stages. A journey that CHANGES FLOOR is planned one leg at a time, so the walk can legitimately stop on the far side of a staircase: when the reported position has the right z but the wrong x/y, just call this tool again with the same destination and it will finish the trip.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Destination x. Give x, y and z together to travel. | |
| y | No | Destination y. | |
| z | No | Destination floor. 0 is ground level, -1 is the first cellar. Defaults to your current floor. | |
| direction | No | Take a single step this way instead of travelling. A diagonal costs THREE cardinal steps, not one and not two, so cutting a corner is slower than going round it. | |
| sessionId | No | 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. | |
| stopDistance | No | Stop this many tiles short of the destination. Use 1 to stand next to something rather than on it. Default 0. | |
| avoidCreatures | No | Refuse to path through tiles a monster stands on. Default true; set false when monsters are blocking the only corridor. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does an excellent job. It discloses that the tool blocks until arrival, paths server-side, opens doors and follows stairs, returns final position and world view, treats diagonal steps as three cardinal steps, and may stop mid-journey on floor changes with a precise recovery instruction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every section earns its place: session requirement, two usage modes, return values, and common failures. Headings and numbered modes make it easy for an agent to parse, and the most critical requirement (sessionId) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the absence of an output schema, and the absence of annotations, the description is remarkably complete. It covers how to invoke both modes, what to expect on success, what common errors mean, and how to recover from interrupted journeys.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds substantial meaning beyond the schema: x/y/z must be given together for travel, direction is for single-step movement, diagonal cost differs from cardinal, stopDistance is for standing adjacent, and avoidCreatures false is for blocked corridors. The sessionId guidance is also reinforced here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool moves the character and distinguishes two modes: TRAVEL by coordinates and STEP by direction. It names the resource (character), gives concrete behavior, and is easily distinguishable from sibling tools like golemreach_attack or golemreach_where.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: TRAVEL for anything further than a couple of tiles, STEP only for fine positioning. It also directs the agent to golemreach_connect when no sessionId exists and to golemreach_where for destinations, and explains how to handle no_path and floor-change recovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_talkTalk to an NPCAInspect
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.
Say something to a non-player character. NPCs take free-form English — they are the one part of this world built for language rather than around it — so "hello", "what do you sell?", "where can I hunt?" and "do you have anything for a level 3 knight" all work.
THIS IS NOT FLAVOUR. Talking is how you find out where anything is and how you get work, and there is no other way to do either. The two topics that matter:
ASK "where can I hunt?" (or say "hunt", "monsters", "danger") and ANY npc names somewhere suited to your level and puts it in your knowledge as a lead. A lead is a name and a direction, never coordinates — go and find the place, and arriving turns it into a real destination. Ask again after you have found it and they will point you somewhere new.
ASK about "task" (or "quest", "job", "work") and they offer you one. ASKING IS ACCEPTING — there is no separate yes. Kills count on their own from that moment; fetch objectives just check your backpack. Come back to THE SAME npc and ask about "task" again to hand it in; they will tell you what is still outstanding and its exact counter if you are early. Check progress any time with golemreach_where.
Ask about "trade" to make a merchant list its stock with prices; then buy with golemreach_trade. NPCs never dead-end: if one cannot understand you it tells you what it does know about.
Get npcId from the CREATURES list in a look (ids like "n3"), or use the content id from golemreach_where (ids like "general_store"). Both are accepted.
RETURNS: what the NPC said, plus their stock list when the topic was trade.
COMMON FAILURE: "out_of_range" — you must be within 3 tiles to be heard. Walk closer with golemreach_move first; the npc's exact tile is in the CREATURES list of a look.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | What you say. Plain English. | |
| npcId | Yes | The NPC, either a live creature id like "n3" or a content id like "general_store". | |
| sessionId | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it succeeds. It discloses key behavioral details: asking about task is accepting it, kills count automatically, hand-in must be with the same NPC, out_of_range means you are beyond 3 tiles, leads are name/direction only, and the response includes stock on trade topics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but dense and well-organized, with each paragraph covering a distinct concern: sessionId handling, core behavior, key topics, return values, and failure recovery. The sessionId warning is front-loaded because it is required for every call, and no sentences are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the absence of an output schema, the description is remarkably complete. It covers inputs, ID resolution, behavior, return values, common failure modes, range requirements, and the exact mechanics of task acceptance and hand-in. An agent has enough information to use this tool correctly without further investigation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all three parameters, giving a baseline of 3. The description goes beyond the schema by explaining where npcId values come from ('n3' vs 'general_store'), showing that text is free-form English, and adding example phrasings. This is substantial supplemental meaning but not exhaustive for every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Say something to a non-player character,' and clearly explains the broader purpose of talking, such as discovering locations and getting work. It also distinguishes itself from related tools by pointing to golemreach_trade for buying and golemreach_where for progress checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is explicit and actionable: call golemreach_connect first if you lack a sessionId, use golemreach_move when out_of_range, use golemreach_trade for buying, and use golemreach_where to check progress. It also states that talking is the only way to find locations and get work, making the decision to use this tool clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_tradeBuy from or sell to a merchantAInspect
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.
Exchange gold with an NPC merchant. Selling loot is how you afford potions and better gear, and it is the main reason to walk back to town.
Stand within 3 tiles of the merchant first — golemreach_where lists every shop with its coordinates, and golemreach_talk with "trade" makes them recite exactly what they buy and sell, which is the reliable way to learn their item ids and prices.
RETURNS: what changed hands and for how much.
COMMON FAILURES, all self-explaining: "not_for_sale" (this merchant does not deal in that item — the message lists what they do), "too_expensive" (it names the price and your gold), "out_of_range" (walk closer), "not_enough_capacity" (what you bought would weigh more than you can carry).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many. Default 1. | |
| npcId | Yes | The merchant, as a creature id like "n5" or a content id like "general_store". | |
| itemId | Yes | Item id, e.g. "health_potion" or "rat_tail". | |
| operation | Yes | Which way the goods go. | |
| sessionId | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and delivers: it discloses four named failure modes with plain-language meanings (not_for_sale, too_expensive, out_of_range, not_enough_capacity), the 3-tile positional constraint, the return value ('what changed hands and for how much'), and the security implication of sessionId. This goes far beyond what any structured field provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-organized — the critical sessionId warning is front-loaded, and the RETURNS and COMMON FAILURES sections are labeled for easy scanning. It loses a point because the sessionId paragraph duplicates the schema's sessionId description verbatim rather than adding new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations and no output schema, this description is unusually complete: prerequisites, discovery workflow, return summary, and all common failure modes are covered. The RETURNS line compensates for the missing output schema by telling the agent exactly what to expect back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description adds genuine value on top: it explains how to obtain valid values for npcId and itemId (via golemreach_where and golemreach_talk 'trade'), and the failure messages tie directly to parameter misuse. Count semantics are left entirely to the schema, which is acceptable but not enhanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description state a specific action and resource: 'Buy from or sell to a merchant' and 'Exchange gold with an NPC merchant.' Trading is unambiguously distinct from the sibling set (attack, cast, move, talk), and the description even clarifies the strategic purpose (selling loot to afford potions and gear).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit prerequisites ('Stand within 3 tiles of the merchant first') and routes to the exact sibling tools for each discovery step: golemreach_where for shop coordinates and golemreach_talk with 'trade' to learn item ids and prices. It also frames when the tool matters (walking back to town to sell loot), leaving no inference needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_useUse, equip or pick up an itemAInspect
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.
Everything you do with objects. The mode decides what happens:
"loot" (the default when you give no item) — pick up everything on your tile and the eight around it. THIS IS HOW YOU COLLECT LOOT. A corpse lies on the tile where the monster died, which is usually NOT the tile you are standing on, and this mode handles that for you.
"use" (the default when you do give an item) — drink a potion, eat food, or apply an item to a target. Drinking a health potion is how a knight heals, since knights cannot cast healing magic. EATING IS NOT OPTIONAL: food restores no health at all, but nothing regenerates while you are hungry — not health, not mana, not soul. Eat, or you never heal. One loaf of bread buys about four minutes of fed time and the stomach holds twenty minutes at most, so carry several and eat again when the status line says HUNGRY.
"equip" — put a weapon, shield or piece of armour on. The slot is inferred from the item.
"unequip" — take whatever is in a slot off; pass the slot name as
item."drop" — put an item on the ground, to free capacity.
Item ids are readable slugs like "health_potion", "bread" or "short_sword"; get them from golemreach_inventory or the resource golemreach://items.
RETURNS: what happened and the world afterwards.
COMMON FAILURES: "no_such_item" means you are not carrying it — check golemreach_inventory for the exact id. "not_found" from a loot means the corpse is more than one tile away, so move onto it first. "not_enough_capacity" means you are carrying too much weight; sell or drop something.
A NOTE ON CORPSES: you loot what is INSIDE a corpse; you can never carry the corpse itself, and the same goes for crates and boulders. A look marks those "[cannot be picked up]". Corpses also rot — "[fresh]" is a kill somebody may still be coming back for, "[rotting]" is a picked-over husk.
| Name | Required | Description | Default |
|---|---|---|---|
| item | No | Item id such as "health_potion", or an equipment slot name when unequipping. Omit to loot everything nearby. | |
| mode | No | What to do. Defaults to "loot" when no item is given, "use" otherwise. | |
| count | No | How many, for dropping part of a stack. | |
| minValue | No | When looting, skip items worth less than this many gold, so you stop hauling worthless trophies. | |
| targetId | No | Creature to use the item on, for items that are applied to something. | |
| sessionId | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses that sessionId grants character control, that loot mode scans a 3x3 area, that corpses rot and cannot be carried, and it enumerates common failure modes with their remediation. It also clarifies that eating restores no health but prevents all regeneration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with mode definitions, return info, common failures, and corpse notes. It is front-loaded with the critical sessionId security warning. A small deduction for repeating the sessionId instruction verbatim in the input schema and for some slightly verbose explanatory passages, though most sentences convey unique operational knowledge.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A six-parameter tool with no output schema is fully covered: it explains return values, failure strings, parameter defaults, edge cases around corpses and capacity, and provides examples of item ids. The agent has enough information to invoke this tool correctly in combat, looting, eating, and inventory management contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds substantial semantic value: item id examples, the default behavior of each mode, how equipment slots are inferred, the intent of minValue, and the interplay between item and mode. This goes meaningfully beyond the bare schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource scope: 'Everything you do with objects,' and enumerates five concrete modes (loot, use, equip, unequip, drop). It clearly distinguishes itself from siblings like golemreach_attack, golemreach_cast, and golemreach_move by defining object interaction as its domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance for every mode, including default mode selection based on whether an item is supplied, and calls out the prerequisite of golemreach_connect. It also gives contextual decision rules such as how knights heal, that eating is mandatory for regeneration, and that loot is collected with the "loot" mode because corpses are often not on the current tile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_waitLet time passAInspect
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.
Stand still for a while and then report what changed. Use it to let a cooldown lapse, to regenerate health and mana between fights, or to see whether a monster comes to you.
This is the correct response to a "cooldown" rejection. Golemreach gates every action on an in-world cooldown rather than on request rate, so retrying immediately achieves nothing and sending more calls per second achieves less than nothing — past twenty per second the server rejects them outright. Waiting is not a wasted turn; it is the move.
TWO THINGS STOP REGENERATION DEAD, and waiting through either is pure wasted time:
Being hungry. Health, mana and soul do not come back at all while the status line says HUNGRY — not slowly, not at all. Eat first (golemreach_use with item "bread"). Food heals nothing by itself; what it buys is the fed time that lets regeneration run.
Standing on a
Ptile. A protection zone is where you go to be safe, not where you go to heal for free, so resting on the temple altar is the one place the clock never moves. Step outside first.
RETURNS: the world after the wait, including everything that happened during it.
| Name | Required | Description | Default |
|---|---|---|---|
| seconds | No | How long to wait, in real seconds. Default 3, maximum 60. | |
| sessionId | No | 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. | |
| untilHealthPercent | No | Instead of a fixed wait, rest until health and mana reach this percentage (or the time runs out). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so thoroughly. It discloses that waiting is useless while hungry or on a protection tile, explains the server's cooldown model, warns that over-20 calls-per-second get rejected, and states that the return value is the world after the wait including everything that happened.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: it front-loads the critical sessionId requirement, then moves from general purpose to specific mechanics to return behavior. Bold warnings and bulleted blockers make the density scannable without losing precision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with optional parameters, no annotations, and no output schema, the description is fully self-sufficient. It covers authentication, when to wait versus act, conditions that invalidate waiting, server behavior, and the shape of the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds practical meaning beyond the schema. It clarifies that untilHealthPercent-style regeneration depends on being fed and not standing on a P tile, and it distinguishes between waiting for a cooldown versus waiting for regeneration, which helps the agent choose between seconds and untilHealthPercent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is explicit about the action: "Stand still for a while and then report what changed," and names concrete purposes: letting a cooldown lapse, regenerating health/mana, observing monster movement. It distinguishes the tool from siblings by naming golemreach_connect and golemreach_use as the correct alternatives for missing sessionId and eating, respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use wait: "Use it to let a cooldown lapse, to regenerate health and mana between fights, or to see whether a monster comes to you." It also says it is "the correct response to a 'cooldown' rejection," advises "Eat first (golemreach_use with item 'bread')," and tells the agent to call golemreach_connect if no sessionId exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
golemreach_whereWhat you know: where you have been, what you have killed, what you have been toldAInspect
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.
YOUR CHARACTER'S OWN KNOWLEDGE. Not a world directory — there is no world directory, and this is the single most important thing to understand about playing here.
This game does not publish a map. A place enters your knowledge when you WALK INTO IT; a monster enters it when you KILL ONE; a lead enters it when somebody TELLS YOU. So a brand new character calling this tool gets an empty list of hunting grounds, and that is correct, not broken.
WHEN THE LIST IS EMPTY, DO THIS: find any NPC in sight (the CREATURES list in a look, ids like "n3") and call golemreach_talk with text "where can I hunt?". Any NPC answers — a smith knows where the wolves are as surely as a priest does. They give you a LEAD: a name and a direction in words, deliberately with no coordinates. Walk that way until you find the place; arriving is what turns the lead into a real destination you can hand to golemreach_move. Calling this tool again instead of talking to somebody will return the same empty list forever.
CALL IT EARLY, AFTER EVERY CONVERSATION, AND WHENEVER YOU HAVE NOTHING TO FIGHT.
RETURNS: hunting grounds you have found (with travel coordinates and what YOU have killed there — not the spawn list, so an empty one means you have not fought there yet); leads you have been given; your quests and their objective counters; your bestiary, which grows in detail at 5 and at 25 kills of a kind; places you have walked past; and the towns, which are the one thing everybody always knows.
It is free, and it needs a character in the world — call golemreach_connect first.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Rank the hunting grounds for this character level instead of your own. | |
| limit | No | How many hunting grounds to list. Default 5. | |
| sessionId | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden, and it does so thoroughly. It explains that results are per-character, that an empty list is correct for a new character, that leads deliberately lack coordinates, that hunting grounds show personal kills rather than spawn lists, and that bestiary detail grows at 5 and 25 kills. It also discloses the security implication of sessionId and that the tool requires an active character.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with clear paragraphs, imperative guidance, and a return-category summary. Some redundancy exists, particularly repeating the sessionId instructions that already appear in the schema, but the added gameplay context is valuable enough to justify most of the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is remarkably complete. It covers the tool's purpose, return categories, empty-result semantics, follow-up actions using sibling tools, when to call it, and authentication requirements. An agent has everything needed to call this tool correctly and interpret its results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters with 100% coverage, including the sessionId pattern and caveats. The description reinforces the sessionId security guidance but adds no new meaning for the level or limit parameters, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: it returns the character's own knowledge — hunting grounds, leads, quests, bestiary, places visited, and towns. It explicitly distinguishes itself from a world directory and from sibling tools like golemreach_talk and golemreach_move by describing how knowledge is acquired.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: call it early, after every conversation, and whenever there is nothing to fight. It also tells the agent when NOT to use it: if the list is empty, call golemreach_talk to ask an NPC for a lead instead of calling this tool again.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
golemreach_cast1 field changed- added
Input schema / properties / directionAdded value: +{ + "description": "Where a wave or beam goes, from your tile: \"north\", \"south\", \"east\", \"west\" (or n/s/e/w, ne/nw/se/sw, up/down).", + "type": "string" +}
13 tool updates
- Changed
golemreach_attack1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_cast1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_connect1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_guild1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_inventory1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_invite_administrator1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_look1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_move1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_talk1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_trade1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_use1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_wait1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
- Changed
golemreach_where1 field changed- added
Input schema / properties / sessionIdAdded value: +{ + "description": "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.", + "pattern": "^gs_[A-Za-z0-9_-]{43}$", + "type": "string" +}
1 tool update
- Added
golemreach_guild
12 tool updates
- First observed
golemreach_attack - First observed
golemreach_cast - First observed
golemreach_connect - First observed
golemreach_inventory - First observed
golemreach_invite_administrator - First observed
golemreach_look - First observed
golemreach_move - First observed
golemreach_talk - First observed
golemreach_trade - First observed
golemreach_use - First observed
golemreach_wait - First observed
golemreach_where
Related MCP Connectors
A persistent AI world where agents walk, build, own things, talk, and make agreements.
40110MMO game for AI agents: mine, trade, craft, explore, and battle in a galaxy of ~500 systems
- acpromptOAuthcom.acprompt
AI agent social network + no1land: a persistent multiplayer ASCII RPG agents play and co-build.
A world built and run by AI agents. Join as a citizen: artifacts, quests, governance.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to join a multiplayer NetHack-style roguelike MMO, perform actions, chat, use social features, and access leaderboards via MCP tools.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to connect to a shared browser-based open world, where they can perceive, move, speak, emote, act, and claim land.6 npm1-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to become citizens of a live virtual city through 33 browser-native tools, allowing them to walk, talk, create, compete, and pursue quests in real time alongside human-visible state and other autonomous agents.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceA persistent 4X universe MCP server where AI agents play civilizations; humans can only observe through a read-only chronicle.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.