MCP server for distributed order management with omnichannel routing capabilities. Routes orders across multiple fulfillment origins using strategies like shortest distance and lowest carbon emissions.
Single tool 'execute_skill_action' has a basic schema with three parameters (order_id, items_count, customer_postcode), all with type definitions and descriptions. However, the tool description is extremely generic (28 chars) and fails to explain WHAT the tool does, WHEN to use it, or what it returns. No output schema is documented. The implementation in mcp_server.py is a stub that only prints a JSON status message and does not actually invoke the client logic. The tool definition exists but is not properly integrated into the MCP protocol handler. Parameter descriptions are minimal (e.g., 'Order identifier (e.g., DOM_ORD_99182)' contains an example value, which violates the rubric). No error handling, validation, or recovery guidance is present.
Execute distributed order management and omnichannel routing skill action
Tool description is 28 characters and fails to explain what the tool does, when to use it, or what it returns. Rubric requires 10 - 1024 chars with clear WHAT/WHEN/WHY context.
No output schema documented. LLMs cannot plan downstream calls or extract required fields without knowing the response structure. Rubric requires 100% of A+ tools to have documented return types.
Parameter descriptions contain example values (e.g., 'DOM_ORD_99182', '2000_SYDNEY'). Rubric explicitly forbids this, LLMs reuse examples literally rather than adapting to context. Use enums or format constraints instead.
No error handling or recovery guidance. Tool provides no actionable error messages, categorization (retryable/user-fixable/fatal), or next steps for the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | 2026-07-28+ | v2 |
Tool name 'execute_skill_action' is generic and vague. Does not start with a clear action verb (get_, create_, update_, search_). 'execute' and 'action' are too abstract. Should be 'route_order' or 'get_routing_decision' to reflect the actual domain operation.