A Spring Boot-based MCP server for e-commerce operations, featuring a Customer Support Agent that handles order refunds and replacements
Critical failures across all dimensions. Tool definitions lack proper schemas, input parameters are described as generic 'object' types with no field-level structure, violating JSON Schema standards. Descriptions are present but vague (e.g., 'Handles the refund or replacement of an order' does not explain WHEN to use this vs. processRefund/processReplacement, or what the response contains). No parameter-level descriptions exist; LLMs cannot infer what fields 'orderAdjustmentResponse' or 'searchResult' contain. No output schemas documented. Tool names use compound verbs ('refundOrReplaceOrder') signaling multiple responsibilities. No error handling guidance, no idempotency markers, no permission scopes. This server is not production-ready.
Creates a professional customer response message about their order adjustment using LLM
Analyzes a customer support request to extract order ID, operation type (REFUND or REPLACEMENT), and customer sentiment
Processes a refund for an order by returning inventory and issuing the refund
Processes a replacement order by creating a new order with the same SKU
Handles the refund or replacement of an order for a customer
Retrieves an order by ID and returns whether the order exists
All tools have zero-specificity input schemas. Parameters are typed as generic 'object' with no field definitions. LLMs cannot determine what data to pass or what structure is expected.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., order IDs, adjustment details) from responses.
Tool 'refundOrReplaceOrder' uses compound verb naming ('refundOrReplace') indicating two distinct operations. Should split into separate tools: 'processRefund' and 'processReplacement' (which already exist separately, creating redundancy).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 28 | 2026-07-28+ | v2 |
Descriptions lack WHEN-to-use guidance. 'Analyzes a customer support request' does not explain when parseRequest should be called vs. other tools, or what 'context' parameter contains.
No error handling guidance. Tools do not indicate what errors are retryable, what requires user intervention, or how to recover from failures (e.g., 'order not found').