# @striderlabs/mcp-delta MCP server for Delta Air Lines — let AI agents search flights, select seats, manage bookings, check in, get boarding passes, and check SkyMiles balance via browser automation. Built by [Strider Labs](https://striderlabs.ai). ## Features - **17 tools** covering the full Delta booking and travel management workflow - **Playwright browser automation** with stealth patches to avoid bot detection - **Session persistence** via cookies at `~/.striderlabs/delta/cookies.json` - **Human-like behavior** — random delays, realistic user agent, locale/timezone spoofing - **SkyMiles integration** — check balance, Medallion status, and recent activity - **Confirmation gates** for checkout to prevent accidental bookings - **JSON responses** for easy parsing by AI agents ## Tools | Tool | Description | |------|-------------| | `status` | Check Delta login status and session info | | `login` | Initiate Delta SkyMiles login (opens sign-in page) | | `logout` | Clear saved session and cookies | | `search_flights` | Search Delta flights by origin, destination, dates, and passengers | | `get_flight_details` | Get detailed info about a flight (aircraft, layovers, baggage policy) | | `select_flight` | Select outbound/return flights to begin booking | | `get_seat_map` | View aircraft seat map with availability and pricing | | `select_seats` | Choose specific seats for passengers | | `add_bags` | Add checked baggage to your booking | | `get_trip_extras` | View upgrades, Wi-Fi passes, priority boarding, and other add-ons | | `checkout` | Complete the flight purchase (requires `confirm: true`) | | `get_booking` | Retrieve existing booking by confirmation number | | `check_in` | Online check-in for upcoming flights (opens 24h before departure) | | `get_boarding_pass` | Get digital boarding pass for checked-in flights | | `get_flight_status` | Real-time flight status, gate, and delay information | | `get_skymiles` | Check SkyMiles balance, Medallion tier, and recent activity | | `manage_booking` | Modify bookings — view, cancel, change flights, upgrade, or add bags | ## Installation ```bash npm install -g @striderlabs/mcp-delta npx playwright install chromium ``` ## Claude Desktop Integration Add to your `claude_desktop_config.json`: ```json { "mcpServers": { "delta": { "command": "striderlabs-mcp-delta" } } } ``` Or with `npx`: ```json { "mcpServers": { "delta": { "command": "npx", "args": ["-y", "@striderlabs/mcp-delta"] } } } ``` ## Authentication Some tools (SkyMiles balance, booking management, check-in) require a Delta SkyMiles account. The server persists your session cookies at `~/.striderlabs/delta/cookies.json`. **Login flow:** 1. Ask the AI agent to run `login` 2. Open the returned URL in your browser 3. Log in to your Delta SkyMiles account 4. Run `status` to verify the session was saved Flight search and flight status work without authentication. ## Example Workflows ### Book a Flight ``` 1. search_flights(origin="ATL", destination="LAX", departureDate="2025-07-15") 2. get_flight_details(flightId="0") 3. select_flight(outboundFlightId="0") 4. get_seat_map() 5. select_seats(seats=["24A"]) 6. add_bags(bags=1) 7. checkout() ← returns preview 8. checkout(confirm=true) ← completes purchase (needs explicit user confirmation) ``` ### Check In ``` 1. check_in(confirmationNumber="ABC123", lastName="Smith") 2. get_boarding_pass(confirmationNumber="ABC123", lastName="Smith") ``` ### Monitor a Flight ``` 1. get_flight_status(flightNumber="DL 123") ``` ### Manage SkyMiles ``` 1. login() 2. get_skymiles() ``` ## Safety The `checkout` tool requires `confirm: true` to actually complete a purchase. Without it, the tool returns a preview of the booking details. **Never set `confirm: true` without explicit user confirmation.** The `manage_booking` cancel action will prompt you to confirm on the Delta website before any cancellation is finalized. ## Session Storage Cookies and session info are stored at: - `~/.striderlabs/delta/cookies.json` - `~/.striderlabs/delta/session.json` ## Environment Variables No environment variables are required. Credentials are managed via the browser session stored in `~/.striderlabs/delta/`. ## Development ```bash git clone https://github.com/markswendsen-code/mcp-delta cd mcp-delta npm install npm run build node dist/index.js ``` ## License MIT — © Strider Labs