MCP server for a resort booking system that exposes database tools for AI assistants to search resorts, manage bookings, and retrieve user information
This server has significant definition quality gaps. Tool descriptions vary wildly in quality: search_available_future_listings is detailed (180+ chars), but most others are generic placeholders (10-30 chars like 'Get all details for a specific amenity by its ID'). 11 of 14 tools have minimal, non-actionable descriptions that fail to explain WHEN to use them or what distinguishes them from similar tools. Parameter descriptions are uniformly poor, most are auto-generated stubs ('The amenity_id parameter') with no context, format guidance, or constraints. No tool documents output schemas. No error handling guidance. No tool annotations. The server exposes get_database_url and test_database_connection, which are operational anti-patterns. Naming is mostly acceptable (verb_noun pattern), but several tools are near-duplicates (search_available_listings vs search_available_future_listings; get_listing_details vs get_featured_listings) without clear differentiation.
Get all details for a specific amenity by its ID.
List all available resorts with their basic information
Get detailed information about a specific booking by its ID.
Get database URL from environment variables.
Get featured listings.
Get all details for a specific listing by its ID.
Get detailed information about a specific resort
11 of 14 tools have descriptions under 30 characters with no actionable context. Examples: 'Get all details for a specific amenity by its ID' (52 chars, generic), 'Get user profile information' (28 chars, no WHEN/WHY). LLMs cannot distinguish when to call these vs similar tools.
All parameter descriptions are auto-generated stubs ('The amenity_id parameter', 'The limit parameter') with zero context. No format guidance, constraints, or examples. Violates pattern:tool-description requirement that every parameter have a meaningful description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 32 | 2026-07-28+ | v2 |
Fetch all bookings for a user by name
Get user profile information.
Get listings with weekend availability.
Search for available resort listings with intelligent date handling. Provides comprehensive date-aware search with automatic fallback options. Supports flexible date matching (±7 days) and duration (±2 nights).
Search for available listings with various filters.
Get listings by type.
Test if the database connection works.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. Violates pattern:tool requirement for documented return types.
Duplicate/near-duplicate tools without clear differentiation: search_available_listings vs search_available_future_listings (both search listings, unclear distinction); get_featured_listings vs get_weekend_listings (both return subsets of listings). LLMs will conflate these and pick wrong tool.
Operational anti-patterns exposed as tools: get_database_url and test_database_connection should never be agent-callable. These leak infrastructure details and enable misuse. Move to server-side diagnostics only.