Fly Where To?

Worldwide nonstop flight routes from Wikipedia: airports, destinations, connections, airlines.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
99%
Naming quality
88%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,245Tokens (tool definitions)
~1.9 KBTypical response size
Moderate attention impact (1.75% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "url": "https://flywhereto.com/api/mcp"
    }
  }
}

Remote endpoints

https://flywhereto.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒find_airport(query)

Look up airports by IATA/ICAO code or by name fragment. Returns code, name, country, coordinates and how many nonstop destinations each serves. Use this first when you only have a city or airport name.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 80,
      "description": "IATA code (\"IST\"), ICAO code (\"LTFM\") or part of an airport name (\"istanbul\")"
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒destinations_from(origin, kind, include_airlines)

All airports reachable nonstop from a given origin, with the service kinds (scheduled, seasonal, charter, suspended, ...) per destination. Optionally filter by kind and include the operating airlines. Seasonal and charter service carries no operating dates; treat as unverified for specific travel dates.

Input Schema

{
  "type": "object",
  "properties": {
    "origin": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Three-letter IATA airport code, e.g. \"IST\""
    },
    "kind": {
      "description": "Only destinations with at least one route of this service kind",
      "type": "string",
      "enum": [
        "scheduled",
        "seasonal",
        "charter",
        "suspended",
        "begins",
        "ends",
        "resumes",
        "terminates"
      ]
    },
    "include_airlines": {
      "description": "Also list the operating airlines per destination (larger response)",
      "type": "boolean"
    }
  },
  "required": [
    "origin"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒route_details(origin, destination, depart_date, return_date)

Which airlines fly nonstop between two airports, with alliance, homepage and the service periods of each. Only periods of kind begins, ends or resumes ever carry dates; scheduled, seasonal and charter periods have none, so seasonal service is unverified for specific travel dates. Responses include book deep links to Kiwi.com search results (our referral id included); without depart_date the link defaults to a one-way search two weeks out.

Input Schema

{
  "type": "object",
  "properties": {
    "origin": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Three-letter IATA airport code, e.g. \"IST\""
    },
    "destination": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Three-letter IATA airport code, e.g. \"IST\""
    },
    "depart_date": {
      "description": "Departure date for the book link",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "return_date": {
      "description": "Return date for the book link (round trip)",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "origin",
    "destination"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒most_connected_airports(limit, country)

Airports ranked by number of nonstop destinations served, worldwide or within one country.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "How many airports to return (default 10)",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "country": {
      "description": "Restrict to one ISO 3166-1 alpha-2 country code, e.g. \"SE\"",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒find_connections(origin, destination, to_country, max_stops, same_airline, ...)

Multi-stop itineraries from an origin airport to either a destination airport or to any airport in a country. Returns airport paths with every airline flying each leg. Airline entries carry their alliance and, when service is not plain scheduled, a kind field (seasonal, charter or suspended). Suspended legs are included and flagged, not excluded; pass exclude_kinds to drop them. Seasonal and charter service carries no operating dates and there is no frequency or days-of-week data, so treat every match as unverified for specific travel dates. Provide exactly one of destination or to_country. Responses include book deep links to Kiwi.com search results (our referral id included); without depart_date the link defaults to a one-way search two weeks out.

Input Schema

{
  "type": "object",
  "properties": {
    "origin": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Three-letter IATA airport code, e.g. \"IST\""
    },
    "destination": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Three-letter IATA airport code, e.g. \"IST\""
    },
    "to_country": {
      "description": "ISO 3166-1 alpha-2 country code goal, e.g. \"CR\" for Costa Rica",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    },
    "max_stops": {
      "description": "Maximum intermediate stops (default 2; country searches cap at 2)",
      "type": "integer",
      "minimum": 0,
      "maximum": 3
    },
    "same_airline": {
      "description": "Require one single airline to operate every leg",
      "type": "boolean"
    },
    "exclude_kinds": {
      "description": "Drop legs whose service kind is in this list, e.g. [\"suspended\"] or [\"suspended\",\"charter\"] for currently bookable routes only",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "scheduled",
          "seasonal",
          "charter",
          "suspended"
        ]
      }
    },
    "depart_date": {
      "description": "Departure date for the book links",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "return_date": {
      "description": "Return date for the book links (round trip)",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "origin"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒reachable_from(origin, max_stops, country)

How far the network stretches from one airport within a stop budget: totals, breakdown by stop count and by country. Pass country to list the individual reachable airports there with their minimum stops.

Input Schema

{
  "type": "object",
  "properties": {
    "origin": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Three-letter IATA airport code, e.g. \"IST\""
    },
    "max_stops": {
      "description": "Maximum intermediate stops (default 1; 0 = nonstop only)",
      "type": "integer",
      "minimum": 0,
      "maximum": 3
    },
    "country": {
      "description": "List the reachable airports in this ISO 3166-1 alpha-2 country",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    }
  },
  "required": [
    "origin"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒airline_routes(airline)

The full network one airline flies: every origin with its nonstop destinations, as IATA codes. Look up by IATA airline code ("TK") or name fragment ("turkish"). Ambiguous queries return a candidate list to refine from.

Input Schema

{
  "type": "object",
  "properties": {
    "airline": {
      "type": "string",
      "minLength": 2,
      "maxLength": 80,
      "description": "Airline IATA code (\"TK\", \"W6\") or part of the airline name (\"turkish\")"
    }
  },
  "required": [
    "airline"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒find_meetup(origins, optimize, max_stops, same_alliance, allow_at_home, ...)

Best meet-up airports for travellers from multiple origins, ranked by combined travel effort using the same scoring as the site. Origins can be weighted by traveller count. Scores are kilometre values, lower is better; optimize "score" and "total_distance" both rank by weighted total distance (the frontend default), "worst_case" by the longest single journey. Candidates everyone can reach always rank above candidates someone cannot. Route data only: no fares, no frequency or days-of-week data; non-scheduled legs are flagged with a kind field. The map link stores the query as an anonymous share code and reopens it in the site’s meet-up planner. Each reachable party carries a book deep link for its own journey to the candidate. Responses include book deep links to Kiwi.com search results (our referral id included); without depart_date the link defaults to a one-way search two weeks out.

Input Schema

{
  "type": "object",
  "properties": {
    "origins": {
      "minItems": 2,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "airport": {
            "type": "string",
            "pattern": "^[A-Za-z]{3}$",
            "description": "Three-letter IATA airport code, e.g. \"IST\""
          },
          "travellers": {
            "description": "Traveller count from this origin, weights the ranking (default 1)",
            "type": "integer",
            "minimum": 1,
            "maximum": 99
          }
        },
        "required": [
          "airport"
        ]
      },
      "description": "Where the travellers start; duplicates merge by summing travellers"
    },
    "optimize": {
      "description": "Ranking objective (default \"score\")",
      "type": "string",
      "enum": [
        "score",
        "total_distance",
        "worst_case"
      ]
    },
    "max_stops": {
      "description": "Maximum stops per journey (default 0, nonstop only)",
      "type": "integer",
      "minimum": 0,
      "maximum": 2
    },
    "same_alliance": {
      "description": "Require each journey to be flyable within one single airline alliance",
      "type": "boolean"
    },
    "allow_at_home": {
      "description": "Allow an origin airport as the meet-up point, that party stays home",
      "type": "boolean"
    },
    "exclude_kinds": {
      "description": "Drop legs whose service kind is in this list, e.g. [\"suspended\"]",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "scheduled",
          "seasonal",
          "charter",
          "suspended"
        ]
      }
    },
    "limit": {
      "description": "Candidates to return (default 5)",
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    },
    "depart_date": {
      "description": "Departure date for the book links",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "return_date": {
      "description": "Return date for the book links (round trip)",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "origins"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools