Amadeus Flight Search
STDIOMCP server connecting to Amadeus API for flight search, booking, and analysis capabilities.
MCP server connecting to Amadeus API for flight search, booking, and analysis capabilities.
This is a Model Context Protocol (MCP) server that connects to the Amadeus API to provide flight search, booking, and analysis capabilities for AI assistants.
The server provides several pre-configured prompts for common travel planning scenarios:
analyze-flight-prices
): Analyze flight prices for a route with insights on pricing trendsfind-best-deals
): Find the best flight deals for a specific route and dateplan-multi-city-trip
): Plan a complete multi-city itinerary with optimal routingfind-cheapest-travel-dates
): Identify the most economical dates to travelgit clone https://github.com/yourusername/amadeus-mcp-server.git
cd amadeus-mcp-server
npm install
.env
file in the root directory with your Amadeus API credentials:AMADEUS_CLIENT_ID=your_client_id
AMADEUS_CLIENT_SECRET=your_client_secret
Build and start the server:
npm run build
npm start
For development:
npm run dev
This project uses Jest for testing and Biome for linting and formatting.
Run unit tests:
npx jest
Run tests with watch mode:
npx jest --watch
Run tests with coverage:
npx jest --coverage
Run integration tests (requires Amadeus API credentials):
npm run test:integration
Run linting:
npm run lint
Format code:
npm run format
The project includes comprehensive integration tests that verify the server's interaction with the real Amadeus API. These tests help ensure that our API clients work correctly with the actual API endpoints and handle responses appropriately.
Amadeus API Credentials: Tests require valid Amadeus API credentials in the .env
file:
AMADEUS_CLIENT_ID=your_client_id
AMADEUS_CLIENT_SECRET=your_client_secret
Test Environment: Tests are configured to use the Amadeus Test Environment, not the production API.
npm run test:integration
The integration tests are located in __tests__/integration
and validate the following API features:
API Rate Limits: The tests include automatic rate limit handling with exponential backoff to avoid API throttling. When running tests frequently, you may still encounter rate limits.
Conditional Testing: Tests are designed to skip automatically if API credentials are missing, allowing the test suite to run without errors in environments without credentials.
Test in Isolation: When developing a new feature, you can run specific test files:
npx jest __tests__/integration/flight-search.test.js
Longer Timeouts: Integration tests use longer timeouts (60 seconds) to accommodate network latency and retries.
Mock for CI/CD: For continuous integration pipelines where real API access isn't available, use __tests__/amadeus-mock.test.js
which runs without actual API calls.
To use this MCP server with OpenAI's Assistant API or other compatible AI systems, configure the assistant to connect to this server's endpoint.
The server provides the following tools:
search-flights
Search for flight offers between two locations.
search-airports
Search for airports by keyword, city name, or IATA code.
flight-price-analysis
Get price metrics for a flight route to determine if current prices are high or low.
get-flight-details
Get detailed information about a specific flight offer.
find-cheapest-dates
Find the cheapest dates to fly for a given route.
The server provides schema resources for:
schema://flight-offers
)schema://airports
)MIT