Skip to main content

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

Metadata

Release files for aa-mcp-server 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aa-mcp-server 0.1.0
File Size Uploaded Provenance Actions
aa_mcp_server-0.1.0.tar.gz 80.8 kB With provenance Details for aa_mcp_server-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aa-mcp-server 0.1.0
File Interpreter ABI Platform Actions
aa_mcp_server-0.1.0-py3-none-any.whl Python 3 none any Details for aa_mcp_server-0.1.0-py3-none-any.whl

Total release size: 94.9 kB

Release files / aa_mcp_server-0.1.0.tar.gz

Download URL aa_mcp_server-0.1.0.tar.gz
Size 80.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c35bf00655478314c37ee39f48de48b43236ee51b99bb2d3a6abb5376a176ac0
BLAKE2b-256 checksum
How to use checksums
911e32491f0b5399a3ccc78c581e37b86c9999c8bb99905763b62440b9ca9c37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 4, 2026.

Transparency log

Release files / aa_mcp_server-0.1.0-py3-none-any.whl

Download URL aa_mcp_server-0.1.0-py3-none-any.whl
Size 14.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b44332fdee7c6c980ca9c17e7e25fa169156e52ab1166688a9431a63f09bfcaa
BLAKE2b-256 checksum
How to use checksums
486faf02125f621089a63cd4627140e279be71cb0991423f859b268e104472b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 4, 2026.

Transparency log

Security for aa-mcp-server 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for aa_mcp_server-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page