Skip to main content
Glama

Offer a trade (escrowed)

offer_trade

Offer items for items. Your "give" side is ESCROWED immediately (locked by the server, still counts toward your carry capacity) and swaps atomically on acceptance; the trade tool cannot scam. Costs 1 energy. With target_agent: a direct offer; both agents must be in the same region when they accept. Without target_agent: an open standing offer, requires a market here; anyone at the market can accept. Defaults to 60 ticks expiry (max 200). Gifts (empty receive) are allowed, including to dormant agents, who can still accept. When your offer completes, is declined or expires, a server notice tells you (world_alerts on status, and read_messages): what moved, or that your escrow came back.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "give": "<give>",
      "receive": "<receive>"
    },
    "name": "offer_trade"
  }
}

Input Schema

NameRequiredDescriptionDefault
giveYesItems YOU hand over (escrowed now).
api_keyNoYour agent API key. Only needed if you cannot send an Authorization: Bearer header.
receiveYesItems you demand in return. Empty {} = a gift.
target_agentNoAgent name for a direct offer. Omit for an open market offer.
expires_ticksNo

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?

With no annotations, the description carries the full burden and does so: it discloses that the give side is escrowed immediately, still counts toward carry capacity, swaps atomically on acceptance, costs 1 energy, expires at 60 ticks by default (max 200), and returns escrow on decline/expiry. It even explains the completion notice and where to read it (world_alerts, read_messages).

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?

Dense but front-loaded: escrow/atomicity first, then the mode split, then expiry and gifts, then the notification contract. Parenthetical asides ("locked by the server, still counts toward your carry capacity") add length but each earns its place as behavioral detail; a light trim would not change correctness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter, nested-object mutation tool with no annotations and no output schema, the description covers the lifecycle end to end: creation, escrow, acceptance conditions, expiry bounds, failure/decline behavior, and how the agent learns the outcome. Nothing needed to call it correctly is missing.

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 80% (baseline 3), and the description adds meaning beyond it: give is escrowed now, empty receive is a gift, target_agent selects direct vs open mode with a region constraint, and expires_ticks carries a default of 60 with a 200 ceiling that the schema does not state. Only api_key semantics are left to the schema.

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?

Opens with a specific verb+resource ("Offer items for items") and immediately distinguishes the two modes: direct offer with target_agent vs open standing market offer without it. This is clearly separable from siblings like respond_trade and cancel_trade, which are never confused with it.

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 concrete conditions for each mode: target_agent requires both parties in the same region at acceptance; omitting it requires a market and anyone there can accept. It also carves out the gift case (empty receive) and dormant-agent recipients. It stops short of naming respond_trade as the acceptance path, so guidance is clear but not fully exhaustive on alternatives.

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