MCP server exposing order support operations (get_order_status, cancel_order) and support policies via the Model Context Protocol
Two tools with clear verb-noun naming (get_order_status, cancel_order) and explicit risk annotations. Descriptions are present and contextually rich (Italian, mentioning idempotency and approval requirements), but lack LLM-optimized English structure. Input schemas are well-formed with regex patterns for order_id validation. However, output schemas are not documented in the visible code, and parameter descriptions are minimal (only 'Order identifier matching pattern ORD-\d+'). Error handling and recovery guidance are absent from tool definitions. The server demonstrates security awareness (READ_ONLY vs APPROVAL_REQUIRED risk tags) but does not expose this via standard MCP tool annotations.
Annulla un ordine. Azione sensibile: irreversibile e con effetti reali sullo stato server-side, per questo e' APPROVAL_REQUIRED lato Aegis. Idempotente: rieseguirla sullo stesso ordine gia' cancellato non genera un secondo "effetto", restituisce lo stesso esito.
Restituisce lo stato corrente di un ordine. Sola lettura: nessun effetto collaterale, per questo resta AUTO lato Aegis.
Output schemas not documented. Tool definitions lack return type documentation, forcing LLMs to infer response structure. Per pattern:tool, every tool must document what it returns.
Descriptions are in Italian and lack LLM-optimized English structure. Descriptions should be 50 - 200 chars, action-oriented, and answer WHAT/WHEN/WHY. Current descriptions are longer, context-heavy, and not optimized for LLM tool selection.
Parameter descriptions are minimal (only constraint, no context). 'Order identifier matching pattern ORD-\d+' states the format but not WHAT the parameter controls or WHY the LLM needs it. Per pattern:tool-description, every parameter needs a non-empty description explaining what it controls.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2025-06-18+ | v2 |
No error handling or recovery guidance in tool definitions. If an order is not found or cancellation fails, the tool definitions do not tell the LLM what to do next. Per pattern:recovery-guide, error responses must guide the agent's next step.
Risk annotations (READ_ONLY, APPROVAL_REQUIRED, IRREVERSIBLE) are present in metadata but not exposed via MCP tool annotations. Per current spec (2026-07-28), destructiveHint and idempotentHint should be declared in tool definitions so clients can enforce policies.