@striderlabs/mcp-alaska
# @striderlabs/mcp-alaska
An MCP (Model Context Protocol) server for Alaska Airlines that enables AI assistants to interact with Alaska Airlines services using Playwright browser automation.
## Features
- Search and browse flights
- View flight details and seat maps
- Select flights and seats
- Manage bookings (view, check-in, cancel)
- Check flight status in real-time
- View Mileage Plan balance and elite status
- View upcoming trips
## Installation
```bash
npm install -g @striderlabs/mcp-alaska
npx playwright install chromium
```
Or install locally:
```bash
npm install @striderlabs/mcp-alaska
npx playwright install chromium
```
## Usage with Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"alaska": {
"command": "striderlabs-mcp-alaska"
}
}
}
```
Or if installed locally:
```json
{
"mcpServers": {
"alaska": {
"command": "npx",
"args": ["@striderlabs/mcp-alaska"]
}
}
}
```
## Tools
### `alaska_login`
Log in to your Alaska Airlines account. Required for account-specific operations.
**Parameters:**
- `email` (string, required): Your Alaska Airlines account email
- `password` (string, required): Your Alaska Airlines account password
**Example:**
```json
{
"email": "user@example.com",
"password": "yourpassword"
}
```
---
### `alaska_search_flights`
Search for available flights between two airports.
**Parameters:**
- `origin` (string, required): Origin airport code (e.g., `SEA`, `LAX`, `SFO`)
- `destination` (string, required): Destination airport code
- `date` (string, required): Travel date in `YYYY-MM-DD` format
- `passengers` (number, optional): Number of passengers (default: `1`)
- `cabin_class` (string, optional): `economy`, `premium-economy`, or `first-class` (default: `economy`)
**Returns:** List of available flights with prices, times, and flight IDs.
---
### `alaska_get_flight_details`
Get detailed information about a specific flight.
**Parameters:**
- `flight_id` (string, required): Flight ID from search results or flight number (e.g., `AS123`)
**Returns:** Flight details including amenities, baggage policy, on-time performance, and layover information.
---
### `alaska_select_flight`
Select a flight to proceed with booking.
**Parameters:**
- `flight_id` (string, required): Flight ID from `alaska_search_flights` results
**Returns:** Confirmation of selection with session data for the booking flow.
---
### `alaska_get_seat_map`
View the seat map for a flight showing available, occupied, and blocked seats.
**Parameters:**
- `flight_id` (string, required): Flight ID or flight number
**Returns:** Full seat map organized by cabin (First Class, Main Cabin) with seat status, type, and any associated fees.
---
### `alaska_select_seat`
Select a specific seat on a flight.
**Parameters:**
- `flight_id` (string, required): Flight ID or flight number
- `seat` (string, required): Seat identifier (e.g., `12A`, `23F`, `4C`)
**Returns:** Confirmation of seat selection.
---
### `alaska_get_booking`
Retrieve booking details using a confirmation code.
**Parameters:**
- `confirmation_code` (string, required): 6-character Alaska Airlines confirmation code (e.g., `ABCDEF`)
**Returns:** Full booking details including passenger information, flight itinerary, and booking status.
---
### `alaska_check_in`
Check in for a flight. Available within 24 hours of departure.
**Parameters:**
- `confirmation_code` (string, required): 6-character Alaska Airlines confirmation code
**Returns:** Check-in confirmation with boarding pass details including gate, boarding group, and boarding time.
---
### `alaska_get_mileage_balance`
View your Alaska Airlines Mileage Plan balance and elite status.
**Requires:** Being logged in via `alaska_login`
**Returns:** Total miles, elite qualifying miles, tier status, expiring miles, and membership details.
---
### `alaska_get_upcoming_trips`
View all upcoming trips associated with your account.
**Requires:** Being logged in via `alaska_login`
**Returns:** List of upcoming trips with flight details, confirmation codes, and trip status.
---
### `alaska_cancel_booking`
Cancel an Alaska Airlines booking.
**Parameters:**
- `confirmation_code` (string, required): 6-character Alaska Airlines confirmation code
**Returns:** Cancellation confirmation with any applicable refund amount.
> **Note:** Cancellation fees may apply depending on fare type. Check Alaska Airlines' cancellation policy before cancelling.
---
### `alaska_get_flight_status`
Get real-time status for an Alaska Airlines flight.
**Parameters:**
- `flight_number` (string, required): Flight number (e.g., `AS123` or `123`)
- `date` (string, required): Flight date in `YYYY-MM-DD` format
**Returns:** Current flight status including departure/arrival times, gate information, terminal, and delay information.
---
## Example Workflow
```
1. Search for flights:
alaska_search_flights(origin="SEA", destination="LAX", date="2025-03-15")
2. Get details on a specific flight:
alaska_get_flight_details(flight_id="AS127")
3. View available seats:
alaska_get_seat_map(flight_id="AS127")
4. Select flight and seat:
alaska_select_flight(flight_id="AS127")
alaska_select_seat(flight_id="AS127", seat="14A")
5. Check booking status:
alaska_get_booking(confirmation_code="XKJT89")
6. Check in 24 hours before departure:
alaska_check_in(confirmation_code="XKJT89")
```
## Development
```bash
# Clone repository
git clone https://github.com/markswendsen-code/mcp-alaska.git
cd mcp-alaska
# Install dependencies
npm install
# Install Playwright browsers
npx playwright install chromium
# Build
npm run build
# Run
node dist/index.js
```
## Architecture
The server uses two main modules:
- **`src/index.ts`**: MCP server setup with tool definitions and request handlers
- **`src/browser.ts`**: Playwright automation helpers that interact with the Alaska Airlines website
The browser module maintains a persistent browser session to avoid re-launching the browser for each tool call. The session is automatically closed when the server shuts down.
## Requirements
- Node.js >= 18.0.0
- Playwright Chromium browser
## License
MIT
## Disclaimer
This tool uses browser automation to interact with the Alaska Airlines website. Use responsibly and in accordance with Alaska Airlines' Terms of Service. This is not an official Alaska Airlines product.
TDQS
Scored across 12 tools
Each tool targets a distinct operation: booking management, flight search, seat selection, check-in, loyalty account queries, etc. There is no ambiguity or overlap in their purposes.
All tools follow the 'alaska_<verb>_<noun>' pattern consistently. Verbs like get, search, select, cancel, check_in clearly indicate the action, and nouns specify the resource.
12 tools is appropriate for an airline travel service, covering flight search, booking, management, check-in, and account features without being excessive or deficient.
Core workflows are well-covered: search, select flight, view seat map, select seat, get/cancel booking, check-in, flight status, and mileage balance. Missing a final 'book' or 'confirm booking' tool, but the flow is navigable.