🌍 Expedia Travel Recommendations MCP Server
This project provides an MCP (Model Context Protocol) server that exposes Expedia Travel Recommendations (hotels, flights, activities, and cars) via both stdio and streamable-http protocols—ideal for LLM integrations and web-based applications.
✨ Features
- 🔌 MCP server integration for Expedia's travel recommendation APIs
- 📦 Supports both
stdioandstreamable-httpprotocols - 🏨 Hotel, ✈️ Flight, 🗺️ Activity, and 🚗 Car rental recommendations
- 🔐 API key-based secure access
🛠 Prerequisites
- Python 3.11+
- Expedia API key
⚡ Running the MCP Server
Run with stdio protocol (LLM Integration)
export EXPEDIA_API_KEY="your_api_key_here"
uvx expedia_travel_recommendations_mcp --protocol "stdio"
Run with streamable-http protocol (Web Clients)
export EXPEDIA_API_KEY="your_api_key_here"
uvx expedia_travel_recommendations_mcp --protocol "streamable-http"
Access it at:
http://0.0.0.0:9900/mcp
🐳 Running with Docker
Using Docker Compose (Recommended)
docker run \
-p 9900:9900 \
-e EXPEDIA_API_KEY=your_api_key_here \
expediagroup/expedia-travel-recommendations-mcp
Accessible at:
http://0.0.0.0:9900/mcp
⚙️ MCP Client Configuration
Using streamable-http (Recommended)
{
"mcpServers": {
"expedia-recommendation": {
"url": "http://localhost:9900/mcp"
}
}
}
Using stdio
{
"mcpServers": {
"expedia-travel-recommendations": {
"command": "uvx",
"args": [
"expedia_travel_recommendations_mcp",
"--protocol",
"stdio"
],
"env": {
"EXPEDIA_API_KEY": "your_api_key_here"
}
}
}
}
🧪 Example Query (Hotel)
{
"query": {
"destination": "Seattle",
"check_in": "2025-05-01",
"check_out": "2025-05-05",
"property_types": ["HOTEL", "RESORT"],
"amenities": ["POOL", "SPA"],
"guest_rating": "WONDERFUL",
"sort_type": "CHEAPEST"
}
}
🔗 API Endpoints
These are exposed when using the
streamable-httpprotocol.
POST /expedia/hotels→ Hotel recommendationsPOST /expedia/flights→ Flight recommendationsPOST /expedia/activities→ Activity recommendationsPOST /expedia/cars→ Car rental recommendations
🧑💻 Example Clients
See the examples/ folder for client scripts.
1️⃣ stdio-based Client
Make sure the virtual env is activated (install.sh must be run first):
source install_env/bin/activate
python examples/mcp_client_stdio.py
2️⃣ streamable-http Client
Ensure MCP server is running:
python examples/mcp_client_streamable_http.py
📄 License
Licensed under the Apache License 2.0.
Metadata
Release files for iflow-mcp_expediagroup-expedia-travel-recommendations-mcp 1.0.2
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_expediagroup_expedia_travel_recommendations_mcp-1.0.2.tar.gz | 18.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_expediagroup_expedia_travel_recommendations_mcp-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.9 kB
Release files / iflow_mcp_expediagroup_expedia_travel_recommendations_mcp-1.0.2.tar.gz
| Download URL | iflow_mcp_expediagroup_expedia_travel_recommendations_mcp-1.0.2.tar.gz |
|---|---|
| Size | 18.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f350a6293825f247597bb96c0641517a3699642c4251105078b2e1e2acc84ac0
|
|
BLAKE2b-256 checksum How to use checksums |
a930b21523dbe43e6b6d6a3e9318e48abf12e6d38b6be7c6611b1654c33e6158
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_expediagroup_expedia_travel_recommendations_mcp-1.0.2-py3-none-any.whl
| Download URL | iflow_mcp_expediagroup_expedia_travel_recommendations_mcp-1.0.2-py3-none-any.whl |
|---|---|
| Size | 18.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a1f3677c6ea63c2e83d6dbf3fb14a134ad345561a4c35e55503bac66be39224e
|
|
BLAKE2b-256 checksum How to use checksums |
085ab45ad9e8fd9f59d9151028e81783e2ce144b5e7934d9404c5719dff1cf2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|