Skip to main content

Amadeus Connector

Enterprise Feature

The community build exposes Amadeus as a stub so teams can discover the connector surface, but the full working connector requires a paid AxonFlow tier. Keep this page public as a technical trial guide for travel-agent and enterprise-assistant use cases.

The Amadeus connector enables AxonFlow agents to interact with the Amadeus Global Distribution System (GDS) for flight search, hotel availability, and airport lookups with built-in policy enforcement and rate limit management.

Overview

PropertyValue
Typeamadeus
EditionEnterprise
Auth MethodsOAuth 2.0 (Client Credentials)
Capabilitiesquery, flight search, airport lookup, rate limiting

Use Cases

  • Build AI travel agents that search flights with corporate policy enforcement
  • Power hotel search and comparison workflows
  • Look up airport information and IATA codes for trip planning
  • Enforce travel budget limits automatically through AxonFlow policies

Availability Note

  • Public docs: available as a technical reference and upgrade path
  • Community build: connector surface is present, but requests return an enterprise-feature error
  • Paid tiers: full connector implementation is available for real travel workflows

Prerequisites

  • AxonFlow Enterprise license (requires Enterprise Edition)
  • Amadeus for Developers account (developer portal)
  • API Key and API Secret from the Amadeus Self-Service dashboard
  • For production: Amadeus production API credentials (separate from test environment)

Amadeus API Key Setup

  1. Register at developers.amadeus.com
  2. Create a new application in the My Self-Service dashboard
  3. Copy the API Key and API Secret
  4. For production access, apply for production credentials through the Amadeus portal

Configuration

Environment Variables

# Required
MCP_amadeus_API_KEY="your-amadeus-api-key"
MCP_amadeus_API_SECRET="your-amadeus-api-secret"

# Optional
MCP_amadeus_ENVIRONMENT="production" # "test" or "production" (default: test)
MCP_amadeus_TIMEOUT="30s"
MCP_amadeus_MAX_RETRIES="3"
MCP_amadeus_RATE_LIMIT="10" # Requests per second (test: 1/sec, production: varies)

Configuration Options

OptionTypeRequiredDefaultDescription
api_keystringYes-Amadeus API Key
api_secretstringYes-Amadeus API Secret
environmentstringNotestAPI environment (test or production)
timeoutstringNo30sRequest timeout
max_retriesintegerNo3Maximum retry attempts
rate_limitintegerNo10Max requests per second

Connector Config (Customer Portal)

{
"name": "amadeus-travel",
"type": "amadeus",
"options": {
"environment": "production",
"timeout": 30,
"max_retries": 3,
"rate_limit": 10
},
"credentials": {
"api_key": "your-amadeus-api-key",
"api_secret": "your-amadeus-api-secret"
}
}

Installation

Install the Amadeus connector via the connector marketplace API:

curl -X POST http://localhost:8081/api/v1/connectors/amadeus/install \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"name": "amadeus-travel",
"config": {
"api_key": "your-amadeus-api-key",
"api_secret": "your-amadeus-api-secret",
"environment": "production"
}
}'

Operations

Search Flights

curl -X POST https://your-axonflow.example.com/mcp/resources/query \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"connector": "amadeus-travel",
"statement": "search_flights",
"parameters": {
"originLocationCode": "JFK",
"destinationLocationCode": "CDG",
"departureDate": "2025-03-15",
"returnDate": "2025-03-22",
"adults": 1,
"travelClass": "ECONOMY",
"nonStop": false,
"max": 10
}
}'

Response:

{
"success": true,
"rows": [
{
"id": "1",
"source": "GDS",
"numberOfBookableSeats": 9,
"itineraries": [
{
"duration": "PT8H10M",
"segments": [
{
"departure": {"iataCode": "JFK", "at": "2025-03-15T18:00:00"},
"arrival": {"iataCode": "CDG", "at": "2025-03-16T07:10:00"},
"carrierCode": "AF",
"number": "9",
"aircraft": {"code": "77W"},
"duration": "PT7H10M"
}
]
}
],
"price": {
"currency": "USD",
"total": "485.00",
"grandTotal": "485.00"
}
}
],
"row_count": 1,
"duration_ms": 1200,
"connector": "amadeus-travel"
}

Search Hotels

curl -X POST https://your-axonflow.example.com/mcp/resources/query \
-d '{
"connector": "amadeus-travel",
"statement": "search_hotels",
"parameters": {
"cityCode": "PAR",
"checkInDate": "2025-03-15",
"checkOutDate": "2025-03-22",
"adults": 2,
"roomQuantity": 1,
"ratings": "4,5",
"priceRange": "100-300",
"currency": "EUR"
}
}'

Response:

{
"success": true,
"rows": [
{
"hotel": {
"hotelId": "HLPAR123",
"name": "Hotel Example Paris",
"cityCode": "PAR",
"rating": "4"
},
"offers": [
{
"id": "offer-1",
"checkInDate": "2025-03-15",
"checkOutDate": "2025-03-22",
"room": {"type": "DOUBLE"},
"price": {
"currency": "EUR",
"total": "1680.00"
}
}
]
}
],
"row_count": 1,
"duration_ms": 950,
"connector": "amadeus-travel"
}

Look Up Airport

curl -X POST https://your-axonflow.example.com/mcp/resources/query \
-d '{
"connector": "amadeus-travel",
"statement": "lookup_airport",
"parameters": {
"keyword": "Paris",
"subType": "AIRPORT"
}
}'

Response:

{
"success": true,
"rows": [
{
"iataCode": "CDG",
"name": "PARIS CHARLES DE GAULLE",
"cityName": "PARIS",
"countryCode": "FR"
},
{
"iataCode": "ORY",
"name": "PARIS ORLY",
"cityName": "PARIS",
"countryCode": "FR"
}
],
"row_count": 2,
"duration_ms": 85,
"connector": "amadeus-travel"
}

Supported Operations

OperationDescription
search_flightsSearch flight offers with real-time pricing
search_hotelsSearch hotel availability and rates (stub: returns empty results in current implementation)
lookup_airportLook up airports and cities by keyword or IATA code

Limitations

  • Test environment: The test environment returns limited, cached data. Results may not reflect real-time availability or pricing.
  • Rate limits: Test environment is limited to 1 request per second and 10 transactions per second. Production limits vary by plan.
  • Search results: Flight search returns a maximum of 250 results per request. Use max parameter to limit.
  • Date range: Flight searches are limited to 365 days from the current date.
  • Booking: The connector supports search and lookup operations only. Booking and payment operations require direct Amadeus API integration.

Troubleshooting

Authentication Failed (401)

  • Verify the API Key and API Secret are correct
  • Check that the credentials match the environment (test vs. production keys are different)
  • Ensure the Amadeus application is active in the developer portal

Rate Limited (429)

  • The connector automatically retries with backoff on 429 responses
  • Reduce rate_limit to match your plan's allowance
  • Test environment: maximum 1 request per second

No Results Returned

  • Verify IATA codes are correct (use lookup_airport to find codes)
  • Check date formats (must be YYYY-MM-DD)
  • For the test environment, only certain city pairs return results
  • Ensure the departure date is in the future

Health Check

curl https://your-axonflow.example.com/mcp/connectors/amadeus-travel/health

Response:

{
"healthy": true,
"latency_ms": 200,
"details": {
"environment": "production",
"token_expires_in": "1200s",
"rate_limit_remaining": "8"
}
}