# AirTreks MCP

> Multi-city flight routing intelligence — plan RTW trips, validate alliances, get carrier picks.

- name: io.github.Airtreks/airtreks-mcp
- version: 1.2.7
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 83/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.Airtreks%2Fairtreks-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.Airtreks%2Fairtreks-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "airtreks-mcp": {
      "type": "http",
      "url": "https://mcp.airtreks.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-8d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 83/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 11 of 11 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 2 of 11 tools declare all four hints; missing: plan_route (idempotentHint); route_estimate (idempotentHint); itinerary_quote_status (idempotentHint); …
- pass `tools.token_cost`: about 3,453 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 13 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: deps.dev does not know airtreks-mcp@1.2.7

- tools: 11, about 3,453 tokens to load them all
- tool set hash: 07c643ac6efea4817059a0e813e78f1e
- tools last changed: 2026-10-13T07:54:05.600Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.Airtreks/airtreks-mcp.svg)](https://protogrid.dev/servers/io.github.Airtreks/airtreks-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-13 `itinerary_quote` changed (annotations)
- 2026-10-13 `trip_idea_create` changed (annotations)
- 2026-10-06 `custom_route_build` changed (annotations)
- 2026-10-06 `fare_product_match` changed (annotations)
- 2026-10-06 `hub_check` changed (annotations)
- 2026-10-06 `route_suggest` changed (annotations)
- 2026-10-06 `route_validate` changed (annotations)
- 2026-10-06 `itinerary_quote_status` changed (description, annotations)
  - before: Fetch the result of an itinerary_quote using the quoteReference it returned. Returns status 'pending' with how long to wait, or the finished options. Costs nothing and does no searching, so poll it rather than starting a second quote.
  - after: Fetch the result of an itinerary_quote using the quoteReference it returned. Call it straight away: it waits up to about 40 seconds for a quote that is still pricing, then returns the finished options, or status 'pending' if the quote needs one more call. Costs nothing and does no searching, so call it again rather than starting a second quote.
- 2026-10-06 `itinerary_quote` changed (description, annotations)
  - before: Price a complete multi-stop or round-the-world trip and get back several ways of ticketing it — cheapest, fastest, fewest stops — with the actual tickets each one is built from. Use this for trips that will not go on a single fare, which is most itineraries with 3+ stops; use fare_quote when you want one specific itinerary on one ticket. It takes about a minute, so it returns a quoteReference immediately and you fetch the result with itinerary_quote_status. Keep that reference — it is the only way to retrieve the quote.
  - after: Price a complete multi-stop or round-the-world trip and get back several ways of ticketing it — cheapest, fastest, fewest stops — with the actual tickets each one is built from. Use this for trips that will not go on a single fare, which is most itineraries with 3+ stops; use fare_quote when you want one specific itinerary on one ticket. It takes about a minute, so it returns a quoteReference immediately; call itinerary_quote_status with it straight away, and that call waits for the result. Keep that reference — it is the only way to retrieve the quote.
- 2026-10-06 `fare_quote` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/io.github.Airtreks%2Fairtreks-mcp/changes

## Dependencies

- npm airtreks-mcp@1.2.7: unknown

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://mcp.airtreks.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

- npm airtreks-mcp@1.2.7

## Tools (11)

- `custom_route_build`: Break a complex multi-city itinerary into individually-ticketable segments with carrier recommendations. Handles routes that don't fit alliance fare rules — mixed carriers, LCCs, Gulf bridge connections, surface sectors. This is how AirTreks consultants build 90% of itineraries. Use this for any route with 4+ stops, backtracking, or region combinations that alliance fares can't cover.
- `fare_product_match`: Recommend the best fare product type for a route — RTW, Circle Pacific, Circle Atlantic, Open Jaw, or Custom Multi-City. Considers stop count, direction, and backtracking to match the right alliance fare structure.
- `fare_quote`: Get live, bookable-quality fares for one specific itinerary — actual flights, actual prices, for the dates given. Needs a departure date for every flown leg. Use this once the customer has settled on cities and dates and wants real numbers rather than a ballpark; use route_estimate instead when dates are still open. It prices the itinerary as a single fare, so very long or awkward multi-continent trips may come back unpriceable — those genuinely need to be split across separate tickets, which is what AirTreks consultants do by hand.
- `hub_check`: Check the best connection between two airports. Identifies dead legs (routes that fail on alliance fares), suggests hub routing fixes, and shows proven carrier combinations. Essential for transpacific, kangaroo, and intra-Asia routing.
- `itinerary_quote`: Price a complete multi-stop or round-the-world trip and get back several ways of ticketing it — cheapest, fastest, fewest stops — with the actual tickets each one is built from. Use this for trips that will not go on a single fare, which is most itineraries with 3+ stops; use fare_quote when you want one specific itinerary on one ticket. It takes about a minute, so it returns a quoteReference immediately; call itinerary_quote_status with it straight away, and that call waits for the result. Keep that reference — it is the only way to retrieve the quote.
- `itinerary_quote_status`: Fetch the result of an itinerary_quote using the quoteReference it returned. Call it straight away: it waits up to about 40 seconds for a quote that is still pricing, then returns the finished options, or status 'pending' if the quote needs one more call. Costs nothing and does no searching, so call it again rather than starting a second quote.
- `plan_route`: The primary entry point for any multi-city trip. Give it your cities — it automatically evaluates Star Alliance RTW, oneworld RTW, AND custom mixed-carrier builds, then recommends the best approach. Handles direction detection, backtracking analysis, alliance feasibility, surface sectors, and carrier selection. The customer doesn't need to know if their trip is alliance or custom — this tool figures it out.
- `route_estimate`: Get a price range for a multi-city or round-the-world trip, drawn from what AirTreks customers have actually paid on those routes. Give it the cities and it returns a per-person range in USD with how much history sits behind it. Use it when someone asks what a trip will cost and you don't have exact dates yet — it needs no dates and no passenger details. It is a range from past bookings, not a live quote, so it will not reflect today's availability or seasonality; it tells you the right ballpark before anyone commits to dates.
- `route_suggest`: Get suggested multi-stop flight routings based on regions, direction, and alliance preference. Returns up to 3 proven routing templates with bookability ratings. Great for trip planning inspiration.
- `route_validate`: Validate a multi-city flight routing for feasibility. Checks alliance carrier rules, identifies dead legs, warns about poison carriers, and estimates bookability. Use this before building an itinerary to catch routing problems early.
- `trip_idea_create`: Submit the customer's trip to AirTreks — a human travel consultant takes over from there. Automatically runs plan_route to attach the full routing analysis and carrier recommendations to the trip request, so the consultant starts informed, not cold. Use this when the customer is ready to get a real quote. Requires the customer's name, email, at least 2 cities (3-letter IATA codes), a departure date for every leg, and answers to AirTreks' planning questions — call once without questionsAnswers to receive the current questions to ask.
