MCP server for Southwest Airlines - search flights, manage bookings
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y @striderlabs/mcp-southwest
MCP client config
{
"mcpServers": {
"southwest": {
"command": "npx",
"args": [
"-y",
"@striderlabs/mcp-southwest"
]
}
}
}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