@striderlabs/mcp-southwest
MCP server for Southwest Airlines — search flights, manage bookings, check in, and manage your Rapid Rewards account via browser automation.
Features
- Search flights with real-time pricing across all fare classes
- Compare fares: Wanna Get Away, Wanna Get Away+, Anytime, Business Select
- Book flights with dollars or Rapid Rewards points
- Manage reservations: change, cancel, get details
- No change fees — Southwest never charges them
- Check in online (opens exactly 24 hours before departure)
- Get boarding passes with group/position (A/B/C)
- Early Bird Check-In — auto check-in 36 hours before departure
- Rapid Rewards — check points balance, tier status, Companion Pass progress
Prerequisites
- Node.js 18+
- Playwright browsers:
npx playwright install chromium
Installation
npm install -g @striderlabs/mcp-southwest
# or
npx @striderlabs/mcp-southwest
Setup
Environment Variables
Create a .env file or set these in your environment:
# Required for account-based tools (check-in, Rapid Rewards, points booking)
SW_USERNAME=your_rapid_rewards_number_or_email
SW_PASSWORD=your_password
# Optional
SW_HEADLESS=true # Set to "false" to see the browser (useful for debugging)
Claude Desktop Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"southwest": {
"command": "npx",
"args": ["@striderlabs/mcp-southwest"],
"env": {
"SW_USERNAME": "your_rapid_rewards_number",
"SW_PASSWORD": "your_password"
}
}
}
}
Or if installed globally:
{
"mcpServers": {
"southwest": {
"command": "mcp-southwest",
"env": {
"SW_USERNAME": "your_rapid_rewards_number",
"SW_PASSWORD": "your_password"
}
}
}
}
Available Tools
search_flights
Search for available Southwest flights.
{
"originAirport": "DAL",
"destinationAirport": "LAX",
"departureDate": "2024-06-15",
"passengers": 2,
"tripType": "oneway",
"fareType": "USD"
}
get_flight_details
Get status and details for a specific flight.
{
"flightNumber": "WN1234",
"flightDate": "2024-06-15",
"originAirport": "DAL",
"destinationAirport": "LAX"
}
select_flight
Select a flight from search results to proceed with booking.
{
"flightIndex": 0,
"fareType": "wanna-get-away"
}
get_fares
Compare fare classes with pricing and benefits.
{
"originAirport": "HOU",
"destinationAirport": "MCO",
"departureDate": "2024-07-04",
"fareType": "USD"
}
add_early_bird
Add Early Bird Check-In to an existing booking (~$15–25/person/flight).
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith"
}
checkout
Complete a booking with passenger and payment details.
{
"firstName": "Jane",
"lastName": "Smith",
"dateOfBirth": "01/15/1990",
"gender": "F",
"email": "[email protected]",
"phone": "5551234567",
"cardNumber": "4111111111111111",
"cardExpiration": "12/26",
"cardCvv": "123",
"cardZip": "75201",
"cardName": "Jane Smith",
"addEarlyBird": false
}
get_reservation
Look up a booking by confirmation number.
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith"
}
change_flight
Modify an existing booking (no change fees!).
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith",
"newDepartureDate": "2024-06-20"
}
cancel_flight
Cancel a reservation. Use confirm: true to actually cancel.
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith",
"confirm": true
}
check_in
Check in online (available 24 hours before departure).
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith"
}
get_boarding_pass
Retrieve boarding pass with group and position number.
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith",
"savePath": "~/boarding-pass.pdf"
}
get_rapid_rewards
Check Rapid Rewards points, tier status, and Companion Pass progress.
{}
(Uses SW_USERNAME/SW_PASSWORD env vars)
book_with_points
Search for flights and book using Rapid Rewards points.
{
"originAirport": "DAL",
"destinationAirport": "DEN",
"departureDate": "2024-08-10",
"passengers": 1
}
Southwest Airlines Fare Classes
| Fare | Refundable | Points Multiplier | Boarding |
|---|---|---|---|
| Wanna Get Away | Travel funds | 6x base | Standard |
| Wanna Get Away+ | Transferable funds | 8x base | Standard |
| Anytime | Full refund | 10x base | Priority (A1–A15) |
| Business Select | Full refund | 12x base | Guaranteed A1–A15 |
Southwest Boarding System
Southwest uses open seating — no assigned seats. Passengers board in groups:
- Group A (A1–A60): Early Bird / Business Select / Anytime priority
- Group B (B1–B60): General boarding
- Group C (C1–C60): Last to board
Check-in order determines boarding position. Check in exactly at the 24-hour mark for the best position.
Session Persistence
Login sessions are saved to ~/.config/mcp-southwest/session.json to avoid re-authenticating on every run.
Development
git clone https://github.com/markswendsen-code/mcp-southwest
cd mcp-southwest
npm install
npx playwright install chromium
npm run build
npm start
For development with hot reload:
npm run dev
To see the browser during automation (useful for debugging):
SW_HEADLESS=false npm run dev
License
MIT © Strider Labs