LetsFG

LetsFG

Agent-native travel search. 5 second flights & hotels $50 cheaper. Free forever for the first 1000 Stargazers.

Category
访问服务器

README

<table> <tr> <td width="140"> <img src="assets/logo.png" alt="LetsFG" width="120"> </td> <td>

LetsFG🔥🚀✈️ — agent-native travel search.

Flights & hotels $50 cheaper in 5 seconds. Native to AI agents.

</td> </tr> </table>

LetsFG finds the cheapest flights across the entire internet — 75 airline connectors firing in parallel + enterprise GDS sources (Amadeus, Duffel, Sabre, Travelport) — and returns results in ~5 seconds. No web scraping wait times, no browser tabs, no inflated prices. Just raw airline prices, zero markup.

Native to OpenClaw, Perplexity Computer, Manus, Claude Code, Codex, Cursor, Windsurf — any AI agent that supports CLI, MCP, or packages.

100% free. Just star this repo. Star → register → get unlimited access forever. No credit card, no trial, no catch — the entire platform is free for the first 1,000 stargazers. Once 1,000 people have starred, this offer closes.

GitHub stars MIT License PyPI npm npm Smithery

Demo: LetsFG vs Default Agent Search

<div align="center"> <img src="assets/demo.gif" alt="Demo: LetsFG vs Default Agent Search" width="640"> </div>

Side-by-side comparison: default agent search (OpenClaw, Perplexity Computer) vs LetsFG CLI. Same query — LetsFG finds cheaper flights across 75 airlines in seconds.

Why LetsFG?

Flight websites inflate prices with demand tracking, cookie-based pricing, and surge markup. The same flight is often $20–$50 cheaper through LetsFG — raw airline price, zero markup.

LetsFG works by finding the best price across the entire internet. It fires 75 airline connectors in parallel, scanning carriers across Europe, Asia, Americas, Middle East, and Africa — then merges results with enterprise GDS/NDC sources (Amadeus, Duffel, Sabre, Travelport) that provide competitive pricing from 400+ carriers including premium airlines like Lufthansa, British Airways, and Emirates. The best price wins.

Google Flights / Booking.com / Expedia LetsFG
Search speed 30s+ (loading, ads, redirects) ~10 seconds
Search Free (with tracking/inflation) Free (no tracking, no cookies)
Booking Ticket + hidden markup Free (raw airline price)
Price goes up on repeat search? Yes (demand tracking) Never
LCC coverage Missing many low-cost carriers 75 direct airline connectors
Works inside AI agents? No Native (CLI, MCP, SDK)

One-Click Install

pip install letsfg

That's it. You can search flights immediately — no account, no API key, no configuration:

letsfg search-local GDN BCN 2026-06-15

This runs 75 airline connectors locally on your machine and returns real-time prices. Completely free, unlimited, zero setup.


Star History

<a href="https://star-history.com/#LetsFG/LetsFG&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=LetsFG/LetsFG&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=LetsFG/LetsFG&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=LetsFG/LetsFG&type=Date" /> </picture> </a>


Two Ways to Use LetsFG

Option A: Local Only (Free, No API Key)

Install and search. One command, zero configuration.

pip install letsfg
letsfg search-local LHR BCN 2026-04-15

What you get:

  • 75 airline connectors running on your machine (Ryanair, Wizz Air, EasyJet, Southwest, AirAsia, Norwegian, and 69 more)
  • Real-time prices scraped directly from airline websites
  • Virtual interlining — cross-airline round-trips that save 30–50%
  • Completely free, unlimited searches
from letsfg.local import search_local

result = await search_local("GDN", "BCN", "2026-06-15")
for offer in result.offers[:5]:
    print(f"{offer.airlines[0]}: {offer.currency} {offer.price}")

Option B: With API Key (Recommended — Much Better Coverage)

One extra command unlocks the full power of LetsFG:

pip install letsfg
letsfg register --name my-agent --email you@example.com
# → Returns: trav_xxxxx... (your API key)
export LETSFG_API_KEY=trav_...

letsfg search LHR JFK 2026-04-15

What you get (in addition to everything in Option A):

  • Enterprise GDS/NDC providers — Amadeus, Duffel, Sabre, Travelport, Kiwi. These are contract-only data sources that normally require enterprise agreements worth $50k+/year. LetsFG is contracted with these providers and makes their inventory available to every user.
  • 400+ full-service airlines — Lufthansa, British Airways, Emirates, Singapore Airlines, ANA, Cathay Pacific, and hundreds more that don't have public APIs
  • Competitive pricing — the backend aggregates offers from multiple GDS sources and picks the cheapest for each route
  • Unlock & book — confirm live prices and create real airline PNRs with e-tickets
  • Both local connectors AND cloud sources run simultaneously — results merged and deduplicated automatically

Registration is instant, free, and handled by CLI — an AI agent can do it in one command. The API key connects you to our closed-source backend service which maintains enterprise contracts with GDS/NDC providers and premium carriers.

Star this repo and register — that's it. Unlimited access, completely free, forever. First 1,000 stars only.

from letsfg import LetsFG

bt = LetsFG()  # reads LETSFG_API_KEY from env
flights = bt.search("LHR", "JFK", "2026-04-15")
print(f"{flights.total_results} offers, cheapest: {flights.cheapest.summary()}")

Quick Start (Full Flow)

pip install letsfg

# Register and get API key (free, instant)
letsfg register --name my-agent --email you@example.com
export LETSFG_API_KEY=trav_...

# Search (free, unlimited)
letsfg search LHR JFK 2026-04-15
letsfg search LON BCN 2026-04-01 --return 2026-04-08 --cabin M --sort price

# Unlock (confirms live price, reserves for 30 min)
letsfg unlock off_xxx

# Book
letsfg book off_xxx \
  --passenger '{"id":"pas_0","given_name":"John","family_name":"Doe","born_on":"1990-01-15","gender":"m","title":"mr"}' \
  --email john.doe@example.com

All commands support --json for machine-readable output:

letsfg search GDN BER 2026-03-03 --json | jq '.offers[0]'

Install

Python (recommended — includes 75 local airline connectors)

pip install letsfg
playwright install chromium  # needed for browser-based connectors

JavaScript / TypeScript (API client only)

npm install -g letsfg

MCP Server (Claude Desktop / Cursor / Windsurf / OpenClaw)

npx letsfg-mcp

Add to your MCP config:

{
  "mcpServers": {
    "letsfg": {
      "command": "npx",
      "args": ["-y", "letsfg-mcp"],
      "env": {
        "LETSFG_API_KEY": "trav_your_api_key"
      }
    }
  }
}

Note: LETSFG_API_KEY is optional. Without it, the MCP server still runs all 75 local connectors. With it, you also get enterprise GDS/NDC sources (400+ more airlines).

Python SDK

from letsfg import LetsFG

bt = LetsFG(api_key="trav_...")
flights = bt.search("LHR", "JFK", "2026-04-15")
print(f"{flights.total_results} offers, cheapest: {flights.cheapest.summary()}")

unlocked = bt.unlock(flights.offers[0].id)
booking = bt.book(
    offer_id=unlocked.offer_id,
    passengers=[{"id": "pas_0", "given_name": "John", "family_name": "Doe", "born_on": "1990-01-15", "gender": "m", "title": "mr"}],
    contact_email="john.doe@example.com",
)
print(f"Booked! PNR: {booking.booking_reference}")

JS SDK

import { LetsFG } from 'letsfg';

const bt = new LetsFG({ apiKey: 'trav_...' });
const flights = await bt.search('LHR', 'JFK', '2026-04-15');
console.log(`${flights.totalResults} offers`);

CLI Commands

Command Description
letsfg register Get your API key
letsfg search <origin> <dest> <date> Search flights (free)
letsfg locations <query> Resolve city/airport to IATA codes
letsfg unlock <offer_id> Confirm live price & reserve for 30 min
letsfg book <offer_id> Book the flight
letsfg system-info Show system resources & concurrency tier
letsfg me View profile & usage stats

All commands accept --json for structured output and --api-key to override the env variable.

How It Works

  1. Search (free) — returns offers with full details: price, airlines, duration, stopovers, conditions
  2. Unlock — confirms live price with the airline, reserves for 30 minutes
  3. Book — creates real airline PNR, e-ticket sent to passenger email

Two Search Modes

Mode What it does Speed Auth
Cloud search Queries GDS/NDC providers (Duffel, Amadeus, Sabre, Travelport, Kiwi) via backend API 2-15s API key
Local search Fires 75 airline connectors on your machine via Playwright + httpx 5-25s None

Both modes run simultaneously by default. Results are merged, deduplicated, currency-normalized, and sorted.

Virtual Interlining

The combo engine builds cross-airline round-trips by combining one-way fares from different carriers. A Ryanair outbound + Wizz Air return can save 30-50% vs booking a round-trip on either airline alone.

City-Wide Airport Expansion

Search a city code and LetsFG automatically searches all airports in that city. LON expands to LHR, LGW, STN, LTN, SEN, LCY. NYC expands to JFK, EWR, LGA. Works for 25+ major cities worldwide — one search covers every airport.

Architecture

┌─────────────────────────────────────────────────────┐
│  AI Agents / CLI / SDK / MCP Server                 │
├──────────────────┬──────────────────────────────────┤
│  Local connectors │  Enterprise Cloud API            │
│  (75 airlines via │  (Amadeus, Duffel, Sabre,        │
│   Playwright)     │   Travelport, Kiwi — contract-   │
│                   │   only GDS/NDC providers)        │
├──────────────────┴──────────────────────────────────┤
│            Merge + Dedup + Combo Engine              │
│            (virtual interlining, currency norm)      │
└─────────────────────────────────────────────────────┘

Local Airline Connectors (75 airlines)

The Python SDK includes 75 production-grade airline connectors — not fragile scrapers, but maintained integrations that handle each airline's specific API pattern. No API key needed for local search. Each connector uses one of three proven strategies:

Strategy How it works Example airlines
Direct API Reverse-engineered REST/GraphQL endpoints via httpx/curl_cffi Ryanair, Wizz Air, Norwegian, Akasa
CDP Chrome Real Chrome + Playwright CDP for sites with bot detection EasyJet, Southwest, Pegasus
API Interception Playwright page navigation + response interception VietJet, Cebu Pacific, Lion Air

Supported Airlines

<details> <summary>Full list of 75 airline connectors</summary>

Region Airlines
Europe Ryanair, Wizz Air, EasyJet, Norwegian, Vueling, Eurowings, Transavia, Pegasus, Turkish Airlines, Condor, SunExpress, Volotea, Smartwings, Jet2, LOT Polish Airlines
Middle East & Africa Emirates, Etihad, Qatar Airways, flydubai, Air Arabia, flynas, Salam Air, Air Peace, FlySafair
Asia-Pacific AirAsia, IndiGo, SpiceJet, Akasa Air, Air India Express, VietJet, Cebu Pacific, Scoot, Jetstar, Peach, Spring Airlines, Lucky Air, 9 Air, Nok Air, Batik Air, Jeju Air, T'way Air, ZIPAIR, Singapore Airlines, Cathay Pacific, Malaysian Airlines, Thai Airways, Korean Air, ANA, US-Bangla, Biman Bangladesh
Americas American Airlines, Delta, United, Southwest, JetBlue, Alaska Airlines, Hawaiian Airlines, Sun Country, Frontier, Volaris, VivaAerobus, Allegiant, Avelo, Breeze, Flair, GOL, Azul, JetSmart, Flybondi, Porter, WestJet, LATAM, Copa, Avianca
Aggregator Kiwi.com (virtual interlining + LCC fallback)

</details>

Local Search (No API Key)

from letsfg.local import search_local

# Runs all relevant connectors on your machine — completely free
result = await search_local("GDN", "BCN", "2026-06-15")

# Limit browser concurrency for constrained environments
result = await search_local("GDN", "BCN", "2026-06-15", max_browsers=4)
# CLI local-only search
letsfg search-local GDN BCN 2026-06-15

# Limit browser concurrency
letsfg search-local GDN BCN 2026-06-15 --max-browsers 4

Shared Browser Infrastructure

All browser-based connectors share a common launcher (connectors/browser.py) with:

  • Automatic Chrome discovery (Windows, macOS, Linux)
  • Stealth headless mode (--headless=new) — undetectable by airline bot protection
  • Off-screen window positioning to avoid stealing focus
  • CDP persistent sessions for airlines that require cookie state
  • Adaptive concurrency — automatically scales browser instances based on system RAM
  • BOOSTED_BROWSER_VISIBLE=1 to show browser windows for debugging

Performance Tuning

LetsFG auto-detects your system's available RAM and scales browser concurrency accordingly:

System RAM Tier Max Browsers Notes
< 2 GB Minimal 2 Low-end VMs, CI runners
2–4 GB Low 3 Budget laptops
4–8 GB Moderate 5 Standard laptops
8–16 GB Standard 8 Most desktops
16–32 GB High 12 Dev workstations
32+ GB Maximum 16 Servers

Override auto-detection when needed:

# Environment variable (highest priority)
export LETSFG_MAX_BROWSERS=4

# CLI flag
letsfg search-local LHR BCN 2026-04-15 --max-browsers 4

# Check your system profile
letsfg system-info
# Python SDK
from letsfg import configure_max_browsers, get_system_profile

profile = get_system_profile()
print(f"RAM: {profile['ram_available_gb']:.1f} GB, Tier: {profile['tier']}, Recommended: {profile['recommended_max_browsers']}")

configure_max_browsers(4)  # explicit override

Error Handling

Exception HTTP When
AuthenticationError 401 Missing or invalid API key
OfferExpiredError 410 Offer no longer available (search again)
LetsFGError any Base class for all API errors

Packages

Package Install What it is
Python SDK + CLI pip install letsfg SDK + letsfg CLI + 75 local airline connectors
JS/TS SDK + CLI npm install -g letsfg SDK + letsfg CLI command
MCP Server npx letsfg-mcp Model Context Protocol for Claude, Cursor, Windsurf
Remote MCP https://api.letsfg.co/mcp Streamable HTTP — no install needed
Smithery smithery.ai/server/letsfg-mcp One-click MCP install via Smithery

Documentation

Guide Description
Getting Started Authentication, payment setup, search flags, cabin classes
API Guide Error handling, search results, workflows, unlock details, location resolution
Agent Guide AI agent architecture, preference scoring, price tracking, rate limits
Packages & SDKs Python SDK, JavaScript SDK, MCP Server, local connectors
CLI Reference Commands, flags, examples
AGENTS.md Agent-specific instructions (for LLMs)
CLAUDE.md Codebase context for Claude

API Docs

  • OpenAPI spec: openapi.yaml (included in this repo)
  • Interactive Swagger UI: https://api.letsfg.co/docs
  • ReDoc: https://api.letsfg.co/redoc
  • Agent discovery: https://api.letsfg.co/.well-known/ai-plugin.json
  • Agent manifest: https://api.letsfg.co/.well-known/agent.json
  • LLM instructions: https://api.letsfg.co/llms.txt
  • Smithery: https://smithery.ai/server/letsfg-mcp

Base URL: https://api.letsfg.co

Links

  • PyPI: https://pypi.org/project/letsfg/
  • npm (JS SDK): https://www.npmjs.com/package/letsfg
  • npm (MCP): https://www.npmjs.com/package/letsfg-mcp

Contributing

See CONTRIBUTING.md for guidelines.

Security

See SECURITY.md for our security policy.

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选