Search DevTools

Jump to any tool or page

BoostedTravel

Trending

Flight search & booking for AI agents. 400+ airlines, $20-50 cheaper than OTAs.

LetsFG1,838 stars125 forksAI & Agents
View source

Install

Terminal

$npx -y boostedtravel-mcp

mcp_config.json

{
  "mcpServers": {
    "com-boostedchat-travel": {
      "env": {
        "BOOSTEDTRAVEL_API_KEY": "${BOOSTEDTRAVEL_API_KEY}"
      },
      "args": [
        "-y",
        "boostedtravel-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

We're LetsFG — a community of travelers.

Finding a flight or hotel shouldn't mean checking 47 tabs. Or 3 hours of searching. Or having that feeling you could've got a better deal if you'd just waited a little longer.

So we built something about it. One total price. No tracking. No price that goes up because you looked twice.

     

     

Join the community. Help others find cheaper flights. Spread the word.⭐ Star the repo. Share with a friend ✈️

 

 

 

 

 


Flights and hotels. Both live.

Every airline in the world. Real prices. One function call.

LetsFG gives your AI agent flight and hotel search and booking superpowers. Our server-side engine scans the entire world for the cheapest price. Search is free. Booking is real: the fare is held on your card, a LetsFG booking agent buys the ticket, and you get the airline's PNR.

The same flight costs $20–$50 less because you skip OTA inflation, cookie tracking, and surge pricing.

Agents: add https://letsfg.co/developers/api/mcp as an MCP server. Approving the connection opens letsfg.co/connect: one tap, no card. The card is asked for at your first booking, in a 0.00 Revolut setup (nothing is charged, no Revolut account needed). That token searches for free and books. Scripts: send the same token as Authorization: Bearer to the PFS endpoints. Developer API: a separate paid product for high-volume commercial use; most agents do not need it. → Get started

Supporters


Real prices: LetsFG vs Google Flights

We searched 5 routes on Google Flights and LetsFG on the same day (2026-08-05), for flights departing 2026-09-16. Same airline, same number of stops — LetsFG was cheaper every time:

RouteAirlineGoogle FlightsLetsFGYou Save
LAX → Paris (CDG)JetBlue, 1 stop$363$334$29
SFO → London (LHR)JetBlue, 1 stop$349$333$16
LA → New York (JFK)JetBlue, nonstop$174$157$17
London → Singapore (SIN)Shenzhen Airlines, 1 stop$395$380$15
Chicago → Dubai (DXB)Air Canada + Emirates, 2 stops$517$461$56

$133 cheaper across 5 routes in a verified comparison (2026-08-05). LetsFG returns the same prices however often you run the search, because it doesn't track you.

Why the difference? LetsFG compares the same flight across many sellers — Skyscanner, Kayak, Momondo, plus airline websites (Ryanair, United, Southwest, EasyJet, Spirit, Norwegian, AirAsia, and more) — and shows the cheapest. No cookie tracking: the same search returns the same prices however often you run it.


Real hotel prices: LetsFG vs Booking.com

Same hotel, same room type, same 2-night stay, same free-cancellation policy — checked on the same day (2026-08-05) for a 2026-09-16 check-in:

HotelBooking.comLetsFGYou Save
Hotel Boss, Warsaw$206$169$37
ibis Styles Paris Gare de l'Est$663$525$138
Copthorne Tara Hotel, London Kensington$379$347$32

$207 cheaper across 3 hotels in a verified comparison (2026-08-05), matching each property's own free-cancellation rate against Booking.com's free-cancellation rate for the identical dates and room type. Prices quoted in PLN at booking, converted to USD at that day's rate.

Why the difference? LetsFG's price does not rise with demand or with who is searching, and there is no loyalty-program cross-subsidy. At booking the price is held on your card, not taken, and it is charged only once the hotel confirms. The comparison above uses free-cancellation rates on both sides; LetsFG also sells non-refundable rates, and every offer says which it is.


Try it right now — no install needed

Human users: Use letsfg.co and search flights instantly in your browser:

🌐 Search on letsfg.co

Search any route, compare live results, and book the flights you want — no installation needed.

Agents / scripts (free server-side): Get a Bearer token by putting a payment method on file (nothing is charged) → use POST /api/search and POST /api/agent-book. This is PFS — Programmatic Flight Search powered by the letsfg.co engine. Search is free; the token is short-lived and refreshes itself. See letsfg.co/for-agents for the full guide.

When you're ready to integrate it into your own agent, keep reading.


Three ways to use LetsFG

Path 1 — MCP / CLI / SDKPath 2 — PFS (Programmatic Flight Search via letsfg.co)Path 3 — Developer API
Best forAI agents (Claude, ChatGPT, Cursor, Windsurf), personal use — easiest way inScripts/agents calling the API directly with a Bearer tokenHigh-volume commercial integrations that want prepaid billing. Most agents should not use this
Speed8–10 s to first results8–10 s to first results2–5 s (discover) · 8–10 s to first results (full search)
Search costFree (card connected once, nothing charged)Free (card connected once, nothing charged)Look-to-book: 200 free after every booking, then $0.01
Bookingbook_flight — fare held on your card, agent buys the ticket, real PNRPOST /api/agent-book — same flowPOST /flights/book — same flow, no booking fee
SetupAdd https://letsfg.co/developers/api/mcp as an MCP server and approve (one tap, no card)Same token, sent as Authorization: Bearer — see belowletsfg.co/developers
Runs whereOur servers (ranking local in the SDK)Our serversOur servers
  • MCP / CLI / SDK (Path 1): add https://letsfg.co/developers/api/mcp as an MCP server in Claude, ChatGPT, Cursor or Windsurf and approve the connection. The consent step opens letsfg.co/connect, where the person adds a card (any card, or Revolut Pay / Google Pay) in a 0.00 Revolut setup: nothing is charged, no Revolut account is needed, and card details go to Revolut, never to LetsFG. The token you get back is card-backed: it searches for free and it can book. The Python and JS SDKs read that token from LETSFG_BEARER_TOKEN or ~/.letsfg/config.json and apply the open-source ranking algorithm locally. (letsfg auth runs this same connect flow from the terminal: it registers itself as an OAuth client, opens the card screen in a browser for a person to approve, and stores the token.)

  • PFS — Programmatic Flight Search (Path 2): For scripts and agents that call the API directly. letsfg.co is human-only by default (Cloudflare Turnstile + bot protection), so the card-backed token from the connect flow is the only programmatic way in. Send it on every request:

    1. Search: POST https://letsfg.co/api/search with Authorization: Bearer <token> → { search_id }
    2. Poll: GET https://letsfg.co/api/results/<search_id> (never counts against the rate limit)
    3. Book: POST https://letsfg.co/api/agent-book → { booking_ref } within seconds
    4. Wait: POST https://letsfg.co/api/agent-book/status with { booking_ref } every 20–30 s until completed (PNR), failed (hold released, nothing charged) or needs_attention

    POST /api/agent-access/request still answers 402 with add_card_url and these steps as JSON, so an agent that starts from the endpoint lands in the same place. The MPP lane (a wallet, no card) is unchanged: answer the WWW-Authenticate: Payment challenge ($0.01 once) and verify with Authorization: Payment. The Stripe setup_url / SetupIntent lanes were retired on 2026-09-02 and every token they issued was revoked; reconnect at letsfg.co/connect. Full guide and response schema: letsfg.co/for-agents.

  • Developer API (Path 3): Server-side search and booking at letsfg.co/developers. Look-to-book search (200 free after every booking, then $0.01), real booking through POST /flights/book on a connected Revolut method, full NL query parsing, a /discover endpoint that checks 20 destinations in one call (2–5 s), hotels, and a free sandbox at /sandbox/flights/* that simulates booking end to end (states, questions, failures, real timings). Full docs: letsfg.co/developers/api/docs.

Free server-side search: Use Path 1 or PFS — connect a card once at letsfg.co/connect (nothing charged) and searches run free on our servers. No Playwright, no local install beyond the SDK. Booking from your own product: Use the Developer API (Path 3) — look-to-book search, POST /flights/book, and no booking or transaction fee. Hotels work on both the card-backed token and a Developer API key.


Pricing

How you use itSearchFlight bookingHotel bookingRuns where?
MCP Server✅ Free (card connected once at letsfg.co/connect)Price held, captured on a real PNR. No separate feePrice held, captured once the hotel confirms. No reservation feeOur servers
CLI / Python SDK / npm✅ Free (same token)SameSameOur servers
PFS (raw API via letsfg.co)✅ Free (same token, or $0.01 once via MPP)SamePrice held, captured once the hotel confirms. No reservation feeOur servers
Developer API200 free per booking, then $0.01Price held, captured on a real PNR. No booking fee, no transaction feePrice held, captured once the hotel confirms. No reservation feeOur servers

MCP / CLI / SDK / PFS = free search, real booking, no separate fee. Connect a card once (a 0.00 Revolut setup, nothing is charged) and searching is free. No credits, no unlock step. Booking works exactly like the website checkout: book_flight / POST /api/agent-book holds the price shown on your card, a LetsFG booking agent buys the ticket from the seller, and the hold is captured only once a real airline PNR exists. If the booking fails the hold is released and nothing is charged. The price you see is the price you pay; nothing is added at booking.

Hotels = the price on the offer, held then captured, on every path. Booking holds the full price on your card, LetsFG books and pays the hotel, and the hold is captured only once the hotel confirms; a failed booking releases it. There is no reservation fee, no deposit and no pay link. Every rate type is sold, and each offer says whether it is refundable and until when. See Hotels below.

Developer API = business use, look-to-book. letsfg.co/developers books flights itself — POST /flights/book holds the fare on your connected Revolut method and a LetsFG booking agent buys the ticket, exactly like the other paths. Search is not priced per call: you get 200 free searches after every booking you make, and booking resets the counter. Past that, blocks of 500 for $5.00 ($0.01 each). No booking fee, no transaction fee on top: the amount the search returned is the amount charged. Minimum top-up: $5.

The monthly per-search tiers ($0.50 / $0.20 / $0.10) were retired on 2026-09-08 along with Stripe. Payments are Revolut: POST /agents/connect-payment returns a one-time link that saves a card, and nothing is charged to connect.

💡 Know someone who travels? The more people discover LetsFG, the more airlines we cover — and the better it gets for everyone. ⭐ Star · Share with a friend


Why developers star this repo

Google Flights / ExpediaLetsFG
PriceVaries by site and searchStable across repeat searches. $133 cheaper across 5 routes, verified 2026-08-05.
CoverageOne site's sourcesEvery airline in the world — OTAs, budget carriers, full-service
Speed30 s+ (page loads, ads, redirects)CLI/PFS: 8–10 s to first results · API discover: 2–5 s
Repeat search raises price?YesNever
Works in AI agents?No APIMCP · CLI · PFS (card connected once, free) · Developer API (prepaid)
BookingRedirects to OTA checkoutReal airline PNR, e-ticket to inbox
Cabin class filterNoEconomy, premium, business, first
Cost to youVaries by siteCLI/PFS: free search; no booking fee and no transaction fee. Developer API: 200 free searches after every booking, then $0.01/search; no booking fee, no transaction fee.

Get started

Everything runs on our servers. One card connection covers the MCP, the SDKs and the raw API.

🔌 MCP — connect once, search and book

Add the remote server and approve the connection. The consent step opens letsfg.co/connect: one tap, no card, and you are in. The card is asked for at the first booking (0.00 setup, nothing charged).

# Claude Code
claude mcp add --transport http letsfg https://letsfg.co/developers/api/mcp
// Cursor (~/.cursor/mcp.json) — Windsurf uses "serverUrl" instead of "url"
{ "mcpServers": { "letsfg": { "url": "https://letsfg.co/developers/api/mcp" } } }

claude.ai and ChatGPT: add a custom connector with the same URL.

Then, in the chat: "find me the cheapest flight from London to Barcelona on June 15 and book it". search_flights returns offers; book_flight holds the fare on your card and starts a LetsFG booking agent; get_flight_booking reports the PNR when it lands (4–11 minutes).

🖥️ CLI / SDK — same token, ranking runs locally

pip install letsfg
export LETSFG_BEARER_TOKEN=<token from the connect flow>
letsfg search LHR BCN 2026-06-15
letsfg search LHR JFK 2026-06-15 --cabin C   # cabin class: M economy, W premium, C business, F first

The SDKs read the token from LETSFG_BEARER_TOKEN or ~/.letsfg/config.json. letsfg auth performs that connect flow itself: it registers as an OAuth client, opens https://letsfg.co/connect for a person to approve, and writes the token to ~/.letsfg/config.json. Add --no-browser to print the URL instead of opening one.

🔌 PFS — Programmatic Flight Search (free, server-side)

Run LetsFG's full search on our servers from any script. Access requires a card connected to a LetsFG account: letsfg.co is human-only (Cloudflare Turnstile), so the card-backed token from the connect flow is the only programmatic way in. Nothing is charged to connect it.

# 1. Search with the token
curl -X POST https://letsfg.co/api/search \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"origin":"LHR","destination":"BCN","date_from":"2026-06-15"}'
# → {"search_id":"ws_abc123","status":"searching"}

# 2. Poll until done (keep going while split_ticket_pending is true)
curl https://letsfg.co/api/results/ws_abc123 -H "Authorization: Bearer <token>"

# 3. Book — the fare is HELD on the card, a LetsFG agent buys the ticket
curl -X POST https://letsfg.co/api/agent-book \
  -H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
  -d '{"search_id":"ws_abc123","offer_id":"wo_abc123","contact_email":"ada@example.com",
       "passenger":{"given_name":"Ada","family_name":"Lovelace","born_on":"1990-04-01","gender":"f",
                    "nationality":"GB","phone_number":"+447700900000","phone_country":"GB",
                    "address_line1":"1 Analytical Way","address_city":"London","address_postal":"N1 9GU","address_country":"GB"}}'
# → {"booking_ref":"eyJ..."} within seconds

# 4. Wait for the PNR (every 20–30 s; a booking takes 4–11 minutes)
curl -X POST https://letsfg.co/api/agent-book/status \
  -H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
  -d '{"booking_ref":"eyJ..."}'
# → {"state":"completed","pnr":"ABC123","charged_amount":93,"currency":"EUR"}

failed means the hold was released and nothing was charged; needs_attention means a human at LetsFG is checking it, do not book again. A missing passenger de

Sourced from the repository README.

More in AI & Agents