Southwest

io.github.markswendsen-codePublished by GitHub account markswendsen-codev0.1.0Updated Oct 24, 2026

MCP server for Southwest Airlines - search flights, manage bookings

Overview

AI-generated overview

Lets an assistant search Southwest Airlines flights, compare fares, book, change or cancel reservations, check in, and view Rapid Rewards details.

What you can do
This local MCP server drives Southwest Airlines through browser automation. Tools include search_flights and get_fares for real-time pricing across fare classes, get_flight_details for flight status, select_flight and checkout to complete a booking, and book_with_points to pay with Rapid Rewards points. It also manages existing trips with get_reservation, change_flight and cancel_flight, handles check_in and get_boarding_pass, adds Early Bird Check-In, and reads Rapid Rewards points, tier status and Companion Pass progress.
When to use it
Use it when you want an assistant to look up Southwest fares and schedules, compare fare classes, or handle routine trip tasks such as checking in at the 24-hour mark, retrieving a boarding pass, or reviewing Rapid Rewards status. It is also useful for changing or cancelling an existing reservation without visiting the website.
Requirements
Node.js 18+ and Playwright browsers installed via npx playwright install chromium. Runs locally over stdio, desktop only. Account-based tools need SW_USERNAME and SW_PASSWORD; SW_HEADLESS is optional. Login sessions are stored in ~/.config/mcp-southwest/session.json.
Before you install
The server asks for Southwest credentials in SW_USERNAME and SW_PASSWORD, and checkout takes full payment card details including cardNumber, cardExpiration, cardCvv and cardZip. It can spend money by booking flights or adding Early Bird Check-In, and it can change or cancel reservations. Cancellation requires confirm: true. Credentials and session data are stored locally, and browser automation acts on a live airline account.

Installation

In SourceWeft

  1. Open Southwest in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@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

Installation

bash
npm install -g @striderlabs/mcp-southwest# ornpx @striderlabs/mcp-southwest

Setup

Environment Variables

Create a .env file or set these in your environment:

env
# Required for account-based tools (check-in, Rapid Rewards, points booking)SW_USERNAME=your_rapid_rewards_number_or_emailSW_PASSWORD=your_password
# OptionalSW_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:

json
{  "mcpServers": {    "southwest": {      "command": "npx",      "args": ["@striderlabs/mcp-southwest"],      "env": {        "SW_USERNAME": "your_rapid_rewards_number",        "SW_PASSWORD": "your_password"      }    }  }}

Or if installed globally:

json
{  "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.

json
{  "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.

json
{  "flightNumber": "WN1234",  "flightDate": "2024-06-15",  "originAirport": "DAL",  "destinationAirport": "LAX"}

select_flight

Select a flight from search results to proceed with booking.

json
{  "flightIndex": 0,  "fareType": "wanna-get-away"}

get_fares

Compare fare classes with pricing and benefits.

json
{  "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).

json
{  "confirmationNumber": "ABC123",  "firstName": "Jane",  "lastName": "Smith"}

checkout

Complete a booking with passenger and payment details.

json
{  "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.

json
{  "confirmationNumber": "ABC123",  "firstName": "Jane",  "lastName": "Smith"}

change_flight

Modify an existing booking (no change fees!).

json
{  "confirmationNumber": "ABC123",  "firstName": "Jane",  "lastName": "Smith",  "newDepartureDate": "2024-06-20"}

cancel_flight

Cancel a reservation. Use confirm: true to actually cancel.

json
{  "confirmationNumber": "ABC123",  "firstName": "Jane",  "lastName": "Smith",  "confirm": true}

check_in

Check in online (available 24 hours before departure).

json
{  "confirmationNumber": "ABC123",  "firstName": "Jane",  "lastName": "Smith"}

get_boarding_pass

Retrieve boarding pass with group and position number.

json
{  "confirmationNumber": "ABC123",  "firstName": "Jane",  "lastName": "Smith",  "savePath": "~/boarding-pass.pdf"}

get_rapid_rewards

Check Rapid Rewards points, tier status, and Companion Pass progress.

json
{}

(Uses SW_USERNAME/SW_PASSWORD env vars)

book_with_points

Search for flights and book using Rapid Rewards points.

json
{  "originAirport": "DAL",  "destinationAirport": "DEN",  "departureDate": "2024-08-10",  "passengers": 1}

Southwest Airlines Fare Classes

FareRefundablePoints MultiplierBoarding
Wanna Get AwayTravel funds6x baseStandard
Wanna Get Away+Transferable funds8x baseStandard
AnytimeFull refund10x basePriority (A1–A15)
Business SelectFull refund12x baseGuaranteed 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

bash
git clone https://github.com/markswendsen-code/mcp-southwestcd mcp-southwestnpm installnpx playwright install chromiumnpm run buildnpm start

For development with hot reload:

bash
npm run dev

To see the browser during automation (useful for debugging):

bash
SW_HEADLESS=false npm run dev

License

MIT © Strider Labs

Source: README.md at commit 9cbed37

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.