Model Context Protocol (MCP) server for Razorpay payment integration
24 tools with consistent naming (verb_noun pattern) and basic schemas, but critical gaps in descriptions and parameter documentation. All tools have input schemas with types, but descriptions are generic (avg ~40 chars, well below 194-char baseline). Most parameters lack descriptions entirely. No output schemas documented. Error handling absent. Security concerns: no mention of credential injection or permission gates. Composition is reasonable (single responsibility per tool), but missing chaining IDs in responses and pagination guidance.
Create a new customer
Get customer details by customer ID
Create a new order
Get order details by order ID
List orders with optional filtering
Create a new payment link
Get payment link details by payment link ID
Generic, under-20-character descriptions on all 24 tools. Examples: 'Get payment details by payment ID' (34 chars), 'Create a new order' (18 chars). Descriptions lack context on WHEN to use, prerequisites, or what the LLM should expect.
Most parameters lack descriptions. E.g., razorpay_payments_list has 'count', 'skip', 'from', 'to' with descriptions, but razorpay_orders_create 'notes' parameter is described only as 'Additional notes', vague and unhelpful.
No output schemas documented. Tools return results from razorpay_client methods, but no schema is visible for what fields the LLM should expect. This forces LLMs to guess at response structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Get payment details by payment ID
List payments with optional filtering
Create a new plan
Get plan details by plan ID
List plans with optional pagination
Create a new refund
Get refund details by refund ID
Create an on-demand settlement
Get settlement details by settlement ID
List settlements with optional filtering
Get settlement reports with filtering
Cancel an active subscription
Create a new subscription
Get subscription details by subscription ID
List subscriptions with optional filtering
Pause an active subscription
Resume a paused subscription
No error handling or recovery guidance. Tools call razorpay_client methods but no try-catch, validation, or error messages visible. Try search_users() first.'). Current code will surface raw exceptions.
No pagination limits or guidance. razorpay_payments_list, razorpay_orders_list, etc. accept 'count' but no cap is enforced. Unbounded results risk context window exhaustion.