Skip to main content

🌍 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 stdio and streamable-http protocols
  • 🏨 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-http protocol.

  • POST /expedia/hotels → Hotel recommendations
  • POST /expedia/flights → Flight recommendations
  • POST /expedia/activities → Activity recommendations
  • POST /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 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)

Source distribution for expedia-travel-recommendations-mcp 1.0.2
File Size Uploaded
expedia_travel_recommendations_mcp-1.0.2.tar.gz 18.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for expedia-travel-recommendations-mcp 1.0.2
File Interpreter ABI Platform
expedia_travel_recommendations_mcp-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 36.5 kB

Release files / expedia_travel_recommendations_mcp-1.0.2.tar.gz

Download URL expedia_travel_recommendations_mcp-1.0.2.tar.gz
Size 18.7 kB
Tags Source
SHA-256 checksum
How to use checksums
940be9efda335c3962be5fd7c78be95909b74440317381585625f0852fdd3f8e
BLAKE2b-256 checksum
How to use checksums
502cbca7e523fe674bf169741d5cb8c2f8f6c776390f4b3b75c42e4f58b62ed0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2025.

Transparency log

Release files / expedia_travel_recommendations_mcp-1.0.2-py3-none-any.whl

Download URL expedia_travel_recommendations_mcp-1.0.2-py3-none-any.whl
Size 17.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
764ac13494b34f92de14a32b04fa27815735796eaf2118143dfc41180ba572a1
BLAKE2b-256 checksum
How to use checksums
5576e1d875a40bc606eff5376855df36901ce112892c2589192339f3651fb5d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.0

2 release files

0.1.8

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page