Run Synth Server
The MCP Synth Server is a FastAPI application that exposes tools for generating synthetic airline data, inspecting models, previewing data, and exporting archives.
Prerequisites
- •
Python environment must be active: The
.venvenvironment should be activated. - •
Dependencies installed:
uvicornandfastapimust be installed (included in dev dependencies).Verify with:
bashpython -c "import uvicorn; import fastapi; print('OK')"If not installed, run from
airline-discount-ml/:bashpip install -e ".[dev]"
Standard Server Start Procedure
Run the following commands in order:
- •
Navigate to Project Root:
bashcd airline-discount-ml
- •
Start the Server (Background Mode - Recommended):
Use
nohupto run the server in the background so it persists when new terminal commands are run:bashnohup uvicorn src.mcp_synth.server:app --host 127.0.0.1 --port 8010 --reload > synth_server.log 2>&1 &
This will:
- •Run the server in the background (
&) - •Keep it running even after terminal commands (
nohup) - •Log output to
synth_server.log
Alternative: Foreground Mode (blocks terminal):
bashuvicorn src.mcp_synth.server:app --host 127.0.0.1 --port 8010 --reload
Options:
- •
--host 127.0.0.1: Bind to localhost only (safe for development) - •
--port 8010: Default port (change if occupied) - •
--reload: Auto-reload on code changes (development mode)
Production mode (no auto-reload):
bashnohup uvicorn src.mcp_synth.server:app --host 0.0.0.0 --port 8010 > synth_server.log 2>&1 &
- •Run the server in the background (
- •
Verify Server is Running:
bashcurl http://127.0.0.1:8010/healthz
Expected response:
{"status":"ok"}Check version:
bashcurl http://127.0.0.1:8010/version
View server logs:
bashtail -f synth_server.log
Available Endpoints
| Endpoint | Method | Description |
|---|---|---|
/healthz | GET | Health check |
/version | GET | Server version |
/synth_generate | POST | Generate synthetic data |
/mcp | POST | MCP JSON-RPC endpoint for tools |
Stopping the Server
- •Press
Ctrl+Cin the terminal running the server - •Or find and kill the process:
lsof -i :8010 | awk 'NR>1 {print $2}' | xargs kill
Troubleshooting
| Issue | Solution |
|---|---|
| Port 8010 in use | Use --port 8011 or kill existing process |
| Module not found | Run pip install -e ".[dev]" from airline-discount-ml/ |
| Connection refused | Ensure server started successfully, check terminal output |