Skip to main content

MCP server for read-only American Airlines AAdvantage account access — direct API calls via session cookies extracted from a Chromium login

Project description

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:

  1. Launch a real Chromium with a persistent profile and a remote-debugging port:
    aa-auth-browser              # default account
    aa-auth-browser personal     # named account
    
  2. Log into aa.com (and complete 2FA if prompted) in the window that opens.
  3. Copy the cookies into the MCP store:
    aa-mcp-server --extract-session default
    
    Or 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.

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_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.
  • GraphQL coverage. Only the GetCustomer persisted 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 referer paths.

License

MIT

mcp-name: io.github.thehesiod/aa

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aa_mcp_server-0.1.0.tar.gz (80.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aa_mcp_server-0.1.0-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file aa_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: aa_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 80.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aa_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c35bf00655478314c37ee39f48de48b43236ee51b99bb2d3a6abb5376a176ac0
MD5 ee1f721be059d011e5b1587451b19d56
BLAKE2b-256 911e32491f0b5399a3ccc78c581e37b86c9999c8bb99905763b62440b9ca9c37

See more details on using hashes here.

Provenance

The following attestation bundles were made for aa_mcp_server-0.1.0.tar.gz:

Publisher: publish.yml on thehesiod/aa-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aa_mcp_server-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aa_mcp_server-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aa_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b44332fdee7c6c980ca9c17e7e25fa169156e52ab1166688a9431a63f09bfcaa
MD5 26607ea2757d6d11a8cc09f37d1f56ae
BLAKE2b-256 486faf02125f621089a63cd4627140e279be71cb0991423f859b268e104472b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for aa_mcp_server-0.1.0-py3-none-any.whl:

Publisher: publish.yml on thehesiod/aa-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page