npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@matt-long-plux/hostaway-mcp

v1.0.2

Published

MCP server for the Hostaway vacation rental PMS API

Downloads

367

Readme

hostaway-mcp

npm version License: MIT MCP

An open-source Model Context Protocol (MCP) server that connects AI assistants like Claude Desktop, Claude Code, and Cursor to the Hostaway property management API. Query reservations, listings, calendars, financials, and guest conversations using natural language.

Quick Start

  1. Get your Account ID and Client Secret from your Hostaway dashboard under Settings > API
  2. Make sure you have Node.js 18+ installed
  3. Pick your AI client below and add the config — no cloning or building required

Setup

Claude Desktop (Mac & Windows)

Open your Claude Desktop config file:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the following (merge with existing mcpServers if you have other servers configured):

{
  "mcpServers": {
    "hostaway": {
      "command": "npx",
      "args": ["-y", "@matt-long-plux/hostaway-mcp"],
      "env": {
        "HOSTAWAY_ACCOUNT_ID": "YOUR_ACCOUNT_ID",
        "HOSTAWAY_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
      }
    }
  }
}

Restart Claude Desktop and you're ready to go.

Claude Code

Option 1 — CLI command (quickest):

claude mcp add hostaway \
  -e HOSTAWAY_ACCOUNT_ID=YOUR_ACCOUNT_ID \
  -e HOSTAWAY_CLIENT_SECRET=YOUR_CLIENT_SECRET \
  -- npx -y @matt-long-plux/hostaway-mcp

Option 2 — .mcp.json in your project root (good for sharing with teammates):

{
  "mcpServers": {
    "hostaway": {
      "command": "npx",
      "args": ["-y", "@matt-long-plux/hostaway-mcp"],
      "env": {
        "HOSTAWAY_ACCOUNT_ID": "YOUR_ACCOUNT_ID",
        "HOSTAWAY_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
      }
    }
  }
}

Cursor

Add the same config to your project's .cursor/mcp.json, or go to Cursor Settings > MCP Servers > Add Server and paste:

{
  "mcpServers": {
    "hostaway": {
      "command": "npx",
      "args": ["-y", "@matt-long-plux/hostaway-mcp"],
      "env": {
        "HOSTAWAY_ACCOUNT_ID": "YOUR_ACCOUNT_ID",
        "HOSTAWAY_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
      }
    }
  }
}

Tools Reference

Reservations

| Tool | Description | Key Parameters | |------|-------------|----------------| | list_reservations | List reservations with filters | listingMapId, dateFrom, dateTo, status, channelId, limit | | get_reservation | Get full reservation details | reservationId (required) | | update_reservation_host_note | Update internal host note | reservationId, hostNote (required) | | list_reservations_by_property | Current + upcoming reservations grouped by property | None |

Listings

| Tool | Description | Key Parameters | |------|-------------|----------------| | list_listings | All active listings with metadata | includeArchived | | get_listing | Full listing details | listingId (required) | | get_listing_custom_fields | Custom field values as name-value map | listingId (required) |

Calendar

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_calendar | Availability and pricing calendar | listingId, startDate, endDate (all required) | | get_gap_nights | Find short unbooked gaps between reservations | listingId (required), startDate, endDate, maxGapLength | | create_calendar_block | Block dates on calendar | listingId, startDate, endDate (required), note | | delete_calendar_block | Remove a calendar block | listingId, calendarBlockId (required) |

Financials

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_reservation_financials | Financial breakdown for a reservation | reservationId (required) | | get_revenue_summary | Aggregated revenue across listings | dateFrom, dateTo (required), listingId | | get_payout_report | Payout report for reconciliation | dateFrom, dateTo (required), channelId |

Conversations

| Tool | Description | Key Parameters | |------|-------------|----------------| | list_conversations | Recent guest conversations | listingId, limit, unreadOnly | | get_conversation | Full message thread | conversationId (required) | | send_message | Send message to guest | conversationId, message (required) |

Read-Only Mode

Set HOSTAWAY_READ_ONLY=true to disable all write/mutation tools. When enabled, the following tools will return an error instead of executing:

  • update_reservation_host_note
  • create_calendar_block
  • delete_calendar_block
  • send_message

This is useful for shared accounts or when you want to prevent accidental modifications.

Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | HOSTAWAY_ACCOUNT_ID | Yes | Your Hostaway account ID (integer) | | HOSTAWAY_CLIENT_SECRET | Yes | Your Hostaway API client secret | | HOSTAWAY_READ_ONLY | No | Set to true to disable write operations | | HOSTAWAY_CACHE_TTL | No | Token cache TTL in seconds (default: 240) |

Example Queries

Once connected, try asking Claude:

  • "Show me all upcoming reservations"
  • "What's the occupancy looking like for my properties next month?"
  • "Find gap nights across all listings for the next 90 days"
  • "How much revenue did I make last month?"
  • "Show me unread guest messages"
  • "What are the financials for reservation 12345?"
  • "Generate a payout report for Airbnb bookings in March"

Contributing

Feedback and pull requests are welcome! Please open an issue on GitHub or email [email protected].

License

MIT