Aa Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Aa Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
| 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_reservation_by_locator | /manage-reservation/viewres/api/reservation | Full reservation: segments, passengers, tickets, costs, change/cancel eligibility (requires lead-passenger name) |
search_change_flights | /manage-reservation/reshop/api/reshop/cheapest | Alternative flights for a reservation with a ±6-day price carousel, per-cabin pricing (netPrice = delta vs paid). Accepts origin/destination/date changes; pricing is total for all pax (no per-passenger split) |
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 |
pip install aa-mcp-serveraa.com is fronted by Akamai Bot Manager — you can't log in via headless requests. The flow:
aa-auth-browser # default account
aa-auth-browser personal # named account aa-mcp-server --extract-session defaultOr call the save_session_from_browser MCP 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.
Every tool takes an optional account parameter. Omit it to use the default account.
get_account_summary() # default
get_account_summary(account="spouse")aa-mcp-server # stdio transport
aa-mcp-server --setup # show account status & setup hints
aa-mcp-server --extract-session NAME # save cookies from running ChromiumAdd to your MCP client config (e.g. Claude Desktop):
{
"mcpServers": {
"aa": {
"command": "aa-mcp-server"
}
}
}access_token JWT lives ~45 min; the refresh_token cookie typically ~30 days. Visiting any aa.com page in the saved Chromium profile silently refreshes both. After a long gap, re-extract.GetCustomer persisted query is wired up. Expanding requires capturing additional sha256Hashes from the browser bundle — easy but a per-feature task.referer paths.MIT
mcp-name: io.github.thehesiod/aa
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.