MCP server providing hotel and flight booking management tools via Spring Boot with SSE (Server-Sent Events) transport
This server has critical gaps in definition quality. Both tools are registered via Spring AI's ToolCallbacks mechanism, but the actual tool specifications are inferred from method annotations rather than explicitly visible in the source. No parameter descriptions are visible in the provided code. The tool names follow a verb_noun pattern (get_*), which is positive, but input schemas are completely empty objects {}, and there is no evidence of output schema documentation. Error handling, parameter validation, and response shaping are absent from the visible code. The server appears to be a minimal proof-of-concept rather than a production-ready implementation.
Get all flight bookings
Get all hotel bookings
Input schemas are empty objects ({}). No parameter documentation.
Tool definitions are inferred via Spring AI's ToolCallbacks introspection, not explicitly visible in source code. Tool registration logic is implicit: McpToolUtils.toSyncToolSpecifications(ToolCallbacks.from(...)) hides the actual schema generation.
Descriptions are minimal (17 and 21 characters respectively). No context on WHAT the tool does, WHEN to use it, or WHAT it returns.
No output schema documentation visible. LLMs cannot plan downstream operations or extract correct fields without knowing the response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 39 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 25 | - | v1 |
No error handling, recovery guidance, or validation visible. If a tool fails, there is no message to guide the LLM on what to do next.
No pagination support visible. If flight or hotel booking lists grow large, returning all results will blow the context window. Per pattern:paginated-result, tools returning lists must support limit and offset/cursor with a total count.
No tool composition visible. Both tools return lists but there is no way to filter, search, or drill down into a specific booking. Common user intent ('Show me my bookings from last month') likely requires multiple tools or cannot be done at all.