MCP server for searching and comparing flights with real-time pricing from multiple airlines
Searches live flight offers between an origin and destination for given travel dates. Supports one-way and round-trip searches with flexible passenger counts and cabin class. Returns price-ranked results grouped by number of stops, showing the cheapest options from multiple airlines and booking platforms.
This is a well-designed read-only flight search MCP server with no authentication required (appropriate for its public API nature). No sensitive credentials, malicious patterns, or dangerous operations detected. Permissions are narrowly scoped to HTTP network access only, matching the server's stated purpose. Minor code quality observations noted but do not materially affect security.
1 file analyzed · 3 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
Once installed, try these example prompts and explore these capabilities:
From the project's GitHub README.
Free, no-login MCP server for searching and comparing flights with real-time pricing from multiple airlines and booking platforms worldwide.
Endpoint:
https://mcp.octotrip.app/flights/mcp

OctoTrip is free to use. Booking links contain affiliate attribution -- OctoTrip may earn a commission at no extra cost to you. Search results are ranked by price within each stop-count group, not by affiliate payout.
Add to your MCP client configuration:
{
"mcpServers": {
"octotrip-flights": {
"url": "https://mcp.octotrip.app/flights/mcp"
}
}
}
No API key or login required.
searchSearches live flight offers between an origin and destination for given travel dates. Supports one-way and round-trip searches with flexible passenger counts and cabin class. Returns price-ranked results grouped by number of stops, showing the cheapest options from multiple airlines and booking platforms. The tool queries external flight aggregator APIs in real time and includes affiliate booking links. It does not book flights, modify reservations, charge users, or store user data.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
origin | string | yes | -- | Departure city, airport name, or IATA code (e.g. "Frankfurt", "JFK") |
destination | string | yes | -- | Arrival city, airport name, or IATA code |
departure_date | string | yes | -- | Departure date (YYYY-MM-DD, DD.MM.YYYY, or natural-language) |
return_date | string | no | -- | Return date for round-trip. Omit for one-way |
adults | integer | no | 1 | Number of adult passengers (1-9) |
children | integer | no | 0 | Number of children aged 2-11 (0-9) |
infants | integer | no | 0 | Number of infants under 2 (0-9) |
trip_class | string | no | "Y" | Cabin class: Y for economy, C for business |
currency | string | no | "EUR" | ISO 4217 currency code (EUR, USD, GBP, etc.) |
locale | string | no | "en" | Response language code (en, de, etc.) |
Results are grouped by number of stops with the cheapest options per group:
{
"results": [
{
"airline": "Lufthansa",
"airline_code": "LH",
"alliance": "Star Alliance",
"flight_numbers": ["LH120", "LH121"],
"is_direct": true,
"stops": 0,
"total_duration_minutes": 110,
"outbound": {
"departure": "FRA",
"arrival": "MUC",
"departure_time": "18:15",
"arrival_time": "19:10",
"departure_date": "2026-07-15",
"arrival_date": "2026-07-15",
"duration_minutes": 55,
"stops": 0,
"legs": [
{
"flight_number": "LH120",
"carrier": "Lufthansa",
"aircraft": "Airbus A319",
"departure": "FRA",
"arrival": "MUC",
"departure_time": "18:15",
"arrival_time": "19:10",
"departure_date": "2026-07-15",
"arrival_date": "2026-07-15",
"duration_minutes": 55
}
]
},
"return": { ... },
"price": 292.39,
"currency": "EUR",
"baggage": "No checked bag, Cabin bag: 1 piece(s)",
"gate": "City.Travel",
"booking_url": "https://...",
"link_type": "affiliate",
"affiliate_disclosure": "This link contains affiliate attribution. OctoTrip may earn a commission at no extra cost to you.",
"tags": ["convenient_ticket", "direct"]
}
],
"total": 6,
"total_available": 876,
"origin_resolved": { "iata": "FRA", "name": "Frankfurt Airport", "city": "Frankfurt am Main", "country_code": "DE" },
"destination_resolved": { "iata": "MUC", "name": "Munich Airport", "city": "Munich", "country_code": "DE" },
"validity": "Results and booking links are valid for approximately 15 minutes.",
"query": { ... }
}
Search results and booking links are valid for approximately 15 minutes. Flight prices are determined through a real-time bidding process and are not guaranteed beyond this window. If a user wants to book, they should do so promptly. For stale results, run a new search.
The server returns structured errors with suggestions:
airport_not_found -- airport could not be resolved. Try an IATA code, city name, or airport name.disambiguation_needed -- multiple airports found (e.g. "New York" returns JFK, LGA). Pick one and retry.invalid_date -- date format not recognized. Use YYYY-MM-DD, DD.MM.YYYY, or similar.no_results -- no flights available for the given criteria. Try different dates or a nearby airport.Add to claude_desktop_config.json:
{
"mcpServers": {
"octotrip-flights": {
"url": "https://mcp.octotrip.app/flights/mcp"
}
}
}
Add to your MCP settings:
{
"mcpServers": {
"octotrip-flights": {
"url": "https://mcp.octotrip.app/flights/mcp"
}
}
}
Add to your Cline MCP settings:
{
"mcpServers": {
"octotrip-flights": {
"url": "https://mcp.octotrip.app/flights/mcp"
}
}
}
Install via Smithery:
npx -y @smithery/cli install xltnapps/octotrip-flights --client claude
A complete MCP session using curl (initialize, list tools, call search):
# 1. Initialize
curl -s -X POST https://mcp.octotrip.app/flights/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": {"name": "example", "version": "1.0"}
}
}'
# 2. List tools
curl -s -X POST https://mcp.octotrip.app/flights/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'
# 3. Search
curl -s -X POST https://mcp.octotrip.app/flights/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0", "id": 3, "method": "tools/call",
"params": {
"name": "search",
"arguments": {
"origin": "FRA",
"destination": "BCN",
"departure_date": "2026-08-01"
}
}
}'
Transport: stateless streamable HTTP. Responses use text/event-stream (SSE). No session persistence or resumability. Rate limit: 1 request/second with burst capacity of 5.
This server does not log IP addresses, search queries, or any user-identifiable data. See PRIVACY.md for full details including sample log entries.
To report a vulnerability, see SECURITY.md.
MIT
Be the first to review this server!
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption