ffFly Frugal
Public travel data

Useful fares.
Clean access.

Connect an app or AI assistant to public itinerary previews, current observed flight deals, and savings verified today. Every public operation is read-only.

Access model

Public and read-only.

The public surface contains travel discovery data only. It does not include paid guide content, private PDFs, customer or purchase data, alert management, administrative operations, or content publishing.

No authenticationZero writesBounded responses
HTTP API

Public endpoints.

Itinerary previews

GET/api/itineraries?limit=24&country=Thailand
GET/api/itineraries/thailand

Returns published preview content only. The full sellable itinerary and PDF remain private.

Current flight deals

GET/api/deals?origin=SFO&nights=7&limit=20

Use scope=global instead of an origin to browse across supported departure airports.

Today's verified deals

GET/api/deals?scope=global&nights=7&fresh=today&limit=2

Returns only fares with a Google savings insight checked today in Pacific time. If none qualify, the list is empty—stale results are never substituted.

Route and supporting data

GET/api/calendar?origin=SFO&destination=NRT&nights=7
GET/api/history?origin=SFO&destination=NRT&departure=2027-04-01&return=2027-04-08&nights=7
GET/api/catalog
GET/api/weather?airport=NRT&date=2027-04-01
Model Context Protocol

Four focused tools.

Connect at https://flyfrugal.fyi/mcp using Streamable HTTP. Tool discovery advertises only these read-only operations.

list_itineraries

Browse bounded published itinerary previews.

get_itinerary

Read one published preview by slug.

list_flight_deals

Browse current observed fares globally or from one airport.

get_todays_deals

Return only savings verified today.

Data meaning

Fresh means checked today.

Flight prices move quickly. A fare's observation time and Google insight check time are returned separately. “Today's deal” requires a positive Google savings value checked during the current calendar day in America/Los_Angeles.

No stale fallback. When no fare satisfies that requirement, Fly Frugal returns an empty list instead of labeling an older result as today's deal.
Client configuration

Connect in one block.

{
  "mcpServers": {
    "flyfrugal-travel-data": {
      "type": "http",
      "url": "https://flyfrugal.fyi/mcp"
    }
  }
}

For ChatGPT or Claude, create a custom MCP connector with the same URL. No authorization header is needed.

Reference files

Use the format you need.

The published reference files contain the same read-only public surface described above.