Trip Tracker MCP Server
by skywall34
README.md
# Trip Tracker MCP Server
A Model Context Protocol (MCP) server that provides access to a trip tracking SQLite database. This server enables AI assistants to query and manage flight trip information including users, airports, and flight details.
## Description
This MCP server exposes a SQLite database for the trip-tracker application through a set of tools and resources. It provides structured access to:
- **Users**: User account information and profiles
- **Trips**: Flight records including departure/arrival airports, times, airline info, flight numbers, reservations, terminals, and gates
- **Airports**: Airport data with IATA codes, names, cities, countries, and geographic coordinates
The server uses FastMCP and SQLAlchemy for async database operations, with input sanitization for security.
## Features
### Tools
**Trip Management:**
- `get_trip` - Get detailed trip information by ID
- `list_trips` - List trips with optional filtering by user, departure/arrival airports, or airline
- `get_user_trips` - Get all trips for a specific user
- `search_trips_by_route` - Search trips by departure and arrival airports
**User Management:**
- `get_user` - Get user information by ID
- `list_users` - List all users with pagination
- `search_users` - Search users by email or name
**Airport Information:**
- `get_airport` - Get airport details by IATA code
- `list_airports` - List all airports with pagination
- `search_airports` - Search airports by name, city, or country
### Resources
- `trip://{trip_id}` - Access trip information as a resource
## Installation
Ensure you have Python 3.11 or higher installed.
Install dependencies using uv:
```bash
uv sync
```
Or using pip:
```bash
pip install -r requirements.txt
```
## Configuration
The server connects to a SQLite database.
You can override this location by setting the `TRIP_TRACKER_DB` environment variable:
```bash
export TRIP_TRACKER_DB=/path/to/your/database.db
```
## Running the Server
### Using Python directly
```bash
python main.py
```
### Using uv
```bash
uv run main.py
```
The server will:
1. Initialize the database (create tables if they don't exist)
2. Start the HTTP server on `http://127.0.0.1:9000`
## MCP Client Configuration
To use this server with an MCP client (like Claude Desktop), add it to your MCP settings:
```json
{
"mcpServers": {
"trip-tracker": {
"command": "uv",
"args": [
"--directory",
"/home/user/trip-tracker-mcp",
"run",
"main.py"
],
"env": {
"TRIP_TRACKER_DB": "/path/to/your/database.db"
}
}
}
}
```
Or using Python directly:
```json
{
"mcpServers": {
"trip-tracker": {
"command": "python",
"args": ["/home/user/trip-tracker-mcp/main.py"],
"env": {
"TRIP_TRACKER_DB": "/path/to/your/database.db"
}
}
}
}
```This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues