Skip to main content
Glama

Fight a monster

golemreach_attack

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lootNoPick up what the corpse holds afterwards. Default true.
stanceNooffensive = full damage, half defence. balanced = three quarters of each. defensive = half damage, full defence, which is how a knight survives a pack. Default offensive.
monsterNoHunt the nearest creature of this kind instead, by id or name, e.g. "rat" or "cave rat".
targetIdNoThe exact creature id to attack, from the CREATURES list, e.g. "m245".
keepDistanceNoTiles 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.
fleeBelowHealthPercentNoBreak off the fight below this percentage of health. Default 25. Dying costs 10% of your experience.
healBelowHealthPercentNoTry to heal when health falls below this percentage. Default 55.

TDQS

A4.7/5.0
Behavior5/5

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

No annotations are present, so the description carries full responsibility for behavioral disclosure. It does this thoroughly: it explains the whole fight is automated, the healing/fleeing thresholds, that it loots by default, that it returns after death/flee/timeout, and that monster pathing prevents luring. This prepares the agent for side effects and reasonable expectations.

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?

The description is long, but every section earns its place: the targeting modes, the fight-loop explanation, the threat check, ranged behavior, return values, and common failures. It is organized into labeled paragraphs and front-loaded with the most essential targeting logic. Slightly rambling in places but appropriately structured for a high-stakes combat action.

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 complex tool with 7 optional parameters, no output schema, and no annotations, this description is unusually complete. It covers targeting, overrides, risk assessment, failure modes, pathing limitations, and return values. The only small gap is not explicitly describing what happens to the loot parameter behavior when set to false, though the schema already handles that.

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 parameters are already well documented. The description adds extra value by explaining the core choice between targetId and monster, the meaning and consequence of keepDistance for ranged users, and the survivability calculation based on threat. It doesn't repeat parameter names, but it supplies context that the schema alone lacks.

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

Purpose5/5

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

The description leads with a concrete verb and resource: 'Kill something' by creature id, monster name, or nearest hostile. It clearly distinguishes this from siblings like golemreach_use, golemreach_cast, and golemreach_talk by framing it as the whole-fight combat action. The scope is unambiguous and actionable.

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 gives explicit when-to-use guidance and exclusions: when to pass targetId vs monster vs nothing, when keepDistance is needed for ranged characters, how to avoid protection_zone, and how to recover if not_found. It even tells the agent not to fight when threat suggests low survival, which is strong decision 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.

TDQS

A4.8/5.0
Disambiguation5/5

Each tool maps to a clearly distinct interaction: connect, observe, move, fight, cast, use, inventory, talk, trade, knowledge/quests, wait, and admin handoff. The only possible overlap is attack versus cast, but their descriptions separate a full automated fight from casting a single spell, so an agent can reliably choose between them.

Naming Consistency5/5

All 12 tools share the golemreach_ prefix and use lowercase snake_case names in a predictable command-like style. Most are verbs (attack, move, talk, trade, use, wait), and the few non-verbs (inventory, where) still follow the same pattern, so there is no naming convention clash.

Tool Count5/5

With 12 tools, the set is well within the ideal 3-15 range for a game-agent server. Each tool earns its place by covering a distinct part of the gameplay loop—connection, exploration, combat, magic, object use, economy, NPC interaction, and progression knowledge—with no obvious redundancy.

Completeness5/5

The set covers the full lifecycle of the intended game experience: joining the world, looking and inspecting, traveling, hunting, casting spells, using items, looting, trading, talking to NPCs, tracking quests/knowledge, waiting for regeneration/cooldowns, and transferring administrative control. There are no obvious dead ends; every action a player would need flows naturally into the next tool.