Flight Simulator MCP Server
A comprehensive airline booking operations server that enables users to search flights, create bookings, check-in, select seats, track flights, and manage loyalty programs through natural language interactions.
README Documentation
Flight Simulator MCP Server
An enhanced Model Context Protocol (MCP) server for comprehensive airline booking operations, built with FastMCP 2.0 and Python.
Features
🛫 Core Booking Tools (17 total)
- Flight Search & Booking: Multi-criteria search, booking creation, modifications
- Check-in & Services: Online check-in, seat selection, baggage, meal preferences
- Real-time Operations: Flight tracking, price alerts, disruption handling
- Loyalty & Groups: Frequent flyer integration, group bookings, special assistance
📊 Information Resources (9 total)
- Airport information with timezones
- Real-time flight status
- Seat maps and availability
- Weather impact data
- Airline policies
- Gate information
- Upgrade availability
- Loyalty benefits
🤖 AI-Powered Prompts (6 total)
- Intelligent flight search assistance
- Complete booking workflow guidance
- Multi-city trip planning
- Disruption management
- Loyalty optimization
- Accessibility support
Installation
Prerequisites
- Python 3.10 or higher
- UV package manager (recommended) or pip
Setup
- Clone the repository:
git clone <repository-url>
cd flight-sim-mcp
- Install dependencies using UV (recommended):
uv pip install -r requirements.txt
Or using pip:
pip install -r requirements.txt
- Copy environment configuration:
cp .env.example .env
- Configure your
.env
file with appropriate values.
Usage
Running the Server
Start the MCP server:
python src/server.py
The server will start in stdio mode by default, suitable for integration with Claude Desktop or other MCP clients.
Integration with Claude Desktop
-
Open your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add the flight simulator server:
{
"mcpServers": {
"flight-simulator": {
"command": "python",
"args": ["/path/to/flight-sim-mcp/src/server.py"],
"env": {}
}
}
}
- Restart Claude Desktop
Example Interactions
Flight Search:
"Find me a flight from San Francisco to New York next Friday"
Group Booking:
"I need to book flights for 8 people from SFO to JFK on March 15th"
Check-in:
"Check me in for booking BK12345ABC"
Flight Tracking:
"Track flight UA123"
Loyalty Optimization:
"How can I maximize my miles on upcoming trips?"
Available Tools
Flight Search & Booking
search_flights
- Search with multiple criteriaget_flight_details
- Detailed flight informationcreate_booking
- Book flightsget_booking
- Retrieve booking detailscancel_booking
- Cancel with refund calculationmodify_booking
- Change flights or dates
Check-in & Services
check_in
- Online check-in with boarding passesselect_seats
- Choose specific seatsadd_baggage
- Add checked bagsadd_services
- Meals, WiFi, priority boardingtravel_insurance
- Trip protection optionsspecial_assistance
- Accessibility services
Real-time & Loyalty
track_flight
- Live flight statusprice_alert
- Monitor price changesloyalty_account
- Link frequent flyer accountsgroup_booking
- 5+ passenger bookingsupgrade_seat
- Request upgrades
Testing
Using MCP Inspector
- Install MCP Inspector:
npm install -g @modelcontextprotocol/inspector
- Run the inspector:
npx mcp-inspector python src/server.py
- Access the web UI at
http://localhost:5173
Running Unit Tests
pytest tests/
Development
Project Structure
flight-sim-mcp/
├── src/
│ ├── server.py # Main MCP server
│ ├── tools/ # Tool implementations
│ ├── resources/ # Resource endpoints
│ ├── models/ # Pydantic data models
│ ├── data/ # Mock database
│ └── prompts/ # AI prompt templates
├── tests/ # Test files
├── pyproject.toml # Project configuration
└── README.md # This file
Adding New Tools
- Create a new file in
src/tools/
- Import the MCP instance:
from ..server import mcp
- Define tools using the
@mcp.tool()
decorator - Import the module in
server.py
Mock Data
The server uses a mock database that generates realistic flight data for demonstrations. In production, this would connect to real airline APIs.
Security Considerations
- API tokens should be stored in environment variables
- Payment tokens are mocked - implement real payment integration for production
- Personal data handling follows privacy best practices
- Rate limiting is recommended for production deployments
Deployment
Local Development
The default stdio transport is perfect for local development and testing with Claude Desktop.
Remote Deployment
For remote access, configure SSE transport:
# In server.py or via environment variables
MCP_TRANSPORT=sse
MCP_HOST=0.0.0.0
MCP_PORT=8080
Deploy options:
- Docker container (Dockerfile included)
- Railway/Render (one-click deploy)
- AWS Lambda (serverless)
- Any Python-capable hosting platform
Contributing
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Submit a pull request
License
MIT License - see LICENSE file for details
Support
For issues, questions, or contributions:
- Open an issue on GitHub
- Check existing documentation
- Review MCP protocol specs at modelcontextprotocol.io