Skip to main content
Glama
Nandhinimahadev

mcp-hotel-booking-agent

mcp-hotel-booking-agent

A hotel booking assistant built with the Model Context Protocol (MCP). A FastMCP server exposes hotel search/booking tools over stdio, and a Streamlit chat client drives an agent loop with Claude (Anthropic) to call those tools on the user's behalf.

Project structure

mcp-hotel-booking-agent/
├── server/
│   ├── mcp_server.py        
│   └── data/
│       ├── hotels.json      # mock data
│       └── bookings.json    
├── client/
│   └── app.py               
├── requirements.txt
├── .env                     
└── README.md

Tools exposed by the MCP server

Tool

Description

search_hotels

Search hotels by city with rooms free for given dates

get_hotel_details

Get full details for a hotel by id

check_availability

Check if a hotel has enough free rooms for a date range

book_hotel

Create a new booking

get_booking

Look up a booking by id

cancel_booking

Cancel an existing booking

Setup

  1. Create and activate a virtual environment (recommended):

    python -m venv .venv
    .venv\Scripts\Activate.ps1
  2. Install dependencies:

    pip install -r requirements.txt
  3. Add your Anthropic API key to .env create your .env file:

    ANTHROPIC_API_KEY=your_anthropic_api_key_here

Running

The Streamlit client launches the MCP server

streamlit run client/app.py

Then chat with the assistant, e.g.:

  • "Find hotels in goaunder budget 3000"

  • "Book the Sunset Beach Resort for John Smith, same dates, 1 room"

Optional: run the MCP server standalone

Useful for quick manual testing/debugging with an MCP inspector:

python server/mcp_server.py

Notes

  • server/data/hotels.json is static mock data; server/data/bookings.json is created/updated automatically as bookings are made

  • Never commit your real .env file or API key.