# Fly Frugal Travel Data

> Read-only public itinerary previews, observed round-trip fares, and flight savings verified today.

- name: fyi.flyfrugal/travel-data
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/fyi.flyfrugal%2Ftravel-data
- tools: https://api.protogrid.dev/v1/servers/fyi.flyfrugal%2Ftravel-data/tools

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

## Connection (mcpServers)

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


## Trust

- hygiene: 80
- liveness: 99
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-96% +updated-14d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### 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: 100 (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`: 4 of 4 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,174 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 50 (weight 15)

- pass `stability.changes`: 4 tool changes in 30 days
- fail `stability.rug_pull`: 4 tools kept their name but changed most of their description in 30 days; review before trusting them

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

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 1,174 tokens to load them all
- tool set hash: 063e08d8aece8fb1bf9d6217295d0a85
- tools last changed: 2026-10-07T02:07:22.434Z
- badge: [![protogrid quality](https://protogrid.dev/badge/fyi.flyfrugal/travel-data.svg)](https://protogrid.dev/servers/fyi.flyfrugal/travel-data)
- 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-07 `get_todays_deals` changed (description, inputSchema) **meaning changed**
  - before: Return only fares whose Google savings insight was checked today in Pacific time. It returns an empty list instead of substituting stale deals.
  - after: Return only the strongest current deals: fares whose Google savings insight was checked today (America/Los_Angeles calendar day) and shows a positive saving versus the usual price. Use it when the user asks for today's deals or wants prices that are freshly verified. Each deal has the same fields as list_flight_deals, plus count. If nothing was verified today the list is empty; say so instead of presenting older fares, or offer list_flight_deals for recent observations.
- 2026-10-07 `list_flight_deals` changed (description, inputSchema) **meaning changed**
  - before: List bounded current observed round-trip fares, optionally from one departure airport. Results include observation and Google price-insight freshness when available.
  - after: List the cheapest round-trip economy fares Fly Frugal has recently observed, from one departure airport or across all tracked US airports. Use it for questions like "cheap flights from SFO" or "where can I fly for under $500". Each deal has origin, destination_airport, label (airport name), country, places, departure_date and return_date, nights, price and currency (whole US dollars), airlines, longest_layover_minutes, observed_at, and Google's price insight when checked: google_price_signal (low, typical or high), google_usual_low/high, google_savings, google_share_url and google_signal_checked_at. Prices are observations that can change or sell out, so tell users to confirm before booking. For only deals re-verified today, use get_todays_deals.
- 2026-10-07 `get_itinerary` changed (description, inputSchema) **meaning changed**
  - before: Get one public itinerary preview by slug. The complete paid itinerary remains private.
  - after: Get the public preview of one Fly Frugal itinerary by its slug, as returned by list_itineraries. Returns the same fields as a list item: country_name, tagline, days_count, the preview content, image URLs, the full guide's price (price_cents, currency), updated_at and pdf_ready. Use it to describe a trip to the user or decide whether the full guide fits; the complete paid day-by-day guide is never returned. An unknown slug returns an error.
- 2026-10-07 `list_itineraries` changed (description, inputSchema) **meaning changed**
  - before: List bounded public itinerary previews. This never returns paid full-guide content.
  - after: Browse Fly Frugal's published day-by-day budget travel itineraries. Use this to discover which destinations have a guide, then call get_itinerary with a returned slug for one guide's preview. Each item has slug, country_name, tagline, days_count, a preview, cover and first-day image URLs, price_cents and currency for the full guide, updated_at, and pdf_ready. Results are newest first. Only public previews are returned; the paid full guide is never included.

Full history: https://api.protogrid.dev/v1/servers/fyi.flyfrugal%2Ftravel-data/changes

## Remotes

- https://flyfrugal.fyi/mcp (streamable-http, auth none, reachable true, uptime30d 0.96428573)

## Packages

_none_

## Tools (4)

- `get_itinerary`: Get the public preview of one Fly Frugal itinerary by its slug, as returned by list_itineraries. Returns the same fields as a list item: country_name, tagline, days_count, the preview content, image URLs, the full guide's price (price_cents, currency), updated_at and pdf_ready. Use it to describe a trip to the user or decide whether the full guide fits; the complete paid day-by-day guide is never returned. An unknown slug returns an error.
- `get_todays_deals`: Return only the strongest current deals: fares whose Google savings insight was checked today (America/Los_Angeles calendar day) and shows a positive saving versus the usual price. Use it when the user asks for today's deals or wants prices that are freshly verified. Each deal has the same fields as list_flight_deals, plus count. If nothing was verified today the list is empty; say so instead of presenting older fares, or offer list_flight_deals for recent observations.
- `list_flight_deals`: List the cheapest round-trip economy fares Fly Frugal has recently observed, from one departure airport or across all tracked US airports. Use it for questions like "cheap flights from SFO" or "where can I fly for under $500". Each deal has origin, destination_airport, label (airport name), country, places, departure_date and return_date, nights, price and currency (whole US dollars), airlines, longest_layover_minutes, observed_at, and Google's price insight when checked: google_price_signal (low, typical or high), google_usual_low/high, google_savings, google_share_url and google_signal_checked_at. Prices are observations that can change or sell out, so tell users to confirm before booking. For only deals re-verified today, use get_todays_deals.
- `list_itineraries`: Browse Fly Frugal's published day-by-day budget travel itineraries. Use this to discover which destinations have a guide, then call get_itinerary with a returned slug for one guide's preview. Each item has slug, country_name, tagline, days_count, a preview, cover and first-day image URLs, price_cents and currency for the full guide, updated_at, and pdf_ready. Results are newest first. Only public previews are returned; the paid full guide is never included.
