Connect your AI Agents to Duffel in minutes

Merge lets you securely connect your agents to Duffel and thousands of tools instantly

Available tools

create_batch_offer_request

Create a batch flight search. Searches multiple airlines asynchronously and returns results as they come in.

get_batch_offer_request

Get batch offer request status and results by ID. Poll until status is complete to get all offers.

create_offer_request

Search for flights by creating an offer request. Specify origin, destination, dates, passengers, and cabin class. Returns available offers.

list_offer_requests

List offer requests with pagination. Use cursor from page_info for next page.

get_offer_request

Get offer request details by ID. Returns the original search parameters and any returned offers.

list_offers

List offers for an offer request with pagination. Sort by total_amount or total_duration. Use cursor from page_info for next page.

get_offer

Get offer details by ID. Optionally return available services like bags and seats.

update_offer_passenger

Update passenger details on an offer. Set name, loyalty accounts, or identity documents before booking.

create_order_cancellation

Initiate cancellation of an order. Returns refund details and expiry. Must confirm with confirm_order_cancellation before expiry.

list_order_cancellations

List order cancellations with pagination. Optionally filter by order ID. Use cursor from page_info for next page.

get_order_cancellation

Get order cancellation details by ID. Returns refund amount, status, and expiry time.

confirm_order_cancellation

Confirm an order cancellation. Must be confirmed before expiry. This action is irreversible.

create_order_change_request

Request to change an order's flights. Specify slices to add and remove. Returns available change offers.

get_order_change_request

Get order change request details by ID. Returns available change offers.

list_order_change_offers

List change offers for an order change request. Compare prices and penalties. Use cursor from page_info for next page.

create_order_change

Select an order change offer to proceed with. Must confirm with confirm_order_change before expiry.

get_order_change

Get order change details by ID. Returns change costs, new total, and confirmation status.

confirm_order_change

Confirm an order change. Optionally provide payment if the change costs extra. This action is irreversible.

create_order

Book a flight by creating an order. Requires offer IDs, payment details, and passenger information. Use list_offers to find offers first.

list_orders

List orders with pagination. Filter by booking reference or awaiting payment status. Use cursor from page_info for next page.

get_order

Get order details by ID. Returns booking reference, passengers, slices, services, and payment status.

update_order

Update order metadata. Only custom metadata can be changed after booking.

create_partial_offer_request

Search for flights with partial offers. Returns offers grouped by slice, allowing mix-and-match of airlines per leg.

get_partial_offer_request

Get partial offer request details by ID. Returns partial offers grouped by slice.

create_payment

Create a payment for an order. Required for orders with awaiting_payment status. Use get_order to check payment status first.

list_payments

List payments with pagination. Optionally filter by order ID. Use cursor from page_info for next page.

get_payment

Get payment details by ID. Returns amount, currency, type, and associated order.

list_airlines

List airlines with pagination. Use cursor from page_info for next page.

get_airline

Get airline details by ID. Returns name, IATA code, logos, and conditions of carriage URL.

list_airports

List airports with pagination. Use cursor from page_info for next page.

get_airport

Get airport details by ID. Returns name, IATA/ICAO codes, city, country, coordinates, and timezone.

list_aircraft

List aircraft types with pagination. Use cursor from page_info for next page.

get_aircraft

Get aircraft type details by ID. Returns name and IATA code.

list_cities

List cities with pagination. Use cursor from page_info for next page.

get_city

Get city details by ID. Returns name, IATA code, and country code.

suggest_places

Search airports and cities by name. Returns matching places for use in flight searches.

list_loyalty_programs

List airline loyalty programmes with pagination. Use cursor from page_info for next page.

get_loyalty_program

Get loyalty programme details by ID. Returns airline name and programme name.

get_seat_maps

Get seat maps for an offer. Returns cabin layouts with rows, seats, and availability for each flight segment.

validate_credential

Validate Duffel API credentials by testing authentication with a lightweight API call. Returns {success, message}.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Duffel  MCP server

FAQs on using Merge's Duffel  MCP server

What is a Duffel MCP?

It's an MCP server that connects your agents to Duffel's travel booking API via tools. Your agents can invoke these tools to search for flights, book orders, manage itinerary changes, process cancellations, and more.

Duffel doesn't offer an MCP server purpose built for its platform, but you can use one from a third-party platform, like Merge Agent Handler.

How can I use the Duffel MCP server?

The use cases naturally depend on the agent you've built, but here are a few common ones:

  • Automated flight booking: When a traveler submits a trip request via an internal tool or form, an agent searches for available flights through Duffel, selects the best option based on company travel policy, and completes the booking automatically
  • Trip change handling: When a traveler reports a schedule conflict via Slack, an agent retrieves their current order from Duffel, fetches available change offers, and presents options before confirming the modification
  • Cancellation and refund processing: When a trip is cancelled in a travel management system, an agent creates and confirms the cancellation in Duffel, then logs the refund details to the expense platform
  • Itinerary lookup for travel assistants: A corporate travel assistant agent retrieves a traveler's confirmed order from Duffel, including flight segments, seat assignments, and passenger details, and surfaces a clean summary in a chat interface

What are popular tools for Duffel's MCP server?

Here are some of the most commonly used tools:

  • create_offer_request: initiates a flight search by submitting origin, destination, dates, and passenger details to Duffel. Call this at the start of any booking workflow to retrieve a set of available fare options
  • list_offers: retrieves the available fares returned from a completed offer request. Use this when an agent needs to evaluate and rank flight options before selecting one to book
  • create_order: books a selected offer by creating a confirmed order with passenger details and payment. Call this when the agent is ready to finalize a booking after a fare has been chosen
  • get_order: fetches the full details of a confirmed booking, including flight segments, passenger info, and order status. Helpful when an agent needs to surface itinerary details or verify order state before taking a downstream action
  • create_order_cancellation: initiates a cancellation request for an existing order. Use this when an agent detects a trip cancellation event in another system and needs to begin the Duffel-side process
  • confirm_order_cancellation: finalizes a pending cancellation and processes the refund. Call this after reviewing cancellation conditions to complete the flow and record the outcome in the booking system

What makes Merge Agent Handler's Duffel MCP server better than alternative Duffel MCP servers?

Several factors make Merge Agent Handler's Duffel MCP server worth choosing over a custom integration or community build:

  • Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For Duffel, this means you can prevent passenger details, payment information, and booking records from being exposed even when the agent has broad access to the orders API
  • Managed authentication and credentials: Merge stores and refreshes Duffel credentials on your behalf. You never expose raw API keys or OAuth tokens to an agent or manage token rotation manually
  • Real-time observability and audit trail: Every tool call made against Duffel is logged with timestamp, tool name, input parameters, and response metadata. Travel ops and finance teams can audit exactly what an agent booked, changed, or cancelled without any custom instrumentation
  • Tool Packs and controlled access: Tool Packs let you bundle specific Duffel tools with tools from other connectors into a single MCP endpoint, scoped to a specific use case. An agent gets exactly the tools it needs, nothing more

How can I start using Merge Agent Handler's Duffel MCP server?

You can take the following steps:

1. Create or log into your Merge Agent Handler account.

2. Install the Merge CLI by running pipx install merge-api, then run merge configure to link the CLI to your Merge account and merge login to authenticate your session.

3. Register the Agent Handler MCP server with Claude Code by running claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp, then open Claude Code and run /mcp to confirm agent-handler appears with a connected status.

4. Select agent-handler from the MCP list. This opens a browser window where you select which integrations to authenticate. Choose Duffel and complete the auth flow. Merge stores and manages the credentials going forward.

5. Open a Claude Code session and start querying Duffel data directly. The first time you use a Duffel tool, a Magic Link may appear to complete connector authentication.

If you want to connect Merge Agent Handler's Duffel MCP with internal or customer-facing agentic products, you can follow the steps in our docs.

Can employees use Merge Agent Handler to connect their AI tools to Duffel?

Yes, Agent Handler for Employees lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to Duffel without bypassing IT governance.

Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Agent Handler and gets individual credentials tied to their identity.

IT also provisions access by role or group via SCIM. A travel manager, for example, gets Duffel access to book and manage flights, Expensify to track and reconcile travel costs, and Slack to coordinate itinerary approvals; while a travel coordinator gets Duffel access to handle booking changes and cancellations, Google Calendar to sync trip dates with team availability, and Gmail to manage traveler communications.

Every tool call an employee's AI makes to Duffel is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.

Explore other MCP servers built and managed by Merge

clinicaltrials
ClinicalTrials.gov
cloudflare
Cloudflare
cms_coverage
CMS Coverage
coda
Coda
compliancequest
ComplianceQuest
concur
Concur
confluence
Confluence
contentful
Contentful
crustdata
Crustdata
databricks
Databricks
datadog
Datadog
docusign
DocuSign
doordash
DoorDash
dropbox
Dropbox
dynamics365
Dynamics 365 Sales
exa
Exa
expensify
Expensify
factset
FactSet
figma
Figma
firecrawl
Firecrawl
fireflies
Fireflies
firehydrant
FireHydrant
foursquare
Foursquare
frameio
Frame.io

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now