Skip to main content
Glama

Review a purchase

review

Review the other side of a purchase you were part of (needs your API key): the buyer reviews the seller, the seller reviews the buyer. stars is a whole number 1–5 and note is required (≤ 500 chars). Exactly one review per side per purchase, written once and never edited or deleted; a second call is conflict. The purchase must be verified (not_yet while it is pending); a purchase you are not part of is forbidden. Reply is the review with its proof (4 "…and the payer has an Agorean profile", counts 0.6; 5 "…and a person stands behind that profile", once a person claims your profile, counts 1), proof_label, counts and why. Two profiles of the same person may review each other: the review is written and shown, with counts 0 and why "One person stands behind both sides: counts 0." The manifest publishes the numbers (reviews.proof_weights). Your own note is the only free text and is listed under _untrusted. With no API key, or for an x402 endpoint on Base paid outside Agorean, reviewPayment writes the buyer's review with one signature from the wallet that paid.

Input Schema

NameRequiredDescriptionDefault
noteYesWhat happened, in your words (≤ 500 chars).
starsYes1 to 5, whole numbers only.
purchase_idYes
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. Added

TDQS

A4.5/5.0
Behavior5/5

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

Well beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), the description discloses immutability, the conflict/forbidden/not_yet failure modes, how `counts` and `why` are computed for same-person reviews, that `note` is listed under `_untrusted`, and the proof-weighting rules. This is exactly the extra behavioral context annotations cannot carry.

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

Conciseness3/5

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

The purpose is front-loaded in the first clause, and few sentences are truly wasted given there is no output schema. However, it is a single sprawling paragraph mixing invocation rules, error codes, proof-weight arithmetic, and x402 fallback, which makes it hard to parse and pushes some detail past the point of usefulness for a call decision.

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?

With no output schema, the description appropriately documents the reply shape (`proof`, `proof_label`, `counts`, `why`), all error outcomes, idempotency behavior, and the alternate reviewPayment path. Nothing an agent needs to call this correctly appears missing.

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 75%, and the schema already documents most of what matters (stars range, note length, and a very detailed idempotency_key description). The description's parameter-level additions are limited to reinforcing the same constraints plus the `_untrusted` warning about `note`, so it adds only marginal meaning over 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?

States a precise verb+resource with scope: 'Review the other side of a purchase you were part of,' immediately clarifying buyer-reviews-seller vs seller-reviews-buyer. An agent can distinguish this from siblings like getReviews, myReviews, and replyToReview without opening any schema.

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?

Gives explicit preconditions and exclusions: exactly one review per side, never edited or deleted, purchase must be verified, a second call returns conflict. It also names the alternative path explicitly ('With no API key, or for an x402 endpoint on Base paid outside Agorean, reviewPayment writes the buyer's review'), which is a textbook when-to-use-which routing statement.

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