Simple MCP Server built with Spring Boot and Spring AI
Server exposes 6 basic arithmetic and greeting tools via Spring AI MCP framework. All tools have descriptions (10-50 chars) and input schemas with typed parameters. However, descriptions are minimal and lack context for LLM selection. No output schemas documented. No error handling guidance. Tools are simple read-only operations with no composition complexity, but lack the depth and clarity expected of production tools. Naming is clear (verb_noun pattern) but descriptions fall short of the 50-200 char baseline for A+ tools.
Add two integers
Divide one integer by another
Get personalized greeting message for a specific user name
Multiply two integers
Generate a random integer within a range
Subtract one integer from another
Descriptions are too brief (10-50 chars vs 50-200 char baseline). LLMs cannot determine when to select a tool or how it differs from similar tools. E.g., 'Add two integers' lacks context on use cases, return type, or when to prefer this over other operations.
No output schemas documented. LLMs cannot plan downstream tool calls or extract results. E.g., does 'divide' return an integer, float, or object with quotient+remainder? Does 'randomInt' return a single int or an array?
No error handling guidance. If divide() is called with denominator=0, what happens? No recovery hints for LLM. If randomInt(min=10, max=5) is invalid, no actionable error message.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Parameter descriptions are minimal. E.g., 'First integer' and 'Second integer' for add() do not explain range, constraints, or format. No mention of min/max bounds for randomInt().
Tool composition is minimal. No tools return IDs or references that chain to other tools. No pagination, batch operations, or multi-step workflows. This is acceptable for a demo but limits real-world utility.