flightclaw
FlightClaw is a personal travel-booking agent. It remembers who you are, who you travel with, the loyalty programs and cards you hold, and how you like to fly — then recommends, books, pays for, and learns from each trip.
Profiles, booking and payment run on the hosted server
(https://mcp.flightclaw.com/mcp, OAuth sign-in). The local server in this repo
only searches and price-tracks flights.
The flow
1. Onboarding (one time)
Set this up once, then reuse forever.
- Who you are —
save_travelerfor yourself (full passport-accurate name, DOB, contact, loyalty programmes), thenset_meto mark that profile as you and record home airports. - Companions —
save_travelerfor each person you travel with (relationship: spouse/partner/child/parent/friend/colleague). Group them withsave_group(e.g.family=jack,jane). - Preferences —
set_preferences: cabin by haul (e.g. short-haul ECONOMY, long-haul BUSINESS), preferred/avoided airlines, alliance, seat, departure window, max stops, red-eye tolerance, baggage, meal, and budget sensitivity (cheapest/balanced/comfort). - Cards & points —
save_cardfor each card;set_points_balancefor each loyalty/transfer program. Then enrich with the Card Links MCP (find_transfer_programs_for_airline,list_transfer_partners) so you know which airlines each card's points can reach.
2. Planning a trip
- Ask where they want to go and who's coming — reuse a group with
get_group(it returns the exactpassengersstring for booking) or make a new one withsave_group. - Recommend —
recommend_flights(origin, destination, date, ...). It loads the saved preferences, picks the cabin by haul, drops avoided airlines, and ranks options on price/duration/stops/preferred-airline/departure-window/ red-eye, returning the top 3 with a "why this fits you" for each. - Awards / points option — if they want to spend points, call the Award
Travel Finder MCP (
search_availability,search_all_airlines,get_pricing) using their stored loyalty programs and points balances, and present award options alongside the cash fares ("best overall / cheapest / best points value").
3. Booking & paying
Hosted server (https://mcp.flightclaw.com/mcp)
search_flights/search_multi_city/recommend_flights→ pick an offer →get_offerto confirm price, bags and fare rules. Offers expire in about 30 minutes.- Confirm the choice with the user, then
create_checkout(offer_id, passengers). It returnscheckout_id,checkout_urland the exacttotal_amount+total_currency(airline fare + FlightClaw booking fee). Nothing is charged yet. - Pay one of two ways:
- Checkout link — give the user
checkout_urlandtotal_amount. The user pays there by card. - Link virtual card — create a Link spend request for exactly
total_amountintotal_currency. The amount must include the booking fee; the fare alone is too low. The user approves the spend in Link. Then pay oncheckout_urlwith the Link virtual card.
- Checkout link — give the user
get_checkout_status(checkout_id)untilcompleted, thenget_order.failedmeans no payment was taken and you can retry.
Payment rules:
- Use the
total_amountfromcreate_checkout. Never compute the price yourself. - Never pay more than the amount the user approved in Link. If the total changes, stop, create a new checkout and ask for a new approval.
- Never ask for or type card numbers from the user.
After booking, call log_trip (route, dates, travelers, cabin, price,
order_id) so the trip enters history and the follow-up queue.
4. Post-trip follow-up & learning (the real magic)
trips_pending_followupsurfaces trips that have completed/returned.- Ask how each went, then
record_trip_feedback(id, feedback, learnings=...). Durable lessons (e.g. "prefers window on long-haul", "dislikes early departures") are appended to the user's preferences, so the nextrecommend_flightsis sharper. Over time FlightClaw learns the traveler.
Tools
Personalization (hosted)
- Travelers:
save_traveler,list_travelers,get_traveler,delete_traveler,set_me,get_me. - Preferences:
set_preferences,get_preferences,update_preferences. - Cards/points:
save_card,list_cards,delete_card,set_points_balance,list_points. - Groups:
save_group,list_groups,get_group,delete_group. - Trips:
log_trip,list_trips,get_trip,trips_pending_followup,record_trip_feedback. - Recommendation:
recommend_flights.
Search & tracking — search_flights, search_dates, track_flight,
check_prices, list_tracked, remove_tracked.
Hosted booking — get_offer, get_seat_map, create_checkout,
get_checkout_status, list_orders, get_order, request_change,
cancel_order. Hosted price tracking: track_flight, list_tracked,
remove_tracked (checked daily, email alert on a drop).
External MCP integration
FlightClaw stores the user's cards/points; the agent enriches and acts on them using two other MCP servers when present:
- Card Links — transfer partners and card comparisons for the user's stored cards.
- Award Travel Finder — award availability and points pricing across airlines/programs.
When surfacing card recommendations from Card Links, always include its disclaimers: not financial advice; affiliate links may earn commission; card terms change — verify current offers with the issuer.
Setup
Hosted: claude mcp add --transport http flightclaw https://mcp.flightclaw.com/mcp
(sign in with OAuth; no keys needed).
Local (search and price tracking only, no account):
pip install "flights==0.9.0" "mcp[cli]<2" fastmcp pydantic-settings
claude mcp add flightclaw -- python3 /path/to/agents/server.py
Data
The local server stores price-tracking history in data/tracked.json
(gitignored).
微信扫一扫