Model Context Protocol server exposing a 20-episode hospitality podcast knowledge base, 7 virtual panel councils, 5 signature question repositories, and a hospitality terminology register as queryable resources and tools.
Server exposes 6 read-only tools with reasonable naming (verb_noun pattern) and descriptions. All tools have input schemas with type definitions and parameter descriptions. However, output schemas are not formally documented, responses are inferred from code (e.g., list_episodes returns List[Dict], search_transcripts returns List[Dict]). Parameter descriptions are present but generic; several lack format/constraint details. No error handling guidance (e.g., what happens if episode_number is out of range 1-20, or council_id is invalid). Tool descriptions are adequate (100-200 chars) but could be more prescriptive about when to use each tool vs. alternatives. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Resources are well-defined but not integrated into tool composition.
Retrieve the full verbatim transcript of an episode by its episode number (1 to 20).
Lookup any specialized hotel metric or system in the Hospitality Terminology Register (e.g., 'TRevPAR', 'Net RevPAR', 'GOPPAR', 'anecdata', 'day trading', 'RAG', 'AI OS', 'MLOS').
Retrieve one of the 5 signature question knowledge bases across the corpus: 'q1' (Accidental Hotelier / Origins & Career Entry), 'q2' (Will Sales and Revenue Ever See Eye to Eye?), 'q3' (Advice to Emerging Hoteliers & Younger Self), 'q4' (Technology, AI & Human Touch), 'q5' (Final Toast Anthology).
List all 20 episodes of The Hotelier Huddle, optionally filtered by a topical tag (e.g., 'ai', 'revenue-management', 'leadership', 'sales', 'luxury-hotels').
Retrieve synthesized dialogue from one of the 7 Virtual Councils: 'commercial_alignment' (Panel 01: Sales, Revenue, Net RevPAR & Distribution), 'ai_technology' (Panel 02: AI OS, Data Boundaries, SLMs vs LLMs & Human Touch), 'crisis_resilience' (Panel 03: Hurricanes, COVID, Brand Reputation), 'modern_leadership' (Panel 04: GM Leadership, Culture, Frontline Empowerment), 'nonlinear_careers' (Panel 05: Transferable Skills, Night Audit to CEO), 'asset_strategy' (Panel 06: Precincts, Wellness Revenue, Strata Models), 'service_craft' (Panel 07: Frontline Empathy, Personalisation, Concierge).
Output schemas not formally documented. Tools return List[Dict] or str, but field names, types, and required fields are inferred from code. LLMs cannot plan downstream operations without explicit schema.
No error handling guidance. Tools return bare strings like 'Episode X not found' or 'Glossary not found' with no recovery hints. LLM cannot determine if error is retryable or fatal.
Parameter constraints not enforced or documented. episode_number accepts any int but valid range is 1-20; council_id accepts any string but only 7 values are valid. No enum constraints or validation error messages.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
Search across all 20 podcast transcripts for specific terms, concepts, or quotes. Returns matching dialogue turns with timestamps, speaker names, and context.
No tool annotations. All 6 tools are read-only and idempotent, but lack readOnlyHint and idempotentHint annotations. LLM cannot infer safety properties without explicit hints.
Parameter descriptions lack format/constraint details. 'tag' is described as 'Optional topic tag' but does not list valid values (ai, revenue-management, leadership, sales, luxury-hotels). 'max_results' has default=5 but no min/max bounds stated.