Skip to main content
Glama
srinipusuluri

Airline Reservation MCP Server

README.md
# Airline Reservation MCP Server

An MCP (Model Context Protocol) server that provides tools for interacting with an airline reservation system through Claude/Cline.

PLEASE NOTE- YOU MUST INSTALL https://github.com/srinipusuluri/airline_reservation_system

## Features

This MCP server exposes 5 tools for managing airline reservations:

- **search_flights** - Search for available flights between cities on a specific date
- **get_flight_details** - Get detailed information about a specific flight
- **create_booking** - Create a new flight booking for a registered user
- **get_user_bookings** - Retrieve all bookings for a specific user
- **cancel_booking** - Cancel an existing flight booking

## Installation

### Prerequisites

- Node.js (v16 or later)
- Python 3.x
- Access to an airline reservation system database

### Setup

1. **Clone or create the MCP server:**
   ```bash
   mkdir -p ~/Documents/Cline/MCP
   cd ~/Documents/Cline/MCP
   # Copy the airline-reservation-server folder here
   ```

2. **Install dependencies:**
   ```bash
   cd airline-reservation-server
   npm install
   ```

3. **Build the server:**
   ```bash
   npm run build
   ```

4. **Set up Python scripts:**
   Ensure the airline reservation system's Python scripts are in place at:
   `~/Desktop/airline_reservation_system/scripts/`
   - `search_flights.py`
   - `get_flight_details.py`
   - `create_booking.py`
   - `get_user_bookings.py`
   - `cancel_booking.py`

5. **Configure in Cline settings:**

   Add the following to your MCP settings file:
   `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`

   ```json
   {
     "mcpServers": {
       "airline-reservation": {
         "command": "node",
         "args": ["/Users/yourusername/Documents/Cline/MCP/airline-reservation-server/build/airline-reservation-server/index.js"],
         "disabled": false,
         "autoApprove": []
       }
     }
   }
   ```

   Note: Replace `yourusername` with your actual username in the path.

## Usage

Once installed and configured, you can use the MCP server tools through natural language commands:

### Examples

**Search for flights:**
```
"Find flights from New York to Los Angeles on 2025-10-08"
```

**Get flight details:**
```
"Show me the details for flight 101"
"Get information about flight ID 1"
```

**Create a booking:**
```
"Book flight 1 for user john_doe with passenger John Smith at john@example.com"
"Create a booking for mary_jane on flight 15 for Mary Jane at mary@example.com"
```

**Check user bookings:**
```
"Show all bookings for user john_doe"
"What are the current bookings for mary_jane?"
```

**Cancel a booking:**
```
"Cancel booking number 123"
"Cancel booking ID 456"
```

## Tool Specifications

### search_flights
**Description:** Search for available flights between cities on a specific date

**Parameters:**
- `departureCity` (string): Departure city
- `arrivalCity` (string): Arrival city
- `departureDate` (string): Departure date in YYYY-MM-DD format

**Returns:** Array of available flights with details

### get_flight_details
**Description:** Get detailed information about a specific flight

**Parameters:**
- `flightId` (number): Flight ID to retrieve

**Returns:** Complete flight information including airline, times, pricing, and availability

### create_booking
**Description:** Create a new flight booking for a user

**Parameters:**
- `username` (string): Username of the registered user
- `flightId` (number): Flight ID to book
- `passengerName` (string): Full name of the passenger
- `passengerEmail` (string): Email address of the passenger

**Returns:** Booking confirmation with details

### get_user_bookings
**Description:** Get all flight bookings for a specific user

**Parameters:**
- `username` (string): Username to retrieve bookings for

**Returns:** Array of user's bookings with flight details

### cancel_booking
**Description:** Cancel an existing flight booking

**Parameters:**
- `bookingId` (number): Booking ID to cancel

**Returns:** Success/failure status of cancellation

## Architecture

The MCP server acts as a bridge between natural language interfaces and the Python-based airline reservation system:

```
[Claude/Cline] → [MCP Server (TypeScript)] → [Python Scripts] → [SQLite Database]
```

- **MCP Server:** Handles protocol communication and tool validation
- **Python Scripts:** Interface with the existing database operations
- **Database:** Stores flight, user, and booking information

## Error Handling

The server includes comprehensive error handling for:
- Invalid parameters
- Database connection issues
- Flight/booking not found
- Booking conflicts (no seats available)

## Contributing

To extend this MCP server:

1. Add new tools in `src/airline-reservation-server/index.ts`
2. Create corresponding Python scripts in the airline system
3. Update the database helper functions as needed
4. Rebuild and test the server

## License

MIT License - see LICENSE file for details.

## Related

- [Airline Reservation System](https://github.com/yourusername/airline-reservation-system) - The underlying database system
- [Model Context Protocol](https://modelcontextprotocol.io/) - MCP specification and documentation