MCP-Amadeus MCP Server for Flight Offers
Search flights with the MCP-Amadeus MCP server integrating Amadeus Flight Offers Search API for natural-language queries from MCP-compatible clients.
npx -y @donghyun-chae/mcp-amadeusOverview
MCP-Amadeus is a community-developed Model Context Protocol (MCP) server that connects MCP-compatible clients to the Amadeus Flight Offers Search API. It exposes a simple tool interface so an LLM-based assistant (for example, Claude Desktop) can handle natural-language flight search requests and return structured flight offers from Amadeus.
This server is helpful when you want to combine conversational AI with real-time flight data: users can ask in plain English (e.g., “nonstop flights from JFK to LHR on June 15 for 1 adult”) and the assistant will invoke the Amadeus API via MCP to fetch matching flight options. The project uses the official amadeus-python SDK and runs as a local MCP server process that your client can call as a tool.
Note: This project is open-source and not affiliated with or endorsed by Amadeus IT Group. Amadeus® is a registered trademark of Amadeus IT Group.
Features
- Flight Offers Search via Amadeus Flight Offers Search API
- Natural-language integration: MCP tool enables assistants to translate user intent into API queries
- Support for one-way and round-trip searches (departure/return dates)
- Passenger configuration (adults, children, infants) and cabin class
- Optional filters: non-stop, currency, max price, and maximum number of results
- Returns structured JSON with airlines, times, durations, and pricing details
- Easy to register with MCP-compatible clients (e.g., Claude Desktop)
Installation / Configuration
Prerequisites: Python environment, Amadeus developer account (Client ID & Client Secret), and an MCP-compatible client.
- Install via Smithery (automated for Claude Desktop)
- Clone and install manually
# install Python dependencies (project uses uv for launching locally)
# or use the project's helper if provided:
- Configure environment variables
Copy the example env file and add your Amadeus credentials:
Edit .env:
AMADEUS_CLIENT_ID=your_client_id
AMADEUS_CLIENT_SECRET=your_client_secret
# Optional: override behavior (see repo README for additional variables)
Create an Amadeus app and obtain credentials at: https://developers.amadeus.com/.
- Register the server with your MCP client
Example configuration for Claude Desktop (path and uv binary will vary):
Replace paths with your actual locations. Start the server and connect your client so the tool becomes available to the assistant.
Available Tools
get_flight_offers — Fetch flight offers from Amadeus
Request (tool invocation from MCP client):
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| origin | string | Yes | IATA code of departure airport (e.g., JFK) |
| destination | string | Yes | IATA code of arrival airport (e.g., LHR) |
| departure_date | string | Yes | Departure date in YYYY-MM-DD |
| return_date | string | No | Return date in YYYY-MM-DD (omit for one-way) |
| adults | integer | Yes | Number of adults (1–9). Default: 1 |
| children | integer | No | Number of children (2–11) |
| infants | integer | No | Number of infants (≤2) |
| travel_class | string | No | Cabin: ECONOMY, PREMIUM_ECONOMY, BUSINESS, FIRST |
| non_stop | boolean | No | true to require non-stop flights |
| currency_code | string | No | ISO 4217 currency code (e.g., USD) |
| max_price | integer | No | Max price per traveler |
| max | integer | No | Max number of offers to return (default 250) |
Output: JSON array of flight offers returned by the Amadeus API. Each offer typically includes itinerary segments, departure/arrival times, airline codes, duration, and price breakdown.
Minimal sample response (simplified):
Use Cases
- Conversational travel assistant: Let users request flights in plain language (dates, airlines, nonstop) and return structured options for the assistant to present or compare.
- Backend integration for travel chatbots: Use MCP-Amadeus as a tool endpoint so your LLM can call it as needed without embedding credentials in prompts.
- Rapid prototyping: Experiment with itinerary filters (cabin class, stops, max price) from an LLM-driven workflow.
- Multi-step planning flows: Combine flight searches with hotel or car rental tools in an MCP-enabled assistant to build end-to-end travel itineraries.
Example natural-language prompt handled by the assistant: “I’m looking for nonstop flights from New York (JFK) to London (LHR) on 2025-06-15 for 1 adult, economy — show top 5 cheapest.”
The assistant translates this into a get_flight_offers invocation and returns a list of offers the user can select from.
References & License
- Amadeus Python SDK: https://github.com/amadeus4dev/amadeus-python
- Model Context Protocol (MCP): https://github.com/modelcontextprotocol
- Amadeus API docs: https://developers.amadeus.com/
License: MIT License. See the repository for full details.