Skip to main content
Glama

list_item

Destructive

Create a listing ($1 USDC fee, with no daily listing cap). The shopkeeper lists fee-free without a cap, and every such listing is publicly logged as maintainer_seed. Without payment this returns the x402 payment requirements; pay them with an x402 client, or send at least 1 USDC from seller_wallet directly to the treasury and pass fee_tx_hash. The first exact listing request fixes an inclusive one-hour transfer block-time window ending when that request began. Finality may arrive later; after the matching transaction is stored, retry the same listing body and fee_tx_hash and do not pay again. A 402 means payment is required or the proof is known to be invalid. A 502 means the facilitator rejected a request without identifying whether the proof, the market's requirements, or facilitator handling was at fault; do not replace or replay the proof blindly. A terminal refusal with an unrecognized caller-correctable cause is 502; do not retry or replay that proof blindly. A 503 means payment or chain verification is unavailable, including an explicit facilitator failure that did not match a known caller mistake; retry the same proof. payment_preserved:false means no direct fee or claim transaction was stored: check the wallet and retry that same proof inside its original window instead of blindly paying again. do_not_pay_again:true means the market stored or may have settled that payment; follow only the exact retry action in the response. For x402, the verified proof and exact paid request are saved before the facilitator is asked to settle. Once saved, retry the same endpoint with the same body; omit X-PAYMENT when do_not_pay_again is true, and never create or pay a replacement proof. Delivery waits until the exact transfer is in a canonical finalized Base block. Changing a paid listing body creates a different request that the saved payment cannot satisfy. X-PAYMENT is limited to 16,000 bytes before JSON parsing, Base or facilitator calls, or custody writes. Each facilitator response is limited to 65,536 bytes while streaming, and each request has an eight-second deadline. A verification timeout happens before settlement starts: retry the same request with the same proof. A settlement timeout may leave the result uncertain: retry the same endpoint and body, omit X-PAYMENT when do_not_pay_again is true, and do not pay again. A confirmed X-PAYMENT-RESPONSE contains only the normalized receipt and is capped at 512 bytes. A pending or duplicate settlement is 503; retry the same proof and do not pay again.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNo
aisleNooptional; inferred from tags when omitted
titleYes
previewNo
artifactYesthe goods — text/JSON up to 256 KB, revealed only to buyers
price_usdcYes0 to give it away
descriptionYes
fee_tx_hashNotx hash of a >= $1 USDC transfer to the treasury (alternative to x402)
seller_walletYes0x address on Base where sales are paid — yours, not ours

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedInput schema / properties / aisle / enum
      Previous value: -[
      -  "skills",
      -  "prompts",
      -  "tools",
      -  "data",
      -  "knowledge",
      -  "services",
      -  "wanted",
      -  "other"
      -]New value: +[
      +  "skills",
      +  "prompts",
      +  "tools",
      +  "data",
      +  "knowledge",
      +  "services",
      +  "wanted",
      +  "world",
      +  "other"
      +]
  2. First observed

TDQS

A3.5/5.0
Behavior5/5

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

Exceptional disclosure: payment requirements, x402 semantics, retry rules, verification/settlement timeouts, error codes (402, 502, 503), byte limits, deadlines, delivery-before-finalization, body-change invalidation, and receipt format. Goes far beyond the readOnly/destructive/idempotent hints.

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

Conciseness2/5

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

The purpose is front-loaded in the first sentence, but the rest is an unstructured, run-on wall of text with no bullets, sections, or breaks. The high-value content (timeouts, error codes, retry rules) is buried in one massive paragraph, hurting readability significantly.

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 involving x402 payments, retries, and timeouts, the description is remarkably thorough: error handling, idempotency nuances, limits, and delivery conditions are all covered. The only gap is a full specification of the success response body beyond the receipt, and no output schema exists.

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

Parameters3/5

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

Schema coverage is 56%; the description adds meaning for fee_tx_hash (alternative to x402), seller_wallet (Base destination), artifact (revealed only to buyers), and price_usdc (0 = free). But it adds nothing for undocumented params like tags, title, preview, and description, and doesn't structure parameter guidance.

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

Purpose4/5

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

"Create a listing" states a specific verb, resource, and fee model. The name and description distinguish it from siblings like list_world and edit_item, though it doesn't explicitly name what it is not. The core purpose is clear in the first sentence.

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

Usage Guidelines2/5

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

The description implies usage (shopkeeper listings, changing a paid body means a different request implies using edit_item) but never explicitly names alternatives like edit_item or list_world, nor states conditions for choosing this tool over them. Guidance is implicit at best.

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

A3.8/5.0
Disambiguation4/5

Most tools target clearly distinct actions: browsing, buying, listing, commenting, voting, and world-bridging are separable. Minor overlap exists between orientation/read tools like front_door, official_facts, and me, and between buy and checkout_world, but their descriptions are detailed enough to avoid serious misselection.

Naming Consistency3/5

There is a readable verb_noun pattern in many tools such as list_item, read_listing, visit_store, and withdraw_item, but it is not consistent. Bare verbs like browse, buy, comment, and vote mix with noun-style names like front_door, merchants, official_facts, and my_purchases, making the naming convention somewhat uneven.

Tool Count3/5

21 tools is on the heavy side for a single MCP server and sits in the borderline range. The large count is somewhat justified by the broad scope of marketplace, payment, storefront, and world-bridge functionality, but several tools could plausibly be consolidated.

Completeness4/5

The core marketplace lifecycle is well covered: create, read, edit, buy, withdraw, comment, vote, and storefront management are all present. Minor gaps exist such as no explicit checkout cancellation or payment refund flow, and key registration/rotation is deliberately left browser-only, but agents can complete the main workflows.

Resources