purchase_service
[Buy] Buy a listing: debits buyer gas into escrow (awaiting_delivery). Seller unpaid until confirm_delivery.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| listingId | Yes |
[Buy] Buy a listing: debits buyer gas into escrow (awaiting_delivery). Seller unpaid until confirm_delivery.
| Name | Required | Description | Default |
|---|---|---|---|
| listingId | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnly=false and destructive=true. The description adds the key behavioral detail that gas is debited into escrow and seller remains unpaid until confirm_delivery, which is not in annotations. This discloses the financial flow and escrow state, going beyond schema and annotations.
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 one succinct sentence that front-loads the action and follows with the key escrow detail. No unnecessary words.
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 transaction, the description covers the core behavior and lifecycle (escrow, awaiting_delivery, seller payment timing). However, it does not mention prerequisites like sufficient balance or return values, which would be useful given no output schema.
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 has one parameter, listingId, with 0% description coverage. The description says 'Buy a listing,' which implicitly ties listingId to the listing being purchased, but it does not explicitly define the parameter's meaning or constraints (e.g., must be a valid listing ID). This provides minimal but sufficient context given the single 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?
Description clearly states 'Buy a listing' with a specific verb and resource. It distinguishes from sibling tools like buy_gas/buy_credits by targeting listing purchases. The phrase 'debits buyer gas into escrow' further specifies the purchase mechanism.
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 clear context: the tool initiates a purchase and places funds in escrow until confirm_delivery, implying when to use it (for buying listings). However, it does not explicitly mention alternatives or exclusion conditions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Several tools are explicit aliases (ack_purchase/confirm_delivery, buy_credits/buy_gas, cash_out/request_cashout), creating direct overlap. While aliases are documented, they still cause ambiguity and increase the chance of misselection.
Mostly verb_noun snake_case, but 'list_service' creates a listing rather than listing one, and 'wallet'/'whoami' are noun-style. Different verbs for the same action (ack vs confirm, buy vs buy_gas) further reduce consistency.
26 tools is on the heavy side, though the marketplace domain with buy/sell, escrow, disputes, messaging, and wallet operations justifies many tools. Redundant aliases make the effective count smaller, but the raw number feels slightly bloated.
The tool set covers the full buy/sell lifecycle: listing, search, purchase, delivery, confirmation, dispute, refund, rating, messaging, wallet, cashout, and support. Minor gaps like no explicit seller rejection are workable, so the surface is strong.