
Flight + Stay Search MCP (TypeScript)
A TypeScript implementation of a flight search MCP server that uses the Duffel API to search for flights. This MCP server provides tools to search for one-way, round-trip, and multi-city flights.
what is Flight + Stay Search MCP?
Flight + Stay Search MCP is a TypeScript implementation of a flight search server that utilizes the Duffel API to search for flights and accommodations. It allows users to find one-way, round-trip, and multi-city flights, as well as search for hotels and get guest reviews.
how to use Flight + Stay Search MCP?
To use the Flight + Stay Search MCP, follow these steps:
- Install dependencies using
npm install
. - Build the project with
npm run build
. - Start the server using
npm start
. - Set up your environment variables in a
.env
file with your Duffel API key.
key features of Flight + Stay Search MCP?
- Search for one-way, round-trip, and multi-city flights.
- Get detailed information about specific flight offers.
- Specify cabin class, number of passengers, and connection preferences.
- Filter by departure and arrival time windows.
- Search for travel stays (hotels/accommodations) and get guest reviews.
use cases of Flight + Stay Search MCP?
- Finding flights from one city to another for business or leisure.
- Planning multi-city trips with specific travel dates.
- Searching for hotels in a desired location with guest reviews.
FAQ from Flight + Stay Search MCP?
- Can I search for both flights and hotels?
Yes! The MCP allows you to search for flights and accommodations in one interface.
- Is there a test API key available?
Yes! You can start with a test API key (
duffel_test
) to try the functionality.
- What programming language is this project built with?
The project is built using TypeScript.
Flight + Stay Search MCP (TypeScript)
A TypeScript implementation of a flight & Stay search MCP server that uses the Duffel API to search for flights. This MCP server provides tools to search for one-way, round-trip, and multi-city flights.
Features
- Search for one-way, round-trip, and multi-city flights
- Get detailed information about specific flight offers
- Specify cabin class, number of passengers, and connection preferences
- Filter by departure and arrival time windows
- Search for travel stays (hotels/accommodations)
- Get guest reviews for a specific stay/hotel
Setup
-
Install dependencies:
npm install
-
Build the project:
npm run build
-
Start the server:
npm start
Environment Variables
Create a .env
file with:
DUFFEL_API_KEY=your_duffel_api_key
You can start with a test API key (duffel_test
) to try the functionality.
Using with Smithery
To publish this MCP to Smithery:
npx @smithery/cli publish
To run the published MCP:
npx @smithery/cli run @your-username/flights-mcp-ts --config "{\"duffelApiKey\":\"your_duffel_api_key\"}"
Available Tools
This MCP provides the following tools:
search_flights
- Search for one-way, round-trip, or multi-city flightsget_offer_details
- Get detailed information about a specific flight offersearch_multi_city
- A specialized tool for multi-city flight searchessearch_stays
- Search for travel stays (hotels/accommodations)get_stay_reviews
- Get guest reviews for a specific stay/hotel
Example Queries
- "Find flights from SFO to NYC on May 15, 2025"
- "Search for a round-trip flight from LAX to LHR departing June 10 and returning June 20"
- "Find business class flights from Tokyo to Paris for 2 adults"
- "Get details for flight offer [offer_id]"
- "Find hotels in London for 2 guests from 2025-06-10 to 2025-06-12"
- "Get reviews for stay [hotel_id]"
Stays/Hotel Search and Reviews
search_stays
)
1. Search for Stays (Parameters:
location
(string): City, airport code, or area to search for stayscheck_in_date
(string): Check-in date (YYYY-MM-DD)check_out_date
(string): Check-out date (YYYY-MM-DD)guests
(number): Number of guestsrooms
(number, optional): Number of roomsradius_km
(number, optional): Search radius in kilometers
Example Request:
{
"location": "London",
"check_in_date": "2025-06-10",
"check_out_date": "2025-06-12",
"guests": 2
}
Example Response:
{
"offers": [
{
"offer_id": "off_123",
"hotel_id": "acc_0000AWr2VsUNIF1Vl91xg0",
"hotel_name": "The Grand Hotel",
"address": "1 Main St, London",
"price": { "amount": "350.00", "currency": "GBP" },
"room_type": "Deluxe Suite",
"cancellation_policy": "Free cancellation until 24h before check-in"
}
]
}
Note: Use the hotel_id
from the search results as the stay_id
for reviews.
get_stay_reviews
)
2. Get Stay Reviews (Parameters:
stay_id
(string): The unique Duffel stay/hotel ID (from the search_stays result)after
(string, optional): Pagination cursor (after)before
(string, optional): Pagination cursor (before)limit
(number, optional): Max reviews to return (1-200)
Example Request:
{
"stay_id": "acc_0000AWr2VsUNIF1Vl91xg0"
}
Example Response:
{
"meta": { "limit": 50, "after": "..." },
"reviews": [
{
"text": "Excellent facilities. Polite staff.\nAir conditioning could use some maintenance.\n",
"score": 8.4,
"reviewer_name": "Bessie Coleman",
"created_at": "2025-01-01"
}
]
}
Local Development
For development with automatic reloading:
npm run dev
License
MIT