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)