A Spring Boot application demonstrating MCP (Model Context Protocol) server implementation with data product management capabilities
Single tool with minimal definition quality. Tool name 'getDataProductInfo' uses camelCase instead of snake_case verb_noun convention, making it harder for LLMs to parse intent. Description is present (60 chars) but generic and lacks context on when/why to use it. Input schema exists with basic type info but lacks constraints, enums, or format guidance. No output schema documented. No error handling guidance. No pagination support despite potential for large datasets. Tool appears to be a simple wrapper around a service call with no agent-specific optimizations.
Get information about a data product by its ID
Tool name uses camelCase (getDataProductInfo) instead of snake_case verb_noun convention (get_data_product_info). LLMs parse action verbs from tool names, camelCase obscures the verb and makes intent inference harder.
No output schema documented. LLMs cannot plan downstream calls or extract structured data from a String response. Tool returns 'Data Product Info: <service result>' with no field definitions.
Input parameter 'dataProductId' lacks constraints. No enum, pattern, format, or length limits. LLMs may pass invalid IDs. Description should specify format (e.g., 'alphanumeric, 1-50 chars') or provide examples of valid IDs.
No error handling guidance. Tool description does not explain what happens if dataProductId is not found, invalid, or if the service fails. LLMs need recovery hints like 'If not found, try search_data_products() first.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Tool description (60 chars) is minimal and lacks context. Does not explain WHEN to use it, WHAT it returns, or any prerequisites. Baseline for A+ tools is 50-200 chars with explicit WHAT/WHEN/WHY guidance.