Automates Southwest Airlines through browser automation with Playwright, exposing the full booking lifecycle as MCP tools. You can search flights across fare classes, book with cash or Rapid Rewards points, check in exactly 24 hours before departure, grab boarding passes with your A/B/C position, and manage reservations without change fees. It handles Early Bird auto check-in, compares Wanna Get Away vs Business Select pricing, and queries your Rapid Rewards balance and Companion Pass progress. Stores Southwest login sessions locally to avoid repeated authentication. Useful when you need programmatic access to Southwest's systems for travel automation or building booking workflows, especially since Southwest doesn't offer a public API.
MCP server for Southwest Airlines — search flights, manage bookings, check in, and manage your Rapid Rewards account via browser automation.
npx playwright install chromiumnpm install -g @striderlabs/mcp-southwest
# or
npx @striderlabs/mcp-southwest
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)
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"
}
}
}
}
search_flightsSearch for available Southwest flights.
{
"originAirport": "DAL",
"destinationAirport": "LAX",
"departureDate": "2024-06-15",
"passengers": 2,
"tripType": "oneway",
"fareType": "USD"
}
get_flight_detailsGet status and details for a specific flight.
{
"flightNumber": "WN1234",
"flightDate": "2024-06-15",
"originAirport": "DAL",
"destinationAirport": "LAX"
}
select_flightSelect a flight from search results to proceed with booking.
{
"flightIndex": 0,
"fareType": "wanna-get-away"
}
get_faresCompare fare classes with pricing and benefits.
{
"originAirport": "HOU",
"destinationAirport": "MCO",
"departureDate": "2024-07-04",
"fareType": "USD"
}
add_early_birdAdd Early Bird Check-In to an existing booking (~$15–25/person/flight).
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith"
}
checkoutComplete a booking with passenger and payment details.
{
"firstName": "Jane",
"lastName": "Smith",
"dateOfBirth": "01/15/1990",
"gender": "F",
"email": "jane@example.com",
"phone": "5551234567",
"cardNumber": "4111111111111111",
"cardExpiration": "12/26",
"cardCvv": "123",
"cardZip": "75201",
"cardName": "Jane Smith",
"addEarlyBird": false
}
get_reservationLook up a booking by confirmation number.
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith"
}
change_flightModify an existing booking (no change fees!).
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith",
"newDepartureDate": "2024-06-20"
}
cancel_flightCancel a reservation. Use confirm: true to actually cancel.
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith",
"confirm": true
}
check_inCheck in online (available 24 hours before departure).
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith"
}
get_boarding_passRetrieve boarding pass with group and position number.
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith",
"savePath": "~/boarding-pass.pdf"
}
get_rapid_rewardsCheck Rapid Rewards points, tier status, and Companion Pass progress.
{}
(Uses SW_USERNAME/SW_PASSWORD env vars)
book_with_pointsSearch for flights and book using Rapid Rewards points.
{
"originAirport": "DAL",
"destinationAirport": "DEN",
"departureDate": "2024-08-10",
"passengers": 1
}
| 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 uses open seating — no assigned seats. Passengers board in groups:
Check-in order determines boarding position. Check in exactly at the 24-hour mark for the best position.
Login sessions are saved to ~/.config/mcp-southwest/session.json to avoid re-authenticating on every run.
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
MIT © Strider Labs
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp