内容
# @striderlabs/mcp-southwest
西南航空MCP服务器 - 搜索航班,管理预订,办理登机手续,管理您的Rapid Rewards账户,通过浏览器自动化。
## 功能
- **搜索航班**,实时获取所有票价等级的价格
- **比较票价**:Wanna Get Away,Wanna Get Away+,Anytime,Business Select
- **预订航班**,使用美元或Rapid Rewards积分
- **管理预订**:更改,取消,获取详情
- **无改签费** - 西南航空从不收取改签费
- **在线办理登机手续**(在起飞前24小时准时开放)
- **获取登机牌**,含组/位置(A/B/C)
- **Early Bird Check-In** - 在起飞前36小时自动办理登机手续
- **Rapid Rewards** - 查询积分余额,等级状态,同行证进度
## 前置条件
- Node.js 18+
- [Playwright 浏览器](https://playwright.dev/):`npx playwright install chromium`
## 安装
```bash
npm install -g @striderlabs/mcp-southwest
# 或
npx @striderlabs/mcp-southwest
```
## 设置
### 环境变量
创建 `.env` 文件或在环境中设置:
```env
# 账户工具所需(登机手续,Rapid Rewards,积分预订)
SW_USERNAME=您的Rapid Rewards号码或邮箱
SW_PASSWORD=您的密码
# 可选
SW_HEADLESS=true # 设置为 "false" 以显示浏览器(便于调试)
```
### Claude Desktop 配置
添加到 `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"southwest": {
"command": "npx",
"args": ["@striderlabs/mcp-southwest"],
"env": {
"SW_USERNAME": "您的Rapid Rewards号码",
"SW_PASSWORD": "您的密码"
}
}
}
}
```
或全局安装后:
```json
{
"mcpServers": {
"southwest": {
"command": "mcp-southwest",
"env": {
"SW_USERNAME": "您的Rapid Rewards号码",
"SW_PASSWORD": "您的密码"
}
}
}
}
```
## 可用工具
### `search_flights`
搜索可用的西南航空航班。
```json
{
"originAirport": "DAL",
"destinationAirport": "LAX",
"departureDate": "2024-06-15",
"passengers": 2,
"tripType": "oneway",
"fareType": "USD"
}
```
### `get_flight_details`
获取特定航班的状态和详情。
```json
{
"flightNumber": "WN1234",
"flightDate": "2024-06-15",
"originAirport": "DAL",
"destinationAirport": "LAX"
}
```
### `select_flight`
从搜索结果中选择航班以继续预订。
```json
{
"flightIndex": 0,
"fareType": "wanna-get-away"
}
```
### `get_fares`
比较票价等级,含价格和权益。
```json
{
"originAirport": "HOU",
"destinationAirport": "MCO",
"departureDate": "2024-07-04",
"fareType": "USD"
}
```
### `add_early_bird`
为现有预订添加Early Bird Check-In(约15-25美元/人/航班)。
```json
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith"
}
```
### `checkout`
完成预订,含乘客和付款详情。
```json
{
"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_reservation`
通过确认号码查找预订。
```json
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith"
}
```
### `change_flight`
修改现有预订(无改签费!)。
```json
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith",
"newDepartureDate": "2024-06-20"
}
```
### `cancel_flight`
取消预订。使用 `confirm: true` 以实际取消。
```json
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith",
"confirm": true
}
```
### `check_in`
在线办理登机手续(在起飞前24小时可用)。
```json
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith"
}
```
### `get_boarding_pass`
获取登机牌,含组和位置号码。
```json
{
"confirmationNumber": "ABC123",
"firstName": "Jane",
"lastName": "Smith",
"savePath": "~/boarding-pass.pdf"
}
```
### `get_rapid_rewards`
查询Rapid Rewards积分,等级状态,同行证进度。
```json
{}
```
*(使用 `SW_USERNAME`/`SW_PASSWORD` 环境变量)
### `book_with_points`
搜索航班并使用Rapid Rewards积分预订。
```json
{
"originAirport": "DAL",
"destinationAirport": "DEN",
"departureDate": "2024-08-10",
"passengers": 1
}
```
## 西南航空票价等级
| 票价 | 可退款 | 积分倍数 | 登机 |
|------|-----------|-------------------|---------|
| Wanna Get Away | 旅行资金 | 6倍基数 | 标准 |
| Wanna Get Away+ | 可转让资金 | 8倍基数 | 标准 |
| Anytime | 全额退款 | 10倍基数 | 优先(A1–A15) |
| Business Select | 全额退款 | 12倍基数 | 保证A1–A15 |
## 西南航空登机系统
西南航空使用**开放座位** - 无固定座位。乘客按组登机:
- **A组**(A1–A60):Early Bird / Business Select / Anytime 优先
- **B组**(B1–B60):一般登机
- **C组**(C1–C60):最后登机
办理登机手续的顺序决定登机位置。在起飞前24小时准时办理登机手续以获得最佳位置。
## 会话持久性
登录会话保存到 `~/.config/mcp-southwest/session.json` 以避免每次运行都重新认证。
## 开发
```bash
git clone https://github.com/markswendsen-code/mcp-southwest
cd mcp-southwest
npm install
npx playwright install chromium
npm run build
npm start
```
开发热重载:
```bash
npm run dev
```
在自动化过程中显示浏览器(便于调试):
```bash
SW_HEADLESS=false npm run dev
```
## 许可证
MIT © Strider Labs