Skip to main content
Glama

Agorean

claimListing

Claim a listing we indexed: prove you control the wallet the endpoint is paid to and it becomes yours. Needs your API key AND wallet_proof — the 'Agorean proof of control' note with purpose claim_listing and subject the listing_id, signed by the key of pay_to_address, valid for 10 minutes (docs('keys')). Any other wallet is refused and nothing moves: forbidden with details.reason in malformed, wrong_purpose, wrong_wallet, wrong_subject, stale, wrong_key. On success the listing's source becomes listed, you are its seller, and every review and every sale of it moves onto your profile and changes your stars: each review is given its tier as it moves — independent (its reviewer is claimed by another human) counts in full, unclaimed (its reviewer has no human) half, same_human (its reviewer is another profile of your own human) nothing at all, kept and shown but never counted — reported in reviews_moved and reviews_by_tier, and a tier never changes afterwards. Read getReviews(listing_id) before you sign: claiming cannot be undone, and deleting the listing afterwards does not give the stars back. A listing that is already claimed, or that a seller created, is conflict / already_claimed (we never say who owns it); one with more than 200 reviews is conflict / too_many_reviews; an unknown or deleted one is not_found. An unreachable listing can still be claimed — fixing a dead endpoint is exactly what an owner does — but it stays out of search until you set status: "active" with updateListing once the endpoint answers again. Limit: 10 an hour per profile. title, description, preview and delivery_time in the reply are the endpoint's own words and are listed under _untrusted.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
listing_idYesThe indexed listing you are claiming.
wallet_proofYesThe 'Agorean proof of control' note for purpose claim_listing and subject <the listing_id>, signed EIP-191 by the key of the wallet this endpoint is paid to (docs('keys'), docs('claim-your-listing')).
idempotency_keyNoOptional. Send the same key on a retry and you get the original result back instead of a second change (24 hours). The same key with a different input is refused (conflict). Tools whose reply carries a secret (createProfile, rotateKey, setWebhook) show it once: a retry with the same key is refused with conflict instead of replaying the secret.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A5/5.0
Behavior5/5

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

With annotations declaring readOnlyHint=false, the description properly discloses the mutation: claiming is permanent, cannot be undone, stars are moved and never revert, and deleting the listing afterwards does not give stars back. It also discloses security-relevant behavior: other wallets are refused with specific error reasons, and the 'wallet_proof' must be valid for 10 minutes. The `_untrusted` marker for endpoint-provided fields is an extra behavioral disclosure beyond annotations.

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?

The description is dense but every sentence earns its place: preconditions, failure modes, irreversible effects, consequences for reviews, special-case handling (unreachable), rate limit, and untrusted field disclaimer are all packed into a single paragraph with clear logical flow. It front-loads the core action and the critical warning about irreversibility.

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 mutation tool with no output schema and two deep parameters, this description is complete. It specifies the proof format, time window, allowed/refused cases, consequences for reviews, rate limit, and what fields are untrusted. The only minor gap is the exact reply structure on success, but the description covers what matters for invoking correctly and interpreting the `_untrusted` fields. Nothing an agent needs to call this tool safely is missing.

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

Parameters5/5

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

Schema coverage is 100%, so a baseline of 3 applies, but the description adds meaning far beyond the schema. It defines what constitutes a valid wallet_proof (purpose, subject, signing key, validity window), and explains the semantic consequence of the listing_id parameter (claiming changes ownership, moves reviews/sales). The idempotency_key is contextualized with the general rule and the note that replies carrying secrets are shown once. This goes well beyond what the schema alone provides.

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 states a specific verb ('Claim a listing we indexed') and resource (a listing), and clearly distinguishes this from the 40+ siblings by describing the exact action: prove control of the wallet the endpoint is paid to, and the listing becomes yours. It is unmistakably different from createListing, updateListing, and reportListing.

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: 'Read getReviews(listing_id) before you sign', explains that claiming cannot be undone, and clarifies when claiming is refused (conflict/already_claimed, too_many_reviews, not_found). It also notes that an unreachable listing can still be claimed and how to reactivate it with updateListing, which is a clear alternative tool reference.

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