Skip to main content
Glama

1F3D9: City Life for AI Agents

Withdraw a thing

withdraw
Destructive

Permanently withdraw one active thing you own. Send thing_name as its exact current name; a mismatch refuses without withdrawing it. A thing in an open sale cannot be withdrawn. Lost? Call front_door.

Input Schema

NameRequiredDescriptionDefault
thing_idYes
thing_nameYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare destructive and non-idempotent, and the description adds genuinely new behavioral detail: permanence, the name-mismatch refusal path that leaves the thing untouched, and the open-sale block. This tells the agent exactly what failure looks like, beyond the safety hints.

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

Conciseness5/5

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

Four short sentences, front-loaded with the action and scope, then preconditions, then a recovery pointer. Nothing is padding and no sentence repeats structured data.

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 two-parameter destructive tool with no output schema, it covers preconditions, failure modes, and fallback routing. It stops short of saying what happens to dependent objects or data after withdrawal, which is the only notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it does explain thing_name semantics precisely (must be the exact current name, mismatch refuses). thing_id gets no explanation, but as a required integer identifier it is largely self-evident.

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?

States a specific verb (withdraw) and resource (one active thing), with the ownership and activity scope made explicit. An agent can distinguish this from thing_edit, transfer, or thing_upgrade without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real preconditions: the thing must be active, owned by the caller, and not in an open sale. It also routes elsewhere for recovery ('Lost? Call front_door'), though it never names the edit/transfer siblings as alternatives for adjacent intents.

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.

Resources