Model Context Protocol (MCP) server for the Hostaway PMS — connect Claude to your vacation rental ops. 10 read-only tools across listings, reservations, calendar, conversations, and financials.
Hostaway-mcp demonstrates solid fundamentals: all 10 tools have clear verb-noun names (list_*, get_*, whoami) and substantive descriptions (100-200 chars, well above the 20-char floor). Input schemas are present and typed for all tools. However, several gaps prevent a higher score: (1) parameter descriptions lack detail on constraints (e.g., list_conversations 'limit' says '1 - 50, default 20' but no enum or validation hint); (2) output schemas are not formally documented, responses are described in prose ('compact Markdown table') rather than structured JSON Schema; (3) no error handling guidance visible in tool definitions; (4) no tool annotations (readOnlyHint, idempotentHint) despite all tools being read-only. The codebase is clean and well-organized, but tool definitions prioritize human readability over LLM-optimized structure.
Fetch the full message history of a single conversation by id. Returns each message with direction (incoming/outgoing), timestamp, and body.
Fetch full details for a single Hostaway listing by id. Returns location, capacity, pricing, reputation, and channel URLs as Markdown sections.
Fetch full details for a single Hostaway reservation by id. Returns guest info, dates, pricing breakdown, and channel details.
Get the availability calendar for a single listing across a date range. Returns per-day availability, status, price, minimum stay, and reserved/blocked counts. Use this to answer 'is property X available between dates A and B?'
List guest message threads (conversations) on the connected Hostaway account. Returns a compact Markdown table with conversation id, guest, linked listing/reservation, unread state, and last activity time.
Output schemas not formally documented. Tool descriptions use prose ('compact Markdown table', 'Markdown sections') instead of structured JSON Schema. LLMs cannot reliably parse unstructured output or plan downstream tool calls without knowing field names and types.
Parameter constraints lack detail. 'limit' parameters state '1 - 50, default 20' in descriptions but are not enforced as enums or validated with min/max JSON Schema constraints. LLMs may pass invalid values; no validation error guidance visible.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
List properties (listings) on the connected Hostaway account. Returns a compact Markdown table with id, name, location, bedrooms/bathrooms, person capacity, and status.
List owner financial statements on the connected Hostaway account. Returns a compact table of statement id, name, and status. Useful for revenue and payout reporting.
List reservations on the connected Hostaway account. Optional filters by arrival date range and reservation status. Returns a Markdown table with the most useful operational fields.
List only guest message threads that have unread messages. The most useful tool for answering 'do I have any guests waiting on a reply?'
Health-check tool — confirms credentials work and returns a quick summary of the connected Hostaway account: counts of listings, reservations, conversations, owner statements, and users. Use this first when setting up to verify the connection.
No tool annotations despite all tools being read-only. Missing readOnlyHint and idempotentHint annotations prevent clients from optimizing caching, retry logic, and safety checks.
No error handling guidance in tool definitions. Descriptions do not explain what to do if a listing_id is invalid, a date range is malformed, or the API returns 401/429. LLMs have no recovery path.
Parameter descriptions for date fields lack format specification. 'start_date' and 'end_date' say 'YYYY-MM-DD format' in prose but no JSON Schema format constraint. LLMs may pass invalid dates; no validation error message visible.