TypeScript Model Context Protocol Server for managing gift cards, rewards, and orders through Razorpay marketplace API
Server has 4 tools with complete schemas and descriptions, but quality is uneven. Naming follows verb_noun convention (get-, list-, place-). Descriptions are present but generic (avg 95 chars, below 194-char baseline). Parameter descriptions exist but lack actionable constraints (e.g., 'denomination in paise' but no min/max). Output schemas are not documented, responses are text-wrapped with embedded JSON comments rather than structured objects. Error handling returns isError flag but no recovery guidance. No tool annotations (readOnlyHint/destructiveHint). place-reward-order is a WRITE operation but lacks confirmation/dry-run pattern.
Fetch details of a specific order by order ID
Retrieves the current balance of the merchant wallet associated with Razorpay
Retrieves a list of available rewards with filtering options for the given program
Places an order for one or more rewards such as gift cards, memberships, or offers
Output schemas not documented. Responses are text-wrapped with embedded JSON comments rather than structured objects. LLMs cannot reliably parse or chain results.
place-reward-order is a destructive WRITE operation but lacks confirmation/dry-run pattern. No tool annotation (destructiveHint). Agents can accidentally place orders without safeguards.
Parameter constraints lack actionable detail. 'denomination in paise' has no min/max bounds. 'quantity 1-4' is stated in description but not enforced in schema. LLMs may pass invalid values.
Error responses return isError flag but no recovery guidance. 'Error checking balance: <message>' gives LLM no actionable next step (retry? call different tool? ask user?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Tool descriptions are generic and lack WHEN/WHY context. 'Retrieves a list of available rewards' does not explain when to call list-rewards vs get-order-details or what structure is returned.