Model Context Protocol (Books) Java Server - provides tools to search and retrieve book information
Three tools with minimal descriptions (10-20 chars, well below 50-200 char baseline for LLM optimization). All tools have input schemas with basic type definitions, but parameter descriptions are sparse or missing context. Tool names follow verb_noun pattern (get_, search_) but descriptions lack WHAT/WHEN/WHY guidance. No output schema documentation visible. No error handling or recovery guidance. Parameter 'operation' appears in all three tools but its purpose and valid values are undocumented, LLMs cannot infer what to pass.
to find all published books
to find books published in a specific year
to find books published within a range of years
Descriptions critically short (10-20 chars). Baseline is 50-200 chars for LLM optimization. Current descriptions lack WHAT the tool does, WHEN to use it, and what it returns. Example: 'to find all published books' does not explain when to call this vs search_books_by_year.
Parameter 'operation' present in all three tools but undocumented. No description of what values it accepts, what it controls, or why it is required. LLMs cannot infer valid inputs. This violates the requirement that every parameter must have a description explaining what it controls.
No output schema documented. LLMs cannot plan downstream calls or extract fields without knowing what structure is returned. Baseline: 100% of A+ tools have documented return types.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
No error handling or recovery guidance. If a year is invalid or out of range, no guidance on what to do next. Baseline: error responses must tell the LLM what to do next.
Parameter 'year' and 'fromYear'/'toYear' lack format/range constraints in descriptions. No mention of valid year range (e.g., 1991-2012 based on data). LLMs may pass invalid values without guidance.