# Duffel Flights MCP MCP

> Duffel Flights connects your AI client directly to real-time flight data, letting you search for and book travel without leaving your chat window. Use it to request complex itineraries, manage existing bookings, process payments for held orders, or look up global airport codes—all in natural language.

## Overview
- **Category:** ecommerce
- **Price:** Free
- **Tags:** flight-booking, airline-api, travel-management, order-fulfillment, real-time-search, itinerary-management

## Description

When you connect this MCP, your agent gains immediate access to the entire Duffel infrastructure. Instead of opening multiple tabs and copy-pasting data between airline websites, you simply tell your AI what you need. It handles the complex steps: first, it finds available flight options based on your origin, destination, and dates; then, if you select one, it creates a formal booking order for you. You can even process payments directly through the agent. Plus, you get full visibility into global travel data, including every major airport and airline directory. This capability makes planning corporate trips or personal vacations happen in a single conversational flow, making Vinkius the central hub for your entire workflow.

## Tools

### create_flight_offer_request
Starts a search for available flights by specifying the origin, destination, and number of passengers.

### create_flight_order
Finalizes a reservation by selecting an offer and providing all required passenger details to book the flight.

### list_aircraft
Retrieves a list of specific aircraft models used by airlines for general reference.

### list_airlines
Fetches a complete, updated directory listing of all registered airlines.

### list_airports
Retrieves a comprehensive list of global airports and their associated codes.

### list_flight_offers
Gets all specific, available flight options for an offer request you have already started.

### list_flight_orders
Displays a list of every past and current booking order linked to your account history.

### pay_for_flight_order
Processes the necessary payment for any flight order that was previously placed on hold status.

## Prompt Examples

**Prompt:** 
```
Search for a flight from London (LHR) to New York (JFK) on 2024-12-01.
```

**Response:** 
```
Creating offer request... I found several options, including a direct flight with British Airways for $550. Would you like to see the full list of offers?
```

**Prompt:** 
```
List all airports in Brazil.
```

**Response:** 
```
Retrieving airports... I found major hubs including Guarulhos (GRU), Congonhas (CGH), and Galeão (GIG). Would you like the ICAO codes for any of them?
```

## Capabilities

### Find flight options
Request several potential flights using origin, destination, and dates to see what's available.

### Create a booking order
Select an offer and provide passenger details to generate a concrete flight reservation.

### Process held payments
Pay for a reserved but unconfirmed trip using the agent, completing the transaction instantly.

### List global airports
Get a directory of all known airports and their associated codes worldwide.

### Track existing bookings
View a list of every flight order currently linked to your account for record keeping.

## Use Cases

### Handling last-minute changes for a client.
A travel agent needs to switch a booked trip. They use the tool to check current availability via `create_flight_offer_request`, find new options, and then confirm the change by calling `create_flight_order` so they can update the itinerary immediately.

### Managing corporate travel budgets.
A corporate manager needs to track spending. They use `list_flight_orders` to pull a list of all company bookings for the quarter, making reconciliation simple and fast.

### Finalizing an itinerary that requires payment.
The agent confirms the flight details but needs to wait for client approval. They use `create_flight_offer_request` first, then when approved, they trigger `pay_for_flight_order` to lock in the booking.

### Planning a complex multi-city trip.
The planner starts by getting general data using `list_airports` to verify all necessary hubs are active, then uses `create_flight_offer_request` for each leg of the journey.

## Benefits

- You instantly get the full directory of airlines and airports. Instead of looking up codes on Wikipedia, you just ask to `list_airports` or `list_airlines` and get verified data.
- The process moves from searching to booking without friction. You first use `create_flight_offer_request`, then review all options with `list_flight_offers`, ensuring you don't miss a better deal.
- It handles complex transactions. If you put an order on hold, you can complete the payment instantly using `pay_for_flight_order` right through your chat client.
- You maintain full control over your travel records. Running `list_flight_orders` gives you immediate access to every booking associated with your account history.
- It simplifies data collection. Need a quick list of planes or airports? The tools let you call `list_aircraft` and `list_airports` directly, saving manual research time.

## How It Works

The bottom line is that you treat the entire travel planning and booking system like one conversation with your AI client.

1. Subscribe to the Duffel Flights MCP and enter your unique Duffel Access Token.
2. Your AI client uses natural language commands to trigger searches, like asking it to find flights between two cities.
3. The agent returns structured data, allowing you to confirm bookings, list airlines, or process payments directly through conversation.

## Frequently Asked Questions

**How do I start searching using the Duffel Flights MCP?**
You begin by calling `create_flight_offer_request`. You need to provide the origin, destination, and a JSON array specifying the passengers for that initial search.

**Can I use list_airports with Duffel Flights to check codes?**
Yes. The `list_airports` tool retrieves all global airport data and their corresponding IATA codes, giving you a reference directory for your planning.

**What happens if I try to book an order that already failed?**
You should run `list_flight_orders` first. This will show the current status of the booking, letting you know exactly which steps need repeating or correcting before attempting a new `create_flight_order`.

**What credentials do I need before running a tool like create_flight_offer_request?**
You must first subscribe and provide your Duffel Access Token through Vinkius. This token authorizes your agent to communicate with the underlying travel infrastructure. Without it, none of the tools will execute.

**How detailed are the results when I call list_flight_offers?**
The offers returned include critical details like the specific fare class, total cost breakdown, and operating carrier information. This helps your agent select the best option rather than just providing a price point.

**What are the prerequisites for successfully executing create_flight_order?**
You must first generate an offer request using create_flight_offer_request, and then have a specific offer ID. The agent needs both the selected offer data and full passenger details to book.

**If I call list_airlines repeatedly, are there rate limits I should watch out for?**
Yes, high-volume calls to any directory function, like list_airlines, can hit API rate limits. Your agent should implement exponential backoff logic when encountering 429 errors.

**Can I use pay_for_flight_order if the reservation was put on hold but hasn't been confirmed yet?**
The payment tool requires a valid, existing flight order ID that is currently in a 'held' or pending state. If the order status has changed, you must first check it using list_flight_orders.