Model Context Protocol server
Aerospace engineering tools, wired into your AI agent
An open-source MCP server exposing 47 tools across flight planning, orbital mechanics, rocket trajectories, aerodynamics, and trajectory optimization — callable from Claude and any MCP-compatible client.
aerospace tools
engineering domains
airports (IATA)
aircraft models
Capabilities
Eleven domains, one protocol
Every tool is a typed Python function with an auto-generated MCP schema — discoverable at runtime through the built-in tool search, and callable from the CLI without an MCP client.
Flight planning
Great-circle routes on WGS-84, multi-leg journeys, wind-aware ETA and fuel from OpenAP performance models.
plan_flight · plan_multi_leg_flight · search_airportsOrbital mechanics
Kepler element conversions, J2 propagation, ground tracks, Hohmann transfers, rendezvous, and Lambert solvers.
propagate_orbit_j2 · hohmann_transfer · lambert_problem_solverRockets
3-DOF trajectory simulation with ISA atmosphere, vehicle sizing estimates, and launch-angle optimization.
rocket_3dof_trajectory · optimize_launch_angleAerodynamics
Wing VLM analysis, airfoil polars, stability derivatives, and propeller BEMT with UAV energy estimates.
wing_vlm_analysis · airfoil_polar_analysis · propeller_bemt_analysisAtmosphere & frames
ISA atmosphere profiles, wind models, and ECEF/ECI/geodetic transforms with GMST Earth-rotation handling.
get_atmosphere_profile · transform_frames · geodetic_to_ecefAircraft performance
Density altitude, V-speeds, weight & balance, takeoff and landing distances, fuel reserves, and unit conversion.
takeoff_performance · weight_and_balance · convert_unitsOptimization & GNC
Genetic algorithms, particle swarm, Monte Carlo uncertainty, porkchop plots, Kalman filtering, and LQR design.
porkchop_plot_analysis · kalman_filter_state_estimationTool discovery
Search tools by name, keyword, or safe regex — built for Anthropic's deferred tool loading so agents keep context lean.
search_aerospace_tools · list_tool_categoriesIntegration
Call it your way
The same core logic is exposed three ways: an MCP server for AI agents, a FastAPI HTTP service, and a direct CLI.
{
"mcpServers": {
"aerospace": {
"command": "uv",
"args": [
"--directory",
"/path/to/aerospace-mcp",
"run",
"aerospace-mcp"
]
}
}
}
# Search airports by city
curl "http://localhost:8080/airports/by_city?city=San%20Jose&country=US"
# Plan a flight with performance estimates
curl -X POST "http://localhost:8080/plan" \
-H "Content-Type: application/json" \
-d '{
"depart_city": "San Jose",
"arrive_city": "Tokyo",
"ac_type": "A359",
"cruise_alt_ft": 35000
}'
import requests
plan = requests.post("http://localhost:8080/plan", json={
"depart_city": "San Jose",
"arrive_city": "Tokyo",
"ac_type": "A359",
}).json()
est = plan["estimates"]["block"]
print(f"{plan['distance_km']:.0f} km, "
f"{est['time_min']/60:.1f} h, {est['fuel_kg']:.0f} kg fuel")
# Discover tools
aerospace-mcp-cli search "orbit transfer"
# Convert units
aerospace-mcp-cli run convert_units --value 100 --from_unit kts --to_unit mps
# Plan a multi-leg journey
aerospace-mcp-cli run plan_multi_leg_flight \
--waypoints '[{"iata":"SJC"},{"iata":"NRT"},{"iata":"SIN"}]' \
--aircraft '{"ac_type":"A359"}'
On the wire
What an agent sees
Representative tool calls and their responses.
▸ search_airports {"query": "SJC"} Found 1 airport(s): • SJC (KSJC) - Norman Y. Mineta San Jose International Airport City: San Jose, US Coordinates: 37.3626, -121.9290 Timezone: America/Los_Angeles
▸ optimize_launch_angle {"target_range_m": 2000, "dry_mass_kg": 20, "propellant_mass_kg": 80} Launch Angle Optimization Results: Optimal launch angle: 47.2° Achieved range: 2,003 m Apogee altitude: 1,247 m Flight time: 32.4 s Iterations: 14
▸ hohmann_transfer {"r1_km": 6778, "r2_km": 42164} Hohmann Transfer: LEO (400 km) → GEO Delta-v burn 1: 2.44 km/s Delta-v burn 2: 1.47 km/s Total delta-v: 3.91 km/s Transfer time: 5.26 h Transfer SMA: 24,471 km
Quick start
Running in under a minute
UV (recommended)
git clone https://github.com/cheesejaguar/aerospace-mcp
cd aerospace-mcp
uv sync
# MCP server (stdio)
uv run aerospace-mcp
# or the HTTP API on :8080
uv run aerospace-mcp-http
Docker
docker build -t aerospace-mcp .
docker run -p 8080:8080 aerospace-mcp
# verify
curl http://localhost:8080/health
Claude Code
claude mcp add aerospace -- \
uv --directory /path/to/aerospace-mcp \
run aerospace-mcp
# then, in a session:
# "Plan a flight from SJC to Tokyo on an A359"
Outputs are simplified engineering estimates with no certification, no weather data, and no airspace awareness. Never use this software for real navigation, flight planning, or aircraft and spacecraft operations.