能力标签
LetsFG MCP工具
🛠
AI工具

LetsFG MCP工具

基于 Python · 开源 AI 工具,GitHub 社区精选
英文名:LetsFG
⭐ 1.1k Stars 🍴 54 Forks 💻 Python 📄 NOASSERTION 🏷 AI 8.2分
8.2AI 综合评分
MCP工具航班预订AI AgentPython开源
✦ AI Skill Hub 推荐

LetsFG MCP工具 是 AI Skill Hub 本期精选AI工具之一。已获得 1.1k 颗 GitHub Star,综合评分 8.2 分,整体质量较高。我们强烈推荐将其纳入你的 AI 工具库,帮助提升工作效率。

📚 深度解析

LetsFG MCP工具 是一款基于 Python 的开源工具,在 GitHub 上收获 1k+ Star,是MCP工具、航班预订、AI Agent、Python领域中的优质开源项目。开源工具的最大优势在于代码完全透明,你可以审计每一行代码的安全性,也可以根据自身需求进行二次开发和定制。

**为什么要使用开源工具而非商业 SaaS?**
对于个人开发者和有隐私需求的用户,本地部署的开源工具意味着数据不离本机,不受第三方服务商的数据政策约束。同时,开源工具通常没有使用次数限制和月度费用,一次安装即可长期使用,对于高频使用场景的总拥有成本(TCO)远低于订阅制商业工具。

**安装与环境准备**
LetsFG MCP工具 依赖 Python 运行环境。建议通过 pyenv(Python)或 nvm(Node.js)管理 Python 版本,避免全局环境污染。对于新手用户,推荐先创建虚拟环境(python -m venv venv && source venv/bin/activate),再安装依赖,这样即使出现问题也可以随时删除虚拟环境重新开始,不影响系统稳定性。

**社区与维护**
GitHub Issue 和 Discussion 是获取帮助的最快渠道。在提问前建议先检查 Closed Issues(已关闭的问题),大多数常见问题都已有解答。遇到 Bug 时,提供 pip list 的输出、完整错误堆栈和最小可复现示例,能显著提高开发者响应速度。AI Skill Hub 将持续追踪 LetsFG MCP工具 的版本更新,及时通知重要功能变化。

📋 工具概览

LetsFG MCP工具 是一款基于 Python 开发的开源工具,专注于 MCP工具、航班预订、AI Agent 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

GitHub Stars
⭐ 1.1k
开发语言
Python
支持平台
Windows / macOS / Linux
维护状态
正常维护,社区驱动
开源协议
NOASSERTION
AI 综合评分
8.2 分
工具类型
AI工具
Forks
54

📖 中文文档

以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

LetsFG MCP工具 是一款基于 Python 开发的开源工具,专注于 MCP工具、航班预订、AI Agent 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

📌 核心特色
  • 开源免费,支持本地部署,数据完全自主可控
  • 活跃的 GitHub 开源社区,持续迭代更新
  • 提供详细文档和使用示例,新手友好
  • 支持自定义配置,灵活适配不同使用环境
  • 可作为基础组件集成进现有技术栈或进行二次开发
🎯 主要使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一:pip 安装(推荐)
pip install letsfg

# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install letsfg

# 方式三:从源码安装(获取最新功能)
git clone https://github.com/LetsFG/LetsFG
cd LetsFG
pip install -e .

# 验证安装
python -c "import letsfg; print('安装成功')"
📋 安装步骤说明
  1. 访问 GitHub 仓库页面
  2. 按照 README 文档完成依赖安装
  3. 根据系统环境完成初始化配置
  4. 参考官方示例或文档开始使用
  5. 遇到问题可在 GitHub Issues 中查找解答
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 命令行使用
letsfg --help

# 基本用法
letsfg input_file -o output_file

# Python 代码中调用
import letsfg

# 示例
result = letsfg.process("input")
print(result)
以下配置示例基于典型使用场景生成,具体参数请参照官方文档调整。
配置示例
# letsfg 配置文件示例(config.yml)
app:
  name: "letsfg"
  debug: false
  log_level: "INFO"

# 运行时指定配置文件
letsfg --config config.yml

# 或通过环境变量配置
export LETSFG_API_KEY="your-key"
export LETSFG_OUTPUT_DIR="./output"
📑 README 深度解析 真实文档 完整度 57/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

简介

<a href="https://github.com/LetsFG/LetsFG"> <img src="assets/banner.png" alt="LetsFG" width="600"> </a>

<br>

Try it right now — no install needed

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

Things worth knowing before you build

- Searching hotels needs no card; booking one does. A hotel search opens a real session at the supplier, so an account with no card on file gets a daily number of hotel searches. Booking asks for the card before anything is held: book_hotel returns a link to add it, as book_flight does. The same card that authorises flight booking authorises hotels — there is no separate hotel signup. - Every rate type is sold, refundable and non-refundable. Each offer carries refundable and free_cancellation_until; show them to the guest before booking a non-refundable rate. - Booking is asynchronous. book_hotel returns a booking_job_id, not a booking — the real thing takes minutes. Poll hotel_booking(job_id) until status is succeeded, failed or attention, or call book_hotel_and_wait. attention means a person at LetsFG is confirming the outcome with the supplier: the hold is kept, nothing is charged, and you must not book again. - Copy the offer back verbatim. Send expected_price, expected_cost, currency and fx_rate exactly as the offer returned them; anything else is refused as price_mismatch before anything is held. - Name every guest. guests needs one entry per person in the room, children included: adults first, then children in child_ages order. Fewer names than the searched party fails the booking before anything reaches the hotel, and the hold is released. - Do not re-book while a job is running. Poll it. A retry with the same idempotency_key returns the existing job instead of booking twice. - The guest hears from us either way. The guest's e-mail gets the confirmation, or a message if the booking fails or needs checking. - price is what the guest pays. expected_cost is the supplier's own figure, there only to be sent back — never quote it.

Install

PackageCommandWhat you get
**Remote MCP**https://letsfg.co/mcpNo install. Approve the connection at letsfg.co/connect (one tap, no card), search and book
**Python SDK + CLI**pip install letsfgSDK + CLI (token from the connect flow in LETSFG_BEARER_TOKEN)
**MCP Server (stdio)**npx letsfg-mcpLocal server for clients without remote MCP support; needs LETSFG_BEARER_TOKEN
**JS/TS SDK**npm install -g letsfgSDK + CLI + open-source ranking engine
**Agent Skill**npx skills add LetsFG/LetsFGInstall flight search skill for any AI agent ([skills.sh](https://skills.sh))
**Smithery**[smithery.ai/servers/letsfg](https://smithery.ai/servers/letsfg)One-click MCP install
**Omarchy plugin**omarchy plugin add https://github.com/LetsFG/LetsFG.git --enableFlight search in the Omarchy bar ([details](OMARCHY-PLUGIN.md))

---

Reads LETSFG_BEARER_TOKEN env var or ~/.letsfg/config.json (the token from the connect flow)

result = await search_local("GDN", "BCN", "2026-06-15")

for offer in result.offers[:5]: print(f"{offer.airlines[0]}: {offer.currency} {offer.price}") ```

---

🖥️ 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.

⚡ Developer API — server-side search, booking and hotels

A separate product for high-volume commercial integrations; most agents should not use it. Look-to-book search, results in seconds, and real booking through POST /flights/book — plus /discover (20 destinations in one call), async polling, NL query parsing, hotels, and a free sandbox where booking works end to end (same responses, states, questions and timings as production, no money) - build your booking flow there first.

```bash

Register, then search with your API key

curl -X POST https://letsfg.co/developers/api/v1/agents/register \ -H "Content-Type: application/json" \ -d '{"agent_name":"my-agent","email":"you@example.com"}'

curl -X POST https://letsfg.co/developers/api/v1/flights/search \ -H "X-API-Key: letsfg_..." \ -H "Content-Type: application/json" \ -d '{"origin":"LHR","destination":"BCN","date_from":"2026-06-15"}'


Pricing: 200 searches free after every booking, then blocks of 500 for $5.00 ($0.01 each). No booking fee, no transaction fee. Minimum top-up $5. Test for free in the sandbox first, booking included. Full docs: [letsfg.co/developers/api/docs](https://letsfg.co/developers/api/docs).

<details>
<summary><strong>Full search → book flow (MCP / PFS agent path, no unlock step)</strong></summary>
search_flights LON → BCN, 2026-04-01, return 2026-04-08 get_flight_results (while more offers are still landing) book_flight search_id + offer_id + one traveller's real details + contact_email → booking_ref in seconds; price HELD on the connected card get_flight_booking every 20–30 s → completed (PNR, charged_amount) | failed (hold released) | needs_attention ```

Over raw HTTP the same four steps are POST /api/search, GET /api/results/<id>, POST /api/agent-book, POST /api/agent-book/status.

letsfg unlock was retired on 2026-09-08 and its route answers 410 Gone. There is no unlock step on either lane: booking holds the fare and captures only against a real PNR, which is what unlock existed to protect against. See CLI Commands.

</details>

💡 Like what you see? Support us — ⭐ Star · Share with a friend

---

Python SDK

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()}")

JavaScript SDK

import { LetsFG } from 'letsfg';

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

CLI Commands

CommandDescription
letsfg authConnect at letsfg.co/connect (one tap, no card) and store the token (self-registers, PKCE + loopback redirect, opens a browser). --no-browser prints the URL
letsfg search <origin> <dest> <date>Search flights (free with the token from the connect flow)
letsfg register**[Developer API only]** Register an account for the paid, prepaid-credit product — not part of the agent flow
letsfg connect-payment**[Developer API only]** Print a one-time link to connect a card to the paid account; nothing is charged. letsfg setup-payment is kept as an alias — the Stripe route it once called was retired on 2026-09-08 and answers 410 Gone
letsfg recover --email <email>Recover lost API key via email
letsfg locations <query>Resolve city/airport to IATA codes
letsfg unlock <offer_id>**RETIRED 2026-09-08** — the route answers 410 Gone. There is no unlock step on either lane; use letsfg book
letsfg book <offer_id>Book the flight: holds the fare on the connected card, a LetsFG agent buys the ticket, returns a booking_ref to poll
letsfg meView profile & usage stats

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

---

CLI / SDK / MCP (free, cloud-backed)

Connect the MCP (once, one tap at letsfg.co/connect) → token → Search (free) → Book (card asked for at the first booking; hold → agent → PNR)
  1. Auth — add https://letsfg.co/mcp as an MCP server and approve it. The OAuth consent step opens letsfg.co/connect: one tap, no card. The card is asked for at the first booking, in a 0.00 Revolut setup. Nothing is charged to connect. The SDKs read that token from LETSFG_BEARER_TOKEN or ~/.letsfg/config.json.
  2. Search — letsfg search LHR BCN 2026-06-15 calls POST https://letsfg.co/api/search, polls until done (8–10 s to first results), and applies the open-source ranking algorithm locally.
  3. Book — POST /api/agent-book holds the price shown on the card and starts a LetsFG booking agent; POST /api/agent-book/status reports completed with the PNR (4–11 minutes), or failed with the hold released. Nothing extra is added at booking.

PFS — raw API (same as CLI, without the wrapper)

Connected at letsfg.co/connect -> Bearer token -> POST /api/search -> poll GET /api/results/<id> -> POST /api/agent-book -> poll POST /api/agent-book/status
  1. Get a Bearer token — connect through the MCP OAuth flow; the consent step is letsfg.co/connect (one tap, no card; the card or Revolut Pay is asked for at the first booking, 0.00, nothing charged). POST /api/agent-access/request answers 402 with add_card_url and the steps. The MPP wallet lane ($0.01 once) verifies at POST /api/agent-access/verify with Authorization: Payment.
  2. Search — POST https://letsfg.co/api/search with Authorization: Bearer <token>. Returns { search_id }. Poll GET /api/results/<search_id> immediately, then every 2 s, until status leaves searching. Then keep polling while split_ticket_pending or gf_enrich_pending is true — the split-ticket offer merges in after the status turns terminal.
  3. Book — POST /api/agent-book → booking_ref; poll POST /api/agent-book/status until completed (PNR) or failed (hold released, nothing charged).

Developer API — server-side search and booking

Register → Connect a Revolut method → Search (200 free per booking) → POST /flights/book → poll to a PNR
  1. Discover — POST /flights/discover with up to 20 destinations, get indicative prices sorted cheapest-first. 1 credit, 2–5 s. Use to rank options before committing to a full search.
  2. Full search — POST /flights/search (blocking) or /flights/search/async (non-blocking + poll). 1 credit, 8–10 s to first results.
  3. Book — each offer includes a direct airline booking_url. No LetsFG fee, no checkout step.

<details> <summary><strong>Virtual interlining</strong></summary>

The server-side 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.

</details>

<details> <summary><strong>City-wide airport expansion</strong></summary>

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.

</details>

---

🖥️ Omarchy desktop plugin

Search every airline in the world from the Omarchy bar. Type two airport codes and a date, press Search, click an offer to open it. The panel lives in this repo — manifest.json, BarWidget.qml, Panel.qml and Model.js at the root — and runs on the same engine as the CLI and the MCP server, ordered by the same open-source ranking algorithm in sdk/js/src/ranking.ts.

<p align="center"><img src="preview.png" alt="LetsFG Flights panel in the Omarchy bar" width="820"></p>

Install

omarchy plugin add https://github.com/LetsFG/LetsFG.git --enable

Then add LetsFG Flights to a bar section in the Omarchy bar settings. The panel reads your LetsFG token from ~/.letsfg/config.json (what letsfg auth writes) and renews it itself, or connects from the panel via letsfg.co/connect — one tap, no card. See OMARCHY-PLUGIN.md.

Remove

omarchy plugin remove io.github.letsfg.flights

That removes the plugin only. Your token is yours — delete ~/.letsfg/config.json yourself if you want it gone.

The plugin bundles no API keys. It authenticates with a token you create and can revoke, it never asks for card details, and it never starts a search on its own — no background poll, no price watch, no refresh timer. Every host it can contact, every file it reads or writes, and the anonymous installation id it sends so we can tell whether anyone is using it, are documented in full in OMARCHY-PLUGIN.md.

Requires the Omarchy Quattro shell. MIT, like the rest of this repo. Not affiliated with, sponsored by, or endorsed by Omarchy or 37signals.

---

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.

---

🎯 aiskill88 AI 点评 A 级 2026-05-20

架构完善���Agent工具,解决实际痛点。代码质量好,社区活跃度高,但需关注支付安全合规。

📚 实用指南(长尾问题)
适合谁
  • 需要让 Claude / Cursor 操作本地工具的 AI 工程师
  • 构建多智能体协作系统的 Agent 开发者
最佳实践
  • 配置 MCP 服务器时建议使用 stdio 传输 + JSON-RPC,避免暴露公网
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • MCP 配置路径拼错或权限不足,重启 Claude Desktop 才生效
  • Python 依赖冲突:建议用 venv / uv 隔离环境
部署方案
  • CLI:直接 npm install -g / pip install,命令行调用
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
LetsFG 中文教程LetsFG 安装报错怎么办LetsFG MCP 配置LetsFG Agent 工作流LetsFG 与同类工具对比LetsFG 最佳实践LetsFG 适合谁用

⚡ 核心功能

👥 适合谁
  • 需要让 Claude / Cursor 操作本地工具的 AI 工程师
  • 构建多智能体协作系统的 Agent 开发者
⭐ 最佳实践
  • 配置 MCP 服务器时建议使用 stdio 传输 + JSON-RPC,避免暴露公网
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • MCP 配置路径拼错或权限不足,重启 Claude Desktop 才生效
  • Python 依赖冲突:建议用 venv / uv 隔离环境

👥 适合人群

AI 技术爱好者研究人员和学生开发者和工程师技术创业者

🎯 使用场景

  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发

⚖️ 优点与不足

✅ 优点
  • +完全开源免费,无授权费用
  • +本地部署,数据完全自主可控
  • +开发者社区支持,遇问题可查可问
⚠️ 不足
  • −安装和初始配置可能需要一定技术基础
  • −功能完整性通常不如成熟商业产品
  • −技术支持主要依赖开源社区,响应速度不稳定
⚠️ 使用须知

该工具使用 NOASSERTION 协议,商用场景请仔细阅读协议条款,必要时咨询法律意见。

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

📄 NOASSERTION — 请查阅原始协议条款了解具体使用限制。

🔗 相关工具推荐

📚 相关教程推荐
📰 相关 AI 新闻
🍿 AI 圈相关吃瓜
🗺️ 相关解决方案
🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合

❓ 常见问题 FAQ

支持主流国际航空公司,具体范围见文档。
💡 AI Skill Hub 点评

经综合评估,LetsFG MCP工具 在AI工具赛道中表现稳健,质量优秀。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。

📚 深入学习 LetsFG MCP工具
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 LetsFG
原始描述 开源MCP工具:Agent-native flight search & booking. Saved $116 across 5 routes vs Google Fligh。⭐1.1k · Python
Topics MCP工具航班预订AI AgentPython开源
GitHub https://github.com/LetsFG/LetsFG
License NOASSERTION
语言 Python
🔗 原始来源
🐙 GitHub 仓库  https://github.com/LetsFG/LetsFG 🌐 官方网站  https://letsfg.co/en

收录时间:2026-05-16 · 更新时间:2026-05-19 · License:NOASSERTION · AI Skill Hub 不对第三方内容的准确性作法律背书。

📺 订阅 AI Skill Hub Daily Telegram 频道
每天 8 条精选 AI Skill、MCP、Agent 与自动化工具推送
加入频道 →