An AI-powered travel planning assistant that integrates with Airbnb through MCP (Model Context Protocol) to find and recommend accommodations
Single tool with basic schema present but significant quality gaps. Tool name follows verb convention (airbnb_search) but description lacks depth and context. Input schema has required fields with types and descriptions, meeting minimum structural requirements, but lacks enums, constraints, and output schema documentation. No error handling guidance, no recovery paths, no parameter relationships documented. The description (68 chars) is below the 194-char baseline for A+ tools and fails to answer when to use this tool vs alternatives, what it returns, or prerequisites. No evidence of output schema documentation in source code. Server provides no composition support (single tool), no pagination controls despite likely returning multiple results, and no guidance on handling ambiguous searches or missing properties.
Search and find villas and apartments on Airbnb based on location and property type preferences
Missing output schema documentation. Tool returns Airbnb results but no schema visible for response structure (fields, types, pagination).
Description is too brief (68 chars, below 194-char baseline) and lacks context. Does not answer: What structure is returned? When should this be called? What if location is ambiguous? What if no results match?
No pagination or limit controls in schema. Tool likely returns many results but provides no way to paginate, specify max results, or continue from a cursor. LLMs cannot request next page or respect token budgets.
property_type parameter lacks enum constraint. Accepts free-form string, inviting invalid values like 'luxury_villa' or 'beachfront' that the API may not support. Should enumerate valid types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No error handling guidance. If location is not found or property_type is invalid, LLM has no recovery path. Should include: 'If no results, try broader location (e.g. country instead of neighborhood)' or 'Valid property_types: villas, apartments, houses, condos.'
No idempotency guarantee stated. If LLM retries this tool with same parameters, will it return identical results or different listings? Without explicit idempotency promise, LLM cannot safely retry on ambiguous failure.
Parameter descriptions are minimal. 'Type of property to search for (e.g., 'Villas', 'Apartments')' provides examples but no definitive enum or constraint list. Examples like 'Villas' may be treated as literal by LLMs.