FastAPI-based travel itinerary management system with hotel, transfer, and activity planning capabilities
This server has critical gaps in definition quality. Tool descriptions are present but minimal (10-50 chars, well below the 50-200 char baseline for LLM-optimized descriptions). Parameter descriptions exist but lack actionable detail (e.g., 'Number of nights' does not specify valid range, constraints, or use case). No output schemas are documented, LLMs cannot infer what fields to expect from responses. Error handling is absent; no guidance on retryability, user-fixable errors, or recovery paths. The server is a basic CRUD wrapper without agent-oriented design patterns.
Create a new travel itinerary with name and number of nights
Retrieve a specific itinerary by ID
Get recommended itineraries filtered by number of nights
No output schemas documented. LLMs cannot infer response structure (fields, types, nested objects). Responses are inferred from code but not declared in tool definitions.
Parameter descriptions lack actionable constraints. 'Number of nights' does not specify valid range (e.g., 1 - 365), format, or use case. LLMs cannot validate inputs or self-correct.
Tool descriptions are too brief (10 - 50 chars vs. 50 - 200 char baseline). 'Get recommended itineraries filtered by number of nights' lacks WHEN to use, prerequisites, or distinction from get_itinerary.
No error handling or recovery guidance. If nights=999 or itinerary_id=invalid, no error message tells the LLM what to do next (retry, ask user, or fail).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
No pagination support. recommend_itinerary returns all matching itineraries without limit or offset. Large result sets will exhaust context windows.