{
  "markdown": "# OctoTrip Flights MCP Server\n\n[![Glama Score](https://glama.ai/mcp/servers/OctoTrip/flights/badges/score.svg)](https://glama.ai/mcp/servers/OctoTrip/flights)\n[![Glimind reliability](https://glimind.com/v1/badge/mcp-registry%2Fapp.octotrip%2Fflights.svg)](https://glimind.com/tool/mcp-registry%2Fapp.octotrip%2Fflights?ref=badge)\n[![Uptime](https://img.shields.io/uptimerobot/ratio/30/m803370038-14af5f666d9552c6adf1178c)](https://stats.uptimerobot.com/ZEq8YVyOAu)\n\nFree, no-login MCP server for searching and comparing flights with real-time pricing from multiple airlines and booking platforms worldwide.\n\n**MCP Streamable HTTP Endpoint:**\n```\nhttps://mcp.octotrip.app/flights/mcp\n```\n\n![Demo](https://raw.githubusercontent.com/octotrip/rental-cars/main/claude.gif)\n\n## Related\n\n- [OctoTrip Rental Cars](https://github.com/octotrip/rental-cars) — rental car search MCP server\n\n## Affiliate Disclosure\n\nOctoTrip 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.\n\n## Quick Start\n\nAdd to your MCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"octotrip-flights\": {\n      \"url\": \"https://mcp.octotrip.app/flights/mcp\"\n    }\n  }\n}\n```\n\nNo API key or login required.\n\n## Use with...\n\n<details>\n<summary><strong>Claude Desktop</strong></summary>\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"octotrip-flights\": {\n      \"url\": \"https://mcp.octotrip.app/flights/mcp\"\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><strong>Cursor / Windsurf</strong></summary>\n\nAdd to your MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"octotrip-flights\": {\n      \"url\": \"https://mcp.octotrip.app/flights/mcp\"\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><strong>Cline</strong></summary>\n\nAdd to your Cline MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"octotrip-flights\": {\n      \"url\": \"https://mcp.octotrip.app/flights/mcp\"\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><strong>LobeHub</strong></summary>\n\n[![MCP Badge](https://lobehub.com/badge/mcp/xltnapps-octotrip-flights)](https://lobehub.com/mcp/xltnapps-octotrip-flights)\n\n</details>\n\n<details>\n<summary><strong>OpenClaw</strong></summary>\n\n```bash\nopenclaw plugins install clawhub:@xltnapps/octotrip-flights\n```\n\n</details>\n\n<details>\n<summary><strong>Smithery</strong></summary>\n\nInstall via [Smithery](https://smithery.ai/servers/xltnapps/octotrip-flights):\n\n```bash\nnpx -y @smithery/cli install xltnapps/octotrip-flights --client claude\n```\n\n</details>\n\n<details>\n<summary><strong>Hermes Agent</strong></summary>\n\n```bash\nhermes mcp add octotrip-flights --url https://mcp.octotrip.app/flights/mcp\nhermes mcp test octotrip-flights\n```\n\nOr add to `~/.hermes/config.yaml`:\n\n```yaml\nmcp_servers:\n  octotrip_flights:\n    url: \"https://mcp.octotrip.app/flights/mcp\"\n```\n\n</details>\n\n<details>\n<summary><strong>Stdio-only clients</strong></summary>\n\nFor MCP clients that only support stdio transport:\n\n```bash\nnpx mcp-remote https://mcp.octotrip.app/flights/mcp\n```\n\n</details>\n\n<details>\n<summary><strong>curl / Protocol Example</strong></summary>\n\nA complete MCP session using curl (initialize, list tools, call search):\n\n```bash\n# 1. Initialize\ncurl -s -X POST https://mcp.octotrip.app/flights/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"initialize\",\n    \"params\": {\n      \"protocolVersion\": \"2025-03-26\",\n      \"capabilities\": {},\n      \"clientInfo\": {\"name\": \"example\", \"version\": \"1.0\"}\n    }\n  }'\n\n# 2. List tools\ncurl -s -X POST https://mcp.octotrip.app/flights/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -d '{\"jsonrpc\": \"2.0\", \"id\": 2, \"method\": \"tools/list\"}'\n\n# 3. Search\ncurl -s -X POST https://mcp.octotrip.app/flights/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\", \"id\": 3, \"method\": \"tools/call\",\n    \"params\": {\n      \"name\": \"search\",\n      \"arguments\": {\n        \"origin\": \"FRA\",\n        \"destination\": \"BCN\",\n        \"departure_date\": \"2026-08-01\"\n      }\n    }\n  }'\n```\n\nTransport: stateless streamable HTTP. Responses use `text/event-stream` (SSE). No session persistence or resumability. Rate limit: 1 request/second with burst capacity of 5.\n\n</details>\n\n## Tool: `search`\n\nSearches 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.\n\n### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|---|---|---|---|---|\n| `origin` | string | yes | -- | Departure city, airport name, or IATA code (e.g. \"Frankfurt\", \"JFK\") |\n| `destination` | string | yes | -- | Arrival city, airport name, or IATA code |\n| `departure_date` | string | yes | -- | Departure date (YYYY-MM-DD, DD.MM.YYYY, or natural-language) |\n| `return_date` | string | no | -- | Return date for round-trip. Omit for one-way |\n| `adults` | integer | no | `1` | Number of adult passengers (1-9) |\n| `children` | integer | no | `0` | Number of children aged 2-11 (0-9) |\n| `infants` | integer | no | `0` | Number of infants under 2 (0-9) |\n| `trip_class` | string | no | `\"Y\"` | Cabin class: Y for economy, C for business |\n| `currency` | string | no | `\"EUR\"` | ISO 4217 currency code (EUR, USD, GBP, etc.) |\n| `locale` | string | no | `\"en\"` | Response language code (en, de, etc.) |\n\n### Response Format\n\nResults are grouped by number of stops with the cheapest options per group:\n\n```json\n{\n  \"results\": [\n    {\n      \"airline\": \"Lufthansa\",\n      \"airline_code\": \"LH\",\n      \"alliance\": \"Star Alliance\",\n      \"flight_numbers\": [\"LH120\", \"LH121\"],\n      \"is_direct\": true,\n      \"stops\": 0,\n      \"total_duration_minutes\": 110,\n      \"outbound\": {\n        \"departure\": \"FRA\",\n        \"arrival\": \"MUC\",\n        \"departure_time\": \"18:15\",\n        \"arrival_time\": \"19:10\",\n        \"departure_date\": \"2026-07-15\",\n        \"arrival_date\": \"2026-07-15\",\n        \"duration_minutes\": 55,\n        \"stops\": 0,\n        \"legs\": [\n          {\n            \"flight_number\": \"LH120\",\n            \"carrier\": \"Lufthansa\",\n            \"aircraft\": \"Airbus A319\",\n            \"departure\": \"FRA\",\n            \"arrival\": \"MUC\",\n            \"departure_time\": \"18:15\",\n            \"arrival_time\": \"19:10\",\n            \"departure_date\": \"2026-07-15\",\n            \"arrival_date\": \"2026-07-15\",\n            \"duration_minutes\": 55\n          }\n        ]\n      },\n      \"return\": { ... },\n      \"price\": 292.39,\n      \"currency\": \"EUR\",\n      \"baggage\": \"No checked bag, Cabin bag: 1 piece(s)\",\n      \"gate\": \"City.Travel\",\n      \"booking_url\": \"https://...\",\n      \"link_type\": \"affiliate\",\n      \"affiliate_disclosure\": \"This link contains affiliate attribution. OctoTrip may earn a commission at no extra cost to you.\",\n      \"tags\": [\"convenient_ticket\", \"direct\"]\n    }\n  ],\n  \"total\": 6,\n  \"total_available\": 876,\n  \"origin_resolved\": { \"iata\": \"FRA\", \"name\": \"Frankfurt Airport\", \"city\": \"Frankfurt am Main\", \"country_code\": \"DE\" },\n  \"destination_resolved\": { \"iata\": \"MUC\", \"name\": \"Munich Airport\", \"city\": \"Munich\", \"country_code\": \"DE\" },\n  \"validity\": \"Results and booking links are valid for approximately 15 minutes.\",\n  \"query\": { ... }\n}\n```\n\n### Result Validity\n\nSearch 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.\n\n### Error Responses\n\nThe server returns structured errors with suggestions:\n\n- **`airport_not_found`** -- airport could not be resolved. Try an IATA code, city name, or airport name.\n- **`disambiguation_needed`** -- multiple airports found (e.g. \"New York\" returns JFK, LGA). Pick one and retry.\n- **`invalid_date`** -- date format not recognized. Use YYYY-MM-DD, DD.MM.YYYY, or similar.\n- **`no_results`** -- no flights available for the given criteria. Try different dates or a nearby airport.\n\n## Example Prompts\n\n- Find me the cheapest direct flight from New York to London in August\n- Compare flights from Frankfurt to Munich on July 15, round-trip returning July 22\n- I need a one-way flight from LAX to Tokyo next Friday, economy class\n- Search for 2 adults and 1 child flying from Barcelona to Paris on September 1\n- What's the cheapest business class flight from Dubai to Singapore this month?\n\n## Privacy\n\nThis server does not log IP addresses, search queries, or any user-identifiable data. See [PRIVACY.md](PRIVACY.md) for full details including sample log entries.\n\n## Security\n\nTo report a vulnerability, see [SECURITY.md](SECURITY.md).\n\n## License\n\nMIT\n",
  "bytes": 9202,
  "sha": "310a982025ab52fcc3e1c4b7c67c7683982001bb9926b9344867a1c86f5498f5",
  "repo_slug": "octotrip/flights",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_app_octotrip_flights_53694db8/readme"
}