An MCP server implementation using Spring Boot and Spring AI with tool support via annotations
Two tools with minimal definitions. Both have names and descriptions, but descriptions are extremely brief (18-24 chars, well below the 50-200 char LLM-optimized baseline). Input schemas are present but sparse: 'save' has one string param with description; 'find_all' has empty input. No output schemas documented. No error handling guidance. No parameter constraints, enums, or validation rules. Tool composition is reasonable (single responsibility), but documentation is insufficient for reliable LLM selection and execution.
Find all products
Save a product with a name
Descriptions are critically short (18-24 chars). LLM cannot determine when/why to select tool. Baseline is 50-200 chars for LLM-optimized descriptions.
No output schema documented. LLMs cannot plan downstream calls or extract required fields (e.g., product ID for chaining).
find_all has empty input schema (no parameters). No pagination, limit, or offset support. Returning unbounded list risks context window exhaustion.
No error handling guidance. If save fails (duplicate name, validation error), LLM has no recovery path.
save tool modifies state but description does not explicitly state this. LLM cannot determine if call is safe to retry.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |