# Aviasales Flight Prices (oci · ghcr.io/stufently/aviasales-mcp)

Flight price search via Aviasales/Travelpayouts: fares by route, cheapest days, flexible dates.

- Trust score: 49/100 (low)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- oci · `ghcr.io/stufently/aviasales-mcp`: 49/100 (this document), [markdown](https://verifymcp.io/servers/stufently-aviasales-mcp/ghcr-io-stufently-aviasales-mcp.md), [page](https://verifymcp.io/servers/stufently-aviasales-mcp/ghcr-io-stufently-aviasales-mcp)
- pypi · `aviasales-mcp`: 45/100, [markdown](https://verifymcp.io/servers/stufently-aviasales-mcp/aviasales-mcp.md), [page](https://verifymcp.io/servers/stufently-aviasales-mcp/aviasales-mcp)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/stufently/aviasales-mcp`
- Version: `0.5.3`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (GPL-3.0-or-later).
  - Actively maintained (last published 21 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3427 tokens (~263/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 70/100
  - Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Aviasales Flight Prices MCP server?

Aviasales Flight Prices runs locally as a container image, launched with docker run --rm -i -e AVIASALES_API_TOKEN -e AVIASALES_MARKET -e AVIASALES_DEFAULT_CURRENCY -e AVIASALES_PARTNER_ID ghcr.io/stufently/aviasales-mcp:0.5.3. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add stufently-aviasales-mcp -- docker run --rm -i -e AVIASALES_API_TOKEN -e AVIASALES_MARKET -e AVIASALES_DEFAULT_CURRENCY -e AVIASALES_PARTNER_ID ghcr.io/stufently/aviasales-mcp:0.5.3
```

This image reads AVIASALES_API_TOKEN, AVIASALES_MARKET, AVIASALES_DEFAULT_CURRENCY and AVIASALES_PARTNER_ID. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Cursor

```json
{
  "mcpServers": {
    "stufently-aviasales-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "AVIASALES_API_TOKEN",
        "-e",
        "AVIASALES_MARKET",
        "-e",
        "AVIASALES_DEFAULT_CURRENCY",
        "-e",
        "AVIASALES_PARTNER_ID",
        "ghcr.io/stufently/aviasales-mcp:0.5.3"
      ]
    }
  }
}
```

This image reads AVIASALES_API_TOKEN, AVIASALES_MARKET, AVIASALES_DEFAULT_CURRENCY and AVIASALES_PARTNER_ID. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### VS Code

```json
{
  "servers": {
    "stufently-aviasales-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "AVIASALES_API_TOKEN",
        "-e",
        "AVIASALES_MARKET",
        "-e",
        "AVIASALES_DEFAULT_CURRENCY",
        "-e",
        "AVIASALES_PARTNER_ID",
        "ghcr.io/stufently/aviasales-mcp:0.5.3"
      ]
    }
  }
}
```

This image reads AVIASALES_API_TOKEN, AVIASALES_MARKET, AVIASALES_DEFAULT_CURRENCY and AVIASALES_PARTNER_ID. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Codex

```bash
codex mcp add stufently-aviasales-mcp -- docker run --rm -i -e AVIASALES_API_TOKEN -e AVIASALES_MARKET -e AVIASALES_DEFAULT_CURRENCY -e AVIASALES_PARTNER_ID ghcr.io/stufently/aviasales-mcp:0.5.3
```

This image reads AVIASALES_API_TOKEN, AVIASALES_MARKET, AVIASALES_DEFAULT_CURRENCY and AVIASALES_PARTNER_ID. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "stufently-aviasales-mcp": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "-e",
        "AVIASALES_API_TOKEN",
        "-e",
        "AVIASALES_MARKET",
        "-e",
        "AVIASALES_DEFAULT_CURRENCY",
        "-e",
        "AVIASALES_PARTNER_ID",
        "ghcr.io/stufently/aviasales-mcp:0.5.3"
      ],
      "enabled": true
    }
  }
}
```

This image reads AVIASALES_API_TOKEN, AVIASALES_MARKET, AVIASALES_DEFAULT_CURRENCY and AVIASALES_PARTNER_ID. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Hermes

```yaml
mcp_servers:
  stufently-aviasales-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "-e", "AVIASALES_API_TOKEN", "-e", "AVIASALES_MARKET", "-e", "AVIASALES_DEFAULT_CURRENCY", "-e", "AVIASALES_PARTNER_ID", "ghcr.io/stufently/aviasales-mcp:0.5.3"]
```

This image reads AVIASALES_API_TOKEN, AVIASALES_MARKET, AVIASALES_DEFAULT_CURRENCY and AVIASALES_PARTNER_ID. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Netclaw

```json
{
  "McpServers": {
    "stufently-aviasales-mcp": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "-e",
        "AVIASALES_API_TOKEN",
        "-e",
        "AVIASALES_MARKET",
        "-e",
        "AVIASALES_DEFAULT_CURRENCY",
        "-e",
        "AVIASALES_PARTNER_ID",
        "ghcr.io/stufently/aviasales-mcp:0.5.3"
      ]
    }
  }
}
```

This image reads AVIASALES_API_TOKEN, AVIASALES_MARKET, AVIASALES_DEFAULT_CURRENCY and AVIASALES_PARTNER_ID. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Other

```json
{
  "mcpServers": {
    "stufently-aviasales-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "AVIASALES_API_TOKEN",
        "-e",
        "AVIASALES_MARKET",
        "-e",
        "AVIASALES_DEFAULT_CURRENCY",
        "-e",
        "AVIASALES_PARTNER_ID",
        "ghcr.io/stufently/aviasales-mcp:0.5.3"
      ]
    }
  }
}
```

This image reads AVIASALES_API_TOKEN, AVIASALES_MARKET, AVIASALES_DEFAULT_CURRENCY and AVIASALES_PARTNER_ID. Set them in your client's env block for this server; docker run -e passes each one through to the container.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 49, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 48, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 47, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 46, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 45, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 44, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-23 (score 43, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-20 (score 42, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (13)

### `search_flights` (~689 tokens)

Search flight prices between two cities on a date or across a month.

Use when the user names both ends of a route and wants fares, a booking
link, or only departures inside a time window. For the cheapest day in a
month use `get_prices_calendar`; for the days around dates already chosen
use `get_flexible_date_prices`; for a budget with no destination use
\`search_by_price_range`.

Both codes must be IATA — call `lookup_cities` first if you only have a city
name. For nearby airports use `get_alternative_directions`. A multi-city
trip needs one call per leg.

Note on passengers: the price data comes from a cache of recent searches and
is always PER ADULT in economy. The adults/children/infants/trip_class
parameters are encoded into each ticket's booking_link, so the link opens
Aviasales with the full party pre-filled and shows the real total price.

Durations: each ticket reports duration_total (full door-to-door travel
time), duration_to/duration_back (pure flight time per direction) and
layover_minutes (combined ground time between connecting flights; 0 for
direct flights). All values are in minutes.

Input parameters:

- `adults` (integer): Number of adult passengers, 1-9 (default 1).
- `children` (integer): Number of children 2-11 years, 0-8 (default 0). Adults plus children cannot exceed 9; the excess is trimmed.
- `currency`: Price currency code (3 letters, e.g. "rub", "usd"). Defaults to the server's configured currency.
- `depart_after`: Keep only flights departing at or after this local time ("HH:MM", 24-hour). Optional.
- `depart_before`: Keep only flights departing at or before this local time ("HH:MM", 24-hour). Optional. Combined with depart_after and set earlier than it, the window wraps midnight (e.g. 22:00-06:00).
- `departure_at`: Departure date or month (YYYY-MM-DD or YYYY-MM). Optional; a month searches every day in it.
- `destination` (string, required): Destination city IATA code (e.g. "IST", "BCN").
- `direct` (boolean): If True, show only non-stop flights.
- `infants` (integer): Number of infants under 2, 0-8 (default 0). Cannot exceed the number of adults; the excess is trimmed.
- `limit` (integer): Max number of results (1-100, default 10).
- `market`: 2-letter market whose price cache to read (e.g. "us", "ru", "th"). The same route in the same currency is priced differently per market, so set this to the traveller's country. Defaults to the server…
- `one_way` (boolean): If True, search one-way tickets only.
- `origin` (string, required): Origin city IATA code (e.g. "MOW", "LED").
- `return_at`: Return date or month (YYYY-MM-DD or YYYY-MM). Optional.
- `trip_class` (string): "economy", "comfort", "business" or "first" (default "economy").

### `get_prices_calendar` (~348 tokens)

Get grouped calendar prices for a route, one fare per day or per month.

Use when the user asks which day or month is cheapest to fly a known route.
For fares on one specific date use `search_flights`; for a few days either
side of dates already chosen use `get_flexible_date_prices`. Codes are
IATA; use `lookup_cities` to resolve a name first.

Prices are per adult (cached); passenger parameters are encoded into each
booking_link.

Input parameters:

- `adults` (integer): Number of adult passengers, 1-9 (default 1).
- `children` (integer): Number of children 2-11 years, 0-8 (default 0). Adults plus children cannot exceed 9; the excess is trimmed.
- `currency`: Price currency (3 letters). Defaults to the server's currency.
- `departure_at`: Departure month (YYYY-MM). Optional.
- `destination` (string, required): Destination IATA code.
- `group_by` (string): Group results by "departure_at" or "month" (default "departure_at").
- `infants` (integer): Number of infants under 2, 0-8 (default 0). Cannot exceed the number of adults; the excess is trimmed.
- `market`: 2-letter market whose price cache to read (e.g. "us", "ru"). Defaults to the server's configured market.
- `origin` (string, required): Origin IATA code.
- `return_at`: Return month (YYYY-MM). Optional.
- `trip_class` (string): "economy", "comfort", "business" or "first" (default "economy").

### `get_flexible_date_prices` (~276 tokens)

Compare prices for the days around a departure and an optional return.

Use when the user already has dates and asks whether shifting a day either
way would be cheaper. For one exact date use `search_flights`; for the
cheapest day across a whole month use `get_prices_calendar`. This covers
roughly a week around both the outbound and the return.

Input parameters:

- `adults` (integer): Number of adult passengers, 1-9 (default 1).
- `children` (integer): Number of children 2-11 years, 0-8 (default 0).
- `currency`: Price currency (3 letters). Defaults to the server's currency.
- `depart_date` (string, required): Intended departure date (YYYY-MM-DD). Required.
- `destination` (string, required): Destination IATA code.
- `infants` (integer): Number of infants under 2, 0-8 (default 0).
- `market`: 2-letter market whose price cache to read. Defaults to the server's configured market.
- `origin` (string, required): Origin IATA code.
- `return_date`: Intended return date (YYYY-MM-DD). Omit for one-way.
- `trip_class` (string): "economy", "comfort", "business" or "first" (default "economy").

### `get_latest_prices` (~329 tokens)

Get the most recently found flight prices from other travellers' searches.

Use when the user wants the latest fares that just appeared, on one route
or across the whole cache. For a specific trip on chosen dates use
\`search_flights` instead. Prices are per adult (cached); passenger
parameters are encoded into each booking_link.

These rows come from the older v2 shape: they name the selling `agency`
rather than an airline, carry no flight number, and their booking_link is
reconstructed from the route and dates.

Input parameters:

- `adults` (integer): Number of adult passengers, 1-9 (default 1).
- `children` (integer): Number of children 2-11 years, 0-8 (default 0). Adults plus children cannot exceed 9; the excess is trimmed.
- `currency`: Price currency (3 letters). Defaults to the server's currency.
- `destination`: Destination IATA code. Optional.
- `infants` (integer): Number of infants under 2, 0-8 (default 0). Cannot exceed the number of adults; the excess is trimmed.
- `limit` (integer): Max results (1-100, default 20).
- `market`: 2-letter market whose price cache to read. Defaults to the server's configured market.
- `one_way` (boolean): One-way tickets only.
- `origin`: Origin IATA code. Optional.
- `trip_class` (string): "economy", "comfort", "business" or "first" (default "economy").

### `get_popular_directions` (~148 tokens)

List the cities people most often fly to a destination from, with a fare.

Use when the user asks where travellers reach a city from and what that
costs. The request is keyed on the destination. For where someone can fly
from a city use `get_city_directions`; for prices on one known route use
\`search_flights`.

Input parameters:

- `currency`: Price currency (3 letters). Defaults to the server's currency.
- `destination` (string, required): Destination IATA code (e.g. "BKK"). Required — the API rejects a request without it.
- `locale`: 2-letter locale for city names. Defaults to the server's locale.

### `get_city_directions` (~132 tokens)

List the cheapest destinations reachable from a city, with a fare and dates.

Use when the user asks where they can fly from a city, or wants somewhere
cheap without naming a destination. For who flies into a city use
\`get_popular_directions`; to price one chosen route afterwards use
\`search_flights` or `get_prices_calendar`.

Input parameters:

- `currency`: Price currency (3 letters). Defaults to the server's currency.
- `origin` (string, required): Origin city IATA code (e.g. "MOW"). Use `lookup_cities` to resolve a city name first.

### `get_alternative_directions` (~188 tokens)

Get prices for nearby airports and cities around a chosen route.

Use when the traveller can fly from or into a different airport and wants
those fares. To learn which airports are near a place, use
\`find_nearest_airports` first; for the named city pair only, use
\`search_flights`.

Input parameters:

- `currency`: Price currency (3 letters). Defaults to the server's currency.
- `departure_at`: Departure date (YYYY-MM-DD or YYYY-MM). Optional.
- `destination` (string, required): Destination IATA code.
- `limit` (integer): Max results (1-20, default 10).
- `market`: 2-letter market whose price cache to read. Defaults to the server's configured market.
- `origin` (string, required): Origin IATA code.
- `return_at`: Return date (YYYY-MM-DD or YYYY-MM). Optional.

### `search_by_price_range` (~237 tokens)

Find flights whose cached fare falls inside a minimum and maximum price.

Use when the user has a budget, including anywhere under a price with no
destination named. Leave `destination` unset to let the budget pick the
city; prices are per adult in economy. For a named route on a date or a
month use `search_flights` or `get_prices_calendar`.

There is deliberately no date argument: this endpoint ignores one (verified —
passing a December date returns the same July and September fares), and each
result carries its own `departure_at`.

Input parameters:

- `currency`: Price currency (3 letters). Defaults to the server's currency.
- `destination`: Destination IATA code. Optional — omit to search anywhere.
- `limit` (integer): Max results (1-100, default 20).
- `market`: 2-letter market whose price cache to read. Defaults to the server's configured market.
- `origin` (string, required): Origin IATA code.
- `value_max` (integer, required): Highest acceptable price, in `currency`.
- `value_min` (integer, required): Lowest acceptable price, in `currency`.

### `lookup_airlines` (~163 tokens)

Look up airlines by name or IATA code.

Use when the user asks which airline a code belongs to, or wants the IATA
code for an airline name. For an airport, city, or country code use
\`lookup_airports`, `lookup_cities`, or `lookup_countries`; for fares use
\`search_flights`.

Input parameters:

- `limit` (integer): Max results to return (1-500, default 50).
- `locale`: 2-letter locale for names (e.g. "en", "ru"). Defaults to the server's locale.
- `search`: Airline name substring or exact IATA code (e.g. "aeroflot", "SU"). Omit to list airlines from the start of the dataset.

### `lookup_airports` (~214 tokens)

Look up airports by name, IATA code, or city code.

Use when the user names an airport or a code and needs its city, country,
or coordinates. For the closest airport to a town that does not share the
airport's name, use `find_nearest_airports` instead of this tool.

The full dataset is ~10k airports, so always pass `search` — an unfiltered
call just returns the first `limit` entries in dataset order. Results are
ranked: exact code, then exact city code, then name matches, with airports
you cannot actually fly to last.

Input parameters:

- `limit` (integer): Max results to return (1-500, default 50).
- `locale`: 2-letter locale for names (e.g. "en", "ru"). Defaults to the server's locale.
- `search`: Airport name substring, exact IATA code, or city code (e.g. "heathrow", "LHR", "MOW").

### `lookup_cities` (~210 tokens)

Look up cities by name or IATA code and return the code flight tools expect.

Use when the user names a city and a flight search needs its IATA code.
For an airport code use `lookup_airports`; for the nearest airport to a
place that is not itself a city, use `find_nearest_airports`.

Every flight tool takes IATA codes, so this is usually the first call when
the user names a place. The full dataset is ~9.6k cities, so always pass
\`search`. Names are only available in the requested locale: searching
"Мюнхен" needs locale="ru".

Input parameters:

- `limit` (integer): Max results to return (1-500, default 50).
- `locale`: 2-letter locale for names (e.g. "en", "ru"). Defaults to the server's locale.
- `search`: City name substring or exact IATA code (e.g. "bangkok", "BKK").

### `lookup_countries` (~136 tokens)

Look up countries by name or two-letter country code.

Use when the user asks which country a code belongs to, or wants that
country's code or currency. For a city or airport code use `lookup_cities`
or `lookup_airports`; this tool does not search flight prices.

Input parameters:

- `limit` (integer): Max results to return (1-500, default 50).
- `locale`: 2-letter locale for names (e.g. "en", "ru"). Defaults to the server's locale.
- `search`: Country name substring or exact code (e.g. "thailand", "TH").

### `find_nearest_airports` (~263 tokens)

Find the airports closest to a place name or to a latitude and longitude.

Use when the user asks which airport to fly into for a town, a resort, or
a point on the map. `lookup_airports` only matches a name, and the nearest
airport is rarely named after the town, so call this tool for that
question. Feed the returned city code, not the airport code, to
\`search_flights` for fares.

Pass either `near` (resolved against the city and airport datasets) or an
explicit `latitude`/`longitude` pair.

Input parameters:

- `flightable_only` (boolean): Skip airports with no scheduled service (default True).
- `latitude`: Latitude in degrees, -90 to 90. Overrides `near`.
- `limit` (integer): Max airports to return (1-50, default 5).
- `locale`: 2-letter locale for names. Defaults to the server's locale.
- `longitude`: Longitude in degrees, -180 to 180. Overrides `near`.
- `max_distance_km`: Ignore airports further away than this. Optional.
- `near`: Place name or IATA code to search around (e.g. "Pattaya", "UTP").

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/stufently-aviasales-mcp/ghcr-io-stufently-aviasales-mcp#diagnostics

## Score history

- 2026-11-05: 49
- 2026-11-04: 49
- 2026-11-03: 48
- 2026-11-02: 48
- 2026-11-01: 47
- 2026-10-31: 47
- 2026-10-30: 46
- 2026-10-29: 46
- 2026-10-28: 45
- 2026-10-27: 45
- 2026-10-26: 44
- 2026-10-25: 44
- 2026-10-24: 43
- 2026-10-23: 43
- 2026-10-22: 42
- 2026-10-21: 42
- 2026-10-20: 42
- 2026-10-19: 41
- 2026-10-18: 41
- 2026-10-17: 40
- 2026-10-16: 39
- 2026-10-15: 39
- 2026-10-14: 10
- 2026-10-13: 10
- 2026-10-12: 10

## Common questions

### What is the Aviasales Flight Prices MCP server?

Aviasales Flight Prices is an MCP server listed in the public MCP registry as io.github.stufently/aviasales-mcp. Flight price search via Aviasales/Travelpayouts: fares by route, cheapest days, flexible dates. This page covers its container image (ghcr.io/stufently/aviasales-mcp).

### Is the Aviasales Flight Prices MCP server safe to use?

Aviasales Flight Prices scores 49 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Aviasales Flight Prices MCP server expose?

Aviasales Flight Prices exposes 13 tools: search_flights, get_prices_calendar, get_flexible_date_prices, get_latest_prices, get_popular_directions, and 8 more. Their descriptions and schemas cost roughly 3,333 tokens of context every time the server is loaded.

### Is the Aviasales Flight Prices MCP server still maintained?

Aviasales Flight Prices is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Aviasales Flight Prices MCP server under?

Aviasales Flight Prices declares the GPL-3.0-or-later licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- GitHub Container Registry: https://ghcr.io/stufently/aviasales-mcp
- Repository: https://github.com/stufently/aviasales-mcp
- Changelog RSS feed: https://verifymcp.io/servers/stufently-aviasales-mcp/ghcr-io-stufently-aviasales-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/stufently-aviasales-mcp/ghcr-io-stufently-aviasales-mcp.json
- HTML version of this page: https://verifymcp.io/servers/stufently-aviasales-mcp/ghcr-io-stufently-aviasales-mcp
