A comprehensive Java library implementing the Model Context Protocol (MCP) as specified at https://modelcontextprotocol.io/specification/2025-11-25
Two tools with basic schemas and descriptions, but significant gaps. Both tools have descriptions (10-20 chars range, below the 50-200 char baseline for LLM-optimized descriptions). Input schemas are present but minimal, only 'message' and 'name' parameters with type and description. No output schemas documented. No error handling guidance. No parameter constraints (enums, ranges). Tool names are generic action verbs ('echo', 'greet') but lack the verb_noun clarity pattern (e.g., 'echo_message', 'greet_user'). No evidence of idempotency hints, destructive operation warnings, or composition support. Schemas are visible in code but descriptions are too terse to guide LLM selection effectively.
Echoes back the provided message with optional transformation
Greets a person by name
Tool descriptions are too short (10-20 chars). Baseline for LLM-optimized descriptions is 50-200 chars. Current descriptions lack context for when/why to select each tool.
No output schemas documented. LLMs cannot plan downstream calls or extract return values without knowing the response structure.
No error handling guidance. Responses do not indicate what the LLM should do on failure (retry, ask user, abort).
Tool names lack verb_noun clarity. 'echo' and 'greet' are generic; 'echo_message' and 'greet_user' would be clearer and help LLMs disambiguate intent.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2025-06-18+ | v2 |
No parameter constraints (enums, ranges, patterns). The 'uppercase' boolean and 'name' string accept any value without validation hints.