astro-tools avatar

astrodynamics-mcp

astro-tools/astrodynamics-mcp

Plugs authoritative astrodynamics into Claude, Cursor, or any MCP client. You get TLE propagation via SGP4, Lambert solvers for transfer geometry, ground station access windows, coordinate frame transforms across ICRF/ITRS/GCRS/TEME, porkchop plots for interplanetary missions, and B-plane targeting for flybys. Pulls live TLEs from CelesTrak and Space-Track, leans on skyfield and astropy for the numerical work, and includes an optional GMAT integration for running full NASA mission scripts. Stops LLMs from hallucinating orbital mechanics by letting them call sgp4, lamberthub, and JPL Horizons instead. Each tool returns results with explicit units and comes with an Inspect eval suite that validates tool selection and argument binding.

GitHub stars
1
tools
25
transport
STDIO
last updated
Jun 7, 2026

Tools

25 tools

Public tool metadata for what this MCP can expose to an agent.

tle_lookupFetch current TLEs by NORAD ID, name, or group — from CelesTrak (default) or Space-Track.

Fetch current TLEs by NORAD ID, name, or group — from CelesTrak (default) or Space-Track.

No parameter schema in public metadata yet.

sgp4_propagatePropagate TLEs across UTC ISO 8601 epochs in TEME / ICRF / GCRS / ITRS / CIRS.

Propagate TLEs across UTC ISO 8601 epochs in TEME / ICRF / GCRS / ITRS / CIRS.

No parameter schema in public metadata yet.

lambert_solveSolve Lambert's problem; multi-rev solutions enumerated; two-impulse Δv on demand.

Solve Lambert's problem; multi-rev solutions enumerated; two-impulse Δv on demand.

No parameter schema in public metadata yet.

access_windowsGround-station / observer access intervals over a window, with AOS / LOS / peak elevation.

Ground-station / observer access intervals over a window, with AOS / LOS / peak elevation.

No parameter schema in public metadata yet.

time_convertUTC / TAI / TT / TDB / UT1 / GPS / TCB / TCG conversions across ISO / JD / MJD / J2000-seconds / Unix.

UTC / TAI / TT / TDB / UT1 / GPS / TCB / TCG conversions across ISO / JD / MJD / J2000-seconds / Unix.

No parameter schema in public metadata yet.

frame_transformState-vector transforms across ICRF / ITRS / GCRS / TEME / CIRS / TIRS / IAU body-fixed frames.

State-vector transforms across ICRF / ITRS / GCRS / TEME / CIRS / TIRS / IAU body-fixed frames.

No parameter schema in public metadata yet.

porkchop(depart × arrive) Δv / C3 grid for interplanetary transfers, ASCII contour, summary or full output.

(depart × arrive) Δv / C3 grid for interplanetary transfers, ASCII contour, summary or full output.

No parameter schema in public metadata yet.

bplane_targetB-plane element calculation and impulsive targeting for hyperbolic flybys.

B-plane element calculation and impulsive targeting for hyperbolic flybys.

No parameter schema in public metadata yet.

satellite_metadataPhysical & provenance metadata (mass, dimensions, COSPAR ID, launch, operator, decay status) for a NORAD ID.

Physical & provenance metadata (mass, dimensions, COSPAR ID, launch, operator, decay status) for a NORAD ID.

No parameter schema in public metadata yet.

gmat_run_missionRun a complete GMAT mission; returns a parsed summary, report data, and pointers to large outputs.

Run a complete GMAT mission; returns a parsed summary, report data, and pointers to large outputs.

No parameter schema in public metadata yet.

gmat_sweepParameter sweeps and Monte Carlo (grid / samples / Monte Carlo / Latin hypercube) over a mission.

Parameter sweeps and Monte Carlo (grid / samples / Monte Carlo / Latin hypercube) over a mission.

No parameter schema in public metadata yet.

gmat_execute_scriptEscape hatch — run raw GMAT script text and return its reports verbatim; engine errors come back as data.

Escape hatch — run raw GMAT script text and return its reports verbatim; engine errors come back as data.

No parameter schema in public metadata yet.

gmat_validate_scriptParse-validate a script without running it; returns errors, warnings, and the resource/command structure.

Parse-validate a script without running it; returns errors, warnings, and the resource/command structure.

No parameter schema in public metadata yet.

gmat_read_run_artefactRead the raw text of a file produced by a prior run (ephemerides, reports too large to inline).

Read the raw text of a file produced by a prior run (ephemerides, reports too large to inline).

No parameter schema in public metadata yet.

spice_load_kernelFurnish a kernel into the pool from a local path or a NAIF https URL (allowlisted, cached); a meta-kernel furnishes all it lists.

Furnish a kernel into the pool from a local path or a NAIF https URL (allowlisted, cached); a meta-kernel furnishes all it lists.

No parameter schema in public metadata yet.

spice_list_kernelsList the kernels currently furnished in the pool, optionally filtered by category.

List the kernels currently furnished in the pool, optionally filtered by category.

No parameter schema in public metadata yet.

spice_unload_kernelDrop a furnished kernel by the name spice_load_kernel returned.

Drop a furnished kernel by the name spice_load_kernel returned.

No parameter schema in public metadata yet.

spice_statePosition / velocity of a target relative to an observer at one or more epochs, from furnished SPK kernels.

Position / velocity of a target relative to an observer at one or more epochs, from furnished SPK kernels.

No parameter schema in public metadata yet.

spice_frame_transformRotate a vector between kernel-defined frames — in particular non-Earth body-fixed frames — or return the rotation matrix.

Rotate a vector between kernel-defined frames — in particular non-Earth body-fixed frames — or return the rotation matrix.

No parameter schema in public metadata yet.

spice_body_parametersRead a body's radii, GM, and pole / prime-meridian orientation constants from furnished PCK kernels.

Read a body's radii, GM, and pole / prime-meridian orientation constants from furnished PCK kernels.

No parameter schema in public metadata yet.

spice_time_convertConvert between the kernel-defined time systems ET / UTC / SCLK using furnished LSK / SCLK kernels.

Convert between the kernel-defined time systems ET / UTC / SCLK using furnished LSK / SCLK kernels.

No parameter schema in public metadata yet.

plot_ground_trackRender a satellite's sub-satellite ground track as a PNG over a lon/lat graticule, with the latitude / longitude extent inline.

Render a satellite's sub-satellite ground track as a PNG over a lon/lat graticule, with the latitude / longitude extent inline.

No parameter schema in public metadata yet.

plot_trajectoryRender an orbit or transfer arc as a 2D or 3D PNG about a central body, with arc length and apsides inline.

Render an orbit or transfer arc as a 2D or 3D PNG about a central body, with arc length and apsides inline.

No parameter schema in public metadata yet.

plot_porkchopRender a porkchop C3 contour as a PNG from a full porkchop grid result — no recompute — with the best cell marked.

Render a porkchop C3 contour as a PNG from a full porkchop grid result — no recompute — with the best cell marked.

No parameter schema in public metadata yet.

czml_trajectoryExport a trajectory as a CZML document for a Cesium 3D client, returned as an embedded resource.

Export a trajectory as a CZML document for a Cesium 3D client, returned as an embedded resource.

No parameter schema in public metadata yet.

Sponsors

Readme

astrodynamics-mcp

A Model Context Protocol server that gives any MCP-capable LLM client (Claude Code, Cursor, ChatGPT desktop, custom agents) authoritative astrodynamics tools: TLE/SGP4 propagation, Lambert solving, ground-station access, time-scale and coordinate-frame conversions, porkchop scans, B-plane targeting, satellite metadata, and — with optional extras — full NASA GMAT mission execution ([gmat]), NASA SPICE / NAIF kernel queries ([spice]), and trajectory visualisation ([viz]).

Why

LLMs reason well about astrodynamics concepts but cannot do the numerical work — they cannot propagate orbits, solve Lambert problems, or query SPICE ephemerides. astrodynamics-mcp lets you plug authoritative tools into any MCP-capable client so the LLM calls vetted upstream libraries instead of fabricating numbers. Every result carries explicit units; every tool description tunes against an Inspect AI eval suite that measures whether the LLM picks the right tool and binds the right arguments.

Tools


View the full README on GitHub

Details

Repository
github.com/astro-tools/astrodynamics-mcp
Package
astrodynamics-mcp
Transport
STDIO
Registry
MCP registry, active