Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hostaway MCP Servercheck availability for listing 12345 from June 1-7"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hostaway MCP Server
A FastAPI-based Model Context Protocol (MCP) server that exposes Hostaway property management operations as AI-callable tools.
Overview
This project enables AI assistants like Claude to interact with Hostaway's property management platform through standardized MCP tools. Built with FastAPI-MCP, it provides type-safe, authenticated access to listings, bookings, and guest communication.
Features
MCP Protocol Support: Expose Hostaway API as AI-callable tools
Type Safety: Full Pydantic model validation
Authentication: Secure API key and OAuth2 support
Async Performance: ASGI transport for efficient communication
Spec-Driven Development: Integrated with Spec-Kit workflow
Quick Start
Prerequisites
Python 3.12+
uv or pip package manager
Hostaway API credentials
Installation
# Clone repository
git clone <repository-url>
cd hostaway-mcp
# Create virtual environment
python3.12 -m venv .venv
source .venv/bin/activate
# Install dependencies
uv add fastapi fastapi-mcp uvicorn httpx pydantic-settings
# Configure environment
cp .env.example .env
# Edit .env with your Hostaway credentialsRunning the Server
# Development mode
uvicorn src.mcp.server:mcp_app --reload
# Production mode
gunicorn src.mcp.server:mcp_app \
--workers 4 \
--worker-class uvicorn.workers.UvicornWorker \
--bind 0.0.0.0:8000Documentation
Core Documentation
FastAPI-MCP Integration Guide - Complete guide to using FastAPI-MCP
Installation and setup
Core concepts and architecture
Implementation examples
Authentication strategies
Deployment options
Best practices and troubleshooting
Implementation Roadmap - Project implementation plan
Phase-by-phase development strategy
Sprint timeline and milestones
Project structure and organization
Risk mitigation
Success criteria
Spec-Kit Workflow
This project uses Spec-Kit for spec-driven development:
Define Constitution:
/speckit.constitutionCreate Specification:
/speckit.specifyGenerate Plan:
/speckit.planCreate Tasks:
/speckit.tasksImplement:
/speckit.implement
Project Structure
hostaway-mcp/
├── .claude/ # Spec-kit commands
├── .specify/ # Spec-kit templates
├── src/
│ ├── api/ # FastAPI application
│ │ ├── main.py # Main app
│ │ └── routes/ # API endpoints
│ ├── mcp/ # MCP server
│ │ ├── server.py # MCP setup
│ │ ├── config.py # Configuration
│ │ └── auth.py # Authentication
│ ├── services/ # Business logic
│ └── models/ # Pydantic models
├── tests/ # Test suite
├── docs/ # Documentation
└── .env # Environment configAvailable Tools (Planned)
Listings
get_listing- Retrieve listing detailslist_listings- List all listingscheck_availability- Check date availability
Bookings
search_bookings- Search with filtersget_booking- Get booking detailscreate_booking- Create new booking
Guests
send_guest_message- Send message to guestget_guest- Get guest detailsget_message_history- View communication history
Development
Running Tests
# Unit tests
pytest tests/unit
# Integration tests
pytest tests/integration
# All tests with coverage
pytest --cov=src tests/Code Quality
# Linting
ruff check src/
# Type checking
mypy src/
# Formatting
ruff format src/Deployment
Docker
# Build image
docker build -t hostaway-mcp .
# Run container
docker run -p 8000:8000 --env-file .env hostaway-mcpDocker Compose
docker-compose up -dSecurity
API keys stored in environment variables
Input validation with Pydantic
Rate limiting enabled
Audit logging for all tool calls
HTTPS required in production
Contributing
Follow spec-driven development workflow
Write tests for all new features
Maintain >80% code coverage
Update documentation
Follow security best practices
License
MIT
Resources
Support
For issues and questions:
Check Documentation
Review Troubleshooting Guide
Open an issue on GitHub
Status: Initial Setup Complete ✅ Next Step: Begin Phase 1 - Environment Setup (see Implementation Roadmap)
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.