About io.github.thehesiod/aa
io.github.thehesiod/aa is an MCP server in the Maps category: mCP server for read-only American Airlines AAdvantage account access.
Install
uvx aa-mcp-serverpip install aa-mcp-serverThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (14)
--
Parameters not published.
check_auth_status—
Parameters not published.
get_account_summary`/loyalty/api/member-information`
Parameters not published.
get_flight_credits`/api/loyalty/travelCredits/flightCredit/details`
Parameters not published.
get_loyalty_points_progress`/loyalty/api/progress-qualification`
Parameters not published.
get_mile_activity`/api/loyalty/.../memberActivity`
Parameters not published.
get_notifications`/loyalty/api/notifications`
Parameters not published.
get_partner_offers`/loyalty/api/partnerOffers`
Parameters not published.
get_profile_details`/api/loyalty/.../profile`
Parameters not published.
get_reservation_by_locator`/manage-reservation/viewres/api/reservation`
Parameters not published.
Show all 14 tools
get_trip_credits`/api/loyalty/travelCredits/tripCredit/details`
Parameters not published.
get_upcoming_trips`/loyalty/api/upcoming-trips`
Parameters not published.
save_session_from_browserCDP
Parameters not published.
search_change_flights`/manage-reservation/reshop/api/reshop/cheapest`
Parameters not published.
Ask AI
Ask AI about io.github.thehesiod/aa
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
aa-mcp-server
An MCP server that gives Claude (or any MCP-compatible LLM) read-only access to your American Airlines AAdvantage account — mile balance, Loyalty Points progress, transaction history, upcoming trips, travel credits, and partner offers.
This is not a browser-automation wrapper. The server discovers and calls aa.com's underlying JSON APIs directly using session cookies extracted from a Chromium login. All HTTP traffic uses curl_cffi with Chrome TLS impersonation to satisfy aa.com's Akamai Bot Manager.
Tools
| Tool | Endpoint | Returns |
|---|---|---|
get_account_summary |
/loyalty/api/member-information |
Name, AAdvantage #, mile balance, status, cobranded card, business memberships |
get_loyalty_points_progress |
/loyalty/api/progress-qualification |
LP YTD, last-year totals, tier thresholds, next-status delta |
get_profile_details |
/api/loyalty/.../profile |
DOB, partners list, sales city, mile expiration, million-miler stats |
get_mile_activity |
/api/loyalty/.../memberActivity |
Mile/LP transaction history (date range, paginated, searchable) |
get_upcoming_trips |
/loyalty/api/upcoming-trips |
Reservations with record locators |
get_flight_credits |
/api/loyalty/travelCredits/flightCredit/details |
Single-passenger ticket credits |
get_trip_credits |
/api/loyalty/travelCredits/tripCredit/details |
Multi-passenger / itinerary credits |
get_partner_offers |
/loyalty/api/partnerOffers |
Dashboard partner promotions |
get_notifications |
/loyalty/api/notifications |
Account notifications |
check_auth_status |
— | Saved-session info: AA #, token expiry, cookie count |
save_session_from_browser |
CDP | Pulls cookies from a logged-in Chromium and persists them |
Setup
pip install aa-mcp-server
One-time auth
aa.com is fronted by Akamai Bot Manager — you can't log in via headless requests. The flow:
- Launch a real Chromium with a persistent profile and a remote-debugging port:
aa-auth-browser # default account aa-auth-browser personal # named account - Log into aa.com (and complete 2FA if prompted) in the window that opens.
- Copy the cookies into the MCP store:
Or call theaa-mcp-server --extract-session defaultsave_session_from_browserMCP tool from Claude.
The cookies live in ~/.aa-mcp/accounts/<account>/session.json. The chromium profile lives in ~/.aa-mcp/chrome-profiles/<account>/. To refresh after expiry, relaunch aa-auth-browser (the saved profile auto-refreshes the access_token cookie when you visit any aa.com page) and re-run --extract-session.
AA_MCP_CHROMIUM=<path-to-chrome.exe> overrides the auto-discovery if your Chromium is somewhere unusual.
Multi-account
Every tool takes an optional account parameter. Omit it to use the default account.
get_account_summary() # default
get_account_summary(account="spouse")
Running
aa-mcp-server # stdio transport
aa-mcp-server --setup # show account status & setup hints
aa-mcp-server --extract-session NAME # save cookies from running Chromium
Add to your MCP client config (e.g. Claude Desktop):
{
"mcpServers": {
"aa": {
"command": "aa-mcp-server"
}
}
}
Limitations
- Read-only. No booking, no award redemption, no profile edits.
- Cookie expiry. The
access_tokenJWT lives ~45 min; therefresh_tokencookie typically ~30 days. Visiting any aa.com page in the saved Chromium profile silently refreshes both. After a long gap, re-extract. - GraphQL coverage. Only the
GetCustomerpersisted query is wired up. Expanding requires capturing additional sha256Hashes from the browser bundle — easy but a per-feature task. - One region tested. All testing has been on US-locale aa.com. International locales may require different
refererpaths.
License
MIT
mcp-name: io.github.thehesiod/aa
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.