Model Context Protocol server for integrating Shiprocket logistics platform, enabling order tracking, delivery estimation, and order management through MCP tools with OAuth 2.0 authentication.
The Shiprocket MCP server defines 3 tools with basic structure, but quality is uneven across dimensions. All tools have descriptions and schema definitions, but descriptions are generic and lack LLM optimization. Parameter schemas are present with type declarations and enums where appropriate, but descriptions for parameters are minimal. Output schemas are documented in descriptions but not formally specified. Error handling exists but lacks recovery guidance for common failure modes. Tool naming is reasonable (action_noun pattern), but composition and parameter constraints could be stronger.
Get the Estimated Date of Delivery (EDD) for a given destination. Args: delivery_pincode: String representing pincode of order delivery destination Returns: Dictionary containing following info: estimated_delivery_date: Date-time formatted string representing expected date & time of delivery delivery_pincode: String representing pincode of order delivery destination
Get list of orders Args: status: Optional ENUM('NEW', 'READY_TO_SHIP', 'IN_TRANSIT', 'DELIVERED') representing status filter for orders Return: List of dictionary containing following info:
Get order tracking related information. Args: awb_number: String representing AWB number assigned to the order Returns: Dictionary containing following info: order_status: String representing order status awb_number: String representing AWB number of order last_activity: String representing last marked activity of order last_scan_location: String representing last marked location of order last_scan_time: Timestamp formatted string representing last order scan timestamp tracking_url: String representing URL of order tracking page
order_list description is truncated and incomplete ('Return: List of dictionary containing following info:' cuts off mid-sentence). Agents cannot infer the fields or structure.
No pagination (limit, offset, page_size) parameters on list_orders. Agents cannot safely retrieve large result sets; responses risk blowing context window.
Parameter descriptions lack format/constraint details. E.g., 'delivery_pincode' accepts any string; no validation that it is a valid Indian postal code or 6-digit format. 'awb_number' has no length or pattern constraint.
Output schemas are documented in description text only, not in formal response type definitions. LLMs must parse unstructured text to infer response fields.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 19 | - | v1 |
Error handling does not provide recovery guidance for non-401 errors. Generic AxiosError cases return raw API response; agents cannot determine if error is retryable, user-fixable, or fatal.
tool annotations present (readOnlyHint=true, destructiveHint=false) but idempotentHint missing. Unclear if repeated calls with same pincode/AWB return identical results without side effects.