A Spring Boot MCP server implementation demonstrating shopping cart management tools
Spring MCP Demo exposes 4 shopping cart tools with basic descriptions and input schemas. All tools have descriptions (10-100 chars) and typed parameters, but lack depth for LLM optimization. Naming is clear (verb_noun pattern: addItem, removeItem, getCart, clearCart). Schemas are present but minimal, no output schemas documented, no pagination, no error guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Descriptions are functional but generic; they do not explain WHEN to use each tool or what happens on failure. Parameter descriptions are present but terse. No evidence of idempotency, retry guidance, or recovery paths. This is a minimal proof-of-concept, not production-grade.
Add an item to the shopping cart. If the item already exists, the quantity will be added to the existing item.
Clear all items from the shopping cart.
Get all items currently in the shopping cart.
Remove an item from the shopping cart, or reduce its quantity.
No output schemas documented. LLMs cannot infer what fields getCart returns or how to chain results to downstream tools.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot determine which tools are safe to retry or have side effects.
Descriptions lack recovery guidance and prerequisites. 'Remove an item from the shopping cart' does not explain what happens if the item does not exist or quantity is invalid.
No error handling or validation guidance. Tools do not document what errors are possible, whether they are retryable, or how to recover.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
removeItem quantity parameter description is vague: 'Quantity to remove. If not specified or 0, removes all of the item.' Does not clarify if 0 is a valid input or if omission is required.