Skip to main content

Model Context Protocol server giving any LLM client authoritative astrodynamics tools — TLE/SGP4, Lambert, ground-station access, time/frame conversions, porkchop, B-plane.

Project description

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 the optional [gmat] extra — full NASA GMAT mission execution.

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

Tool What it does Backed by
tle_lookup Fetch current TLEs by NORAD ID, name, or group — from CelesTrak (default) or Space-Track. CelesTrak gp.php API · Space-Track †
sgp4_propagate Propagate TLEs across UTC ISO 8601 epochs in TEME / ICRF / GCRS / ITRS / CIRS. sgp4
lambert_solve Solve Lambert's problem; multi-rev solutions enumerated; two-impulse Δv on demand. lamberthub
access_windows Ground-station / observer access intervals over a window, with AOS / LOS / peak elevation. skyfield
time_convert UTC / TAI / TT / TDB / UT1 / GPS / TCB / TCG conversions across ISO / JD / MJD / J2000-seconds / Unix. astropy.time
frame_transform State-vector transforms across ICRF / ITRS / GCRS / TEME / CIRS / TIRS / IAU body-fixed frames. astropy.coordinates
porkchop (depart × arrive) Δv / C3 grid for interplanetary transfers, ASCII contour, summary or full output. lamberthub + JPL Horizons
bplane_target B-plane element calculation and impulsive targeting for hyperbolic flybys. in-house, JPL Horizons fed
satellite_metadata Physical & provenance metadata (mass, dimensions, COSPAR ID, launch, operator, decay status) for a NORAD ID. ESA DISCOSweb †

Credentialed source. Pass credentials as environment variables for the stdio transport, or in the session-init _meta block for HTTP — see Credentials. A tool called without its credential returns a typed CredentialRequiredError, never a silent failure.

GMAT tools (optional [gmat] extra)

Install the [gmat] extra and have a local NASA GMAT install, and five more tools register for driving real GMAT missions (they stay hidden otherwise):

Tool What it does Backed by
gmat_run_mission Run a complete GMAT mission; returns a parsed summary, report data, and pointers to large outputs. gmat-run
gmat_sweep Parameter sweeps and Monte Carlo (grid / samples / Monte Carlo / Latin hypercube) over a mission. gmat-sweep
gmat_execute_script Escape hatch — run raw GMAT script text and return its reports verbatim; engine errors come back as data. gmat-run
gmat_validate_script Parse-validate a script without running it; returns errors, warnings, and the resource/command structure. gmat-run
gmat_read_run_artefact Read the raw text of a file produced by a prior run (ephemerides, reports too large to inline). run registry

Full input / output JSON schemas live on the Tool reference page of the docs site.

Quick start

Install:

uv tool install astrodynamics-mcp            # or: pipx install astrodynamics-mcp
uv tool install "astrodynamics-mcp[gmat]"    # adds the GMAT mission tools (needs a local GMAT install)

Claude Code

Add to your Claude Code MCP settings:

{
  "mcpServers": {
    "astrodynamics": {
      "command": "astrodynamics-mcp",
      "args": ["stdio"]
    }
  }
}

Restart Claude Code. In a chat:

You: Compute the Hohmann Δv from a 250 km circular LEO to GEO.

(The model calls lambert_solve with the Hohmann geometry and answers ≈ 3.91 km/s, citing the tool output — not the LLM's own weights.)

Cursor

~/.cursor/mcp.json (or workspace-level .cursor/mcp.json):

{
  "mcpServers": {
    "astrodynamics": {
      "command": "astrodynamics-mcp",
      "args": ["stdio"]
    }
  }
}

Restart Cursor. The tools appear under the astrodynamics server group.

See Pick a client in the docs for ChatGPT desktop, a raw Python MCP smoke client, and the Streamable HTTP transport for remote agents.

Supported clients

Client Transport Verified
Claude Code stdio ✅ Yes
Cursor stdio ✅ Yes
ChatGPT desktop stdio ⏳ Expected to work
Raw Python (mcp SDK) stdio ✅ Yes
Remote agents Streamable HTTP ⏳ Expected to work
LangGraph / AutoGen / CrewAI any ⏳ Expected to work

What this is not

  • Not a general-purpose astrodynamics framework. Wraps vetted upstream libraries; does not re-implement propagators, integrators, or coordinate systems.
  • Not an agent framework. Exposes MCP tools; LangGraph, AutoGen, CrewAI, and the LLM clients themselves consume them.
  • Not an ML / inference server. Tools that need their own ML models (maneuver detection, neural propagators) belong in separate MCP servers — kept modular for dependency isolation.
  • Not a SaaS. Runs locally or in your own infrastructure. No hosted multi-tenant deployment.
  • Not a web UI. Tool consumption is via MCP clients; no browser frontend, no desktop app, no notebook widget.

For direct (non-MCP) Python use of the same surfaces, reach for the upstream libraries: sgp4, lamberthub, skyfield, astropy, interplanetary-porkchop, spiceypy.

Built on

The official Anthropic modelcontextprotocol/python-sdk (MIT). The bundled FastMCP server class is the server primitive; stdio + Streamable HTTP transports are first-class.

Docs and links

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

astrodynamics_mcp-0.2.0.tar.gz (678.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

astrodynamics_mcp-0.2.0-py3-none-any.whl (170.4 kB view details)

Uploaded Python 3

File details

Details for the file astrodynamics_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: astrodynamics_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 678.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for astrodynamics_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 aebe52b2e368ff5f187553c7408a2d20bdab41bb98ca0633551bbb275cb888f2
MD5 4d94e884dc64f083ced1b017f9cdf491
BLAKE2b-256 5d295547e5cbd6628a423dcbd1b16aad43189842a72e79b1916cc5971c3d2008

See more details on using hashes here.

Provenance

The following attestation bundles were made for astrodynamics_mcp-0.2.0.tar.gz:

Publisher: release.yml on astro-tools/astrodynamics-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file astrodynamics_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for astrodynamics_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 640ec5b66c7ed28681fe673c2cd9fe6ab1bec7a4b173cddb0b7f6cc094896fc8
MD5 1c4713c57c1ac40dc79700b15e6448d7
BLAKE2b-256 e5f54165da0e4ff0b5d74ccdb7374aff15df6e469ffa07a7f754fbd9298581c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for astrodynamics_mcp-0.2.0-py3-none-any.whl:

Publisher: release.yml on astro-tools/astrodynamics-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page