Hotels MCP Server
A Model Context Protocol (MCP) server that allows LLMs to search for hotels and destinations using the Booking.com API.
Features
- Search for destinations by name
- Get hotel listings for specific destinations with dates
- Rich hotel information including:
- Room details and types
- Pricing and discounts
- Ratings and reviews
- Photos
- Check-in/check-out times
- Star ratings
API Integration
This MCP server uses the Booking.com API via RapidAPI. You'll need:
- A RapidAPI account
- Subscribe to the Booking.com API
- Get your API key
The current implementation uses two endpoints:
/api/v1/hotels/searchDestination: Search for destinations/api/v1/hotels/searchHotels: Get hotels for a destination
Setup and Installation
Prerequisites
- Python 3.11+
- MCP SDK (
pip install mcp) - httpx (
pip install httpx) - python-dotenv (
pip install python-dotenv)
Installation
-
Clone this repository:
git clone https://github.com/username/hotels_mcp_server.git cd hotels_mcp_server -
Install dependencies:
pip install -r requirements.txt
-
Configure your RapidAPI credentials:
- Copy
.env.exampleto.env - Add your RapidAPI key from Booking.com API on RapidAPI to the
.envfile
- Copy
Running the Server
Run the server with:
python main.py
The server uses stdio transport by default for compatibility with MCP clients like Cursor.
Using with MCP Clients
Cursor
-
Edit
~/.cursor/mcp.json:{ "hotels": { "command": "python", "args": [ "/path/to/hotels_mcp_server/main.py" ] } }
-
Restart Cursor
-
Use natural language to search for hotels in Cursor:
- "Find hotels in Paris for next week"
- "What are the best-rated hotels in Tokyo?"
MCP Inspector
Test your server with MCP Inspector:
npx @modelcontextprotocol/inspector python main.py
This opens an interactive UI where you can:
- View available tools
- Send test requests
- See server responses
Available Tools
-
search_destinations: Search for destinations by name- Parameter:
query- Destination name (e.g., "Paris", "New York")
- Parameter:
-
get_hotels: Get hotels for a destination- Parameters:
destination_id: Destination ID from search_destinationscheckin_date: Check-in date (YYYY-MM-DD)checkout_date: Check-out date (YYYY-MM-DD)adults: Number of adults (default: 2)
- Parameters:
Code Structure
main.py: The entry point for the serverhotels_mcp/: The core MCP implementation__init__.py: Package initializationhotels_server.py: MCP server implementation with tool definitions
License
MIT © Esa Krissa 2025
Metadata
Release files for iflow-mcp-hotels-mcp-server 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_hotels_mcp_server-0.1.0.tar.gz | 5.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_hotels_mcp_server-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.4 kB
Release files / iflow_mcp_hotels_mcp_server-0.1.0.tar.gz
| Download URL | iflow_mcp_hotels_mcp_server-0.1.0.tar.gz |
|---|---|
| Size | 5.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a632b93be97e6f89dd2a279f4bfe62a045d9d0ee36197092753cf83a07a84b4
|
|
BLAKE2b-256 checksum How to use checksums |
26b2428a5a4407c3dd73c87794a081526b98b72ab645def30c6ac0e2d2eb0f38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.3
|
Release files / iflow_mcp_hotels_mcp_server-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_hotels_mcp_server-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d9a3dbbe28312376f52f35030b165db90133c7350fdf74f7c84b1b9f2fe43cf
|
|
BLAKE2b-256 checksum How to use checksums |
5fcb95abe6b651719dbb98e0f154b587f49eaa12cf5cd7bc488d89dfc838cbea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.3
|