A Spring Boot-based MCP server that exposes course management tools via the Model Context Protocol
Spring AI MCP server exposes 2 tools with minimal definition quality. Both tools have basic descriptions (18-24 chars, below 20-char floor) and incomplete schemas. dv_get_courses has empty input schema ({}), violating schema requirements. dv_get_course has a single typed parameter but lacks parameter description. No output schemas documented. No error handling guidance. Tool names follow verb_noun pattern (get_*) but descriptions are too terse to guide LLM selection. No evidence of pagination, result limits, or composition patterns.
Get a single courses from Dan Vega by title
Get a list of courses from Dan Vega
dv_get_courses has empty input schema ({}). Tool provides no parameters, making it impossible for LLMs to customize behavior (e.g., pagination, filtering).
Both tool descriptions are under 20 characters ('Get a list of courses from Dan Vega', 'Get a single courses from Dan Vega by title'). Descriptions lack WHEN to use, WHAT it returns, and prerequisites. LLMs cannot distinguish between tools or plan multi-step workflows.
dv_get_course parameter 'title' has no description. LLMs cannot infer whether 'title' is exact match, substring search, or case-sensitive.
No output schemas documented for either tool. LLMs cannot plan downstream tool calls or extract required fields. Baseline: 100% of A+ tools have documented return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
No error handling guidance. If a course is not found or the API fails, LLMs receive no recovery path. Per pattern:recovery-guide, errors must tell the LLM what to do next.