Skip to content

ExpediaGroup/expedia-travel-recommendations-mcp

🌍 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.

About

An MCP (Model Context Protocol) server for the Expedia Travel Recommendation Service API, supporting both stdio and streamable-http protocols for flexible integration.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors