# IO Aerospace MCP
> A hosted MCP server exposing the IO.Astrodynamics framework for ephemerides, orbital mechanics, reference-frame transforms, geometry searches, mission simulation, and time/unit conversions.
Canonical: https://www.mcpfolio.com/servers/io-aerospace
Last updated: 2026-10-28
## Catalog record

- Publisher: IO Aerospace
- Categories: search

## Website

https://io-aerospace.org/

## Transports

Streamable HTTP

## Authentication

OAuth 2.1 with PKCE through WorkOS AuthKit, followed by a separate active-license check tied to the signed-in email. Required scopes: openid, email, offline_access. No API key. A valid OAuth login without an active license is insufficient.

## Tools

- **GetEphemerisAsStateVectors**: Get the state vectors (position and velocity) of a target observed from an observer in a given frame over a time range.
- **GetCelestialBodyProperties**: Get the geophysical properties of a celestial body: NAIF IDs, name, tri-axial radii, GM, body-fixed frame, and zonal harmonics J2/J3/J4.
- **ConvertStateVectorToKeplerianElements**: Returns the classical orbital elements (semi-major axis, eccentricity, inclination, RAAN, argument of periapsis, mean anomaly, perigee radius).
- **ConvertStateVectorToEquinoctialElements**: Returns equinoctial elements (P, F, G, H, K, L0).
- **ConvertStateVectorToEquatorialCoordinates**: Returns equatorial coordinates (right ascension, declination, distance, epoch). Implicitly transformed into ICRF.
- **ConvertKeplerianElementsToStateVector**: Returns the Cartesian state vector in the same frame and center-of-motion as the input.
- **ConvertEquinoctialElementsToStateVector**: Inverse of ConvertStateVectorToEquinoctialElements .
- **ConvertStateVectorToTheGivenFrame**: Transform a state vector into another frame at its own epoch.
- **ConvertKeplerianElementsToEquinoctialElements**: Direct conversion that does not go through a state vector. Same parameter type as the Keplerian → state-vector tool.
- **ConvertEquinoctialElementsToKeplerianElements**: Inverse of the previous tool.
- **ComputeOrbitalPeriod**: Orbital period in seconds via Kepler's third law. Only valid for elliptical orbits ( a > 0 , e < 1 ).
- **ComputeMeanMotion**: Mean motion n = sqrt(mu / a^3) in radians per second. Elliptical only.
- **ComputeApsides**: Apoapsis and periapsis radii in meters. Elliptical only.
- **ComputeSpecificOrbitalEnergy**: Specific orbital energy epsilon = v²/2 − mu/r in J/kg.
- **ComputeSpecificAngularMomentum**: Specific angular momentum h = r × v in m²/s, expressed in the input frame.
- **ConvertDateTime**: Convert a date/time to another time scale, preserving the instant.
- **CurrentDateTime**: Return the current UTC instant. No parameters.
- **ConvertToJulianDate**: Convert an instant to its Julian Date (days) in the same time scale.
- **ConvertFromJulianDate**: Build an instant from a Julian Date.
- **ConvertToModifiedJulianDate**: MJD = JD − 2400000.5 . Same input as ConvertToJulianDate .
- **ConvertToEphemerisTime**: Convert an instant to ephemeris time — TDB seconds elapsed since J2000 ( 2000-01-01T12:00:00 TDB ).
- **ConvertFromEphemerisTime**: Inverse of ConvertToEphemerisTime . Returns a TDB Time .
- **AddDuration**: Add a signed duration in seconds to an instant, preserving its time scale.
- **ParseTle**: Parse a TLE into its mean orbital elements plus drag terms.
- **EvaluateTleAtEpoch**: Propagate the TLE with SGP4/SDP4 to a requested epoch and return the osculating state vector in the chosen frame. Earth is assumed as the central body.
- **GetFrameRotationMatrix**: Compute the 3×3 rotation matrix R such that v_target = R · v_source .
- **GetFrameStateRotationMatrix**: Compute both R and its time derivative dR/dt . Together they form the 6×6 state-transition matrix [[R, 0], [dR/dt, R]] mapping stacked (position, velocity) states.
- **GetDeepSpaceStationPlanetodeticCoordinates**: Get the latitude (rad), longitude (rad) and altitude (m) of a DSS.
- **GetDeepSpaceStationStateVector**: State vector of a DSS observed from a celestial body.
- **GetHorizontalCoordinates**: Azimuth, elevation and range of a target body from a DSS at a given epoch.
- **GetDSSFrame**: Return the topocentric frame name of a DSS (format: DSS-NN_TOPO ).
- **GetSiteStateVector**: State vector of a user-defined surface site observed from a celestial item.
- **GetSiteHorizontalCoordinates**: Azimuth, elevation, range of a target from an arbitrary site at a given epoch. Same site parameters as above, plus a target body.
- **GetSiteFrameName**: Returns the topocentric frame name of a site built from a name: <NAME_UPPERCASED>_TOPO .
- **ConvertPlanetodeticToCartesian**: Planetodetic (lat, lon, alt) → body-fixed Cartesian (m) using the body's equatorial radius and flattening.
- **ConvertCartesianToPlanetodetic**: Inverse of the previous tool.
- **ComputeSubSpacecraftPoint**: Planetodetic sub-spacecraft point (latitude, longitude, altitude above ellipsoid) from a body-fixed spacecraft position.
- **FindCoordinateConstraint**: Find windows where one component of the observer→target vector, expressed in a given frame and coordinate system, satisfies a relational constraint.
- **FindDistanceConstraint**: Find windows where the distance between two SPICE-backed items satisfies a relational constraint.
- **FindOccultingConstraint**: Find occultation or eclipse windows.
- **FindAngularSeparationConstraint**: Find windows where the angular separation (radians) of two targets as seen from an observer satisfies a relational constraint.
- **FindPhaseAngleConstraint**: Find windows where the illumination phase angle of a target satisfies a relational constraint. The phase angle is the illuminator-target-observer angle measured at the target; cos(phaseAngle) drives the illuminated fraction.
- **FindElevationFromSiteConstraint**: Find windows where a target's elevation, observed from an arbitrary (body, lat, lon, alt) site, satisfies a relational constraint. Useful for visibility windows and twilight.
- **ComputeAngularSeparation**: Angular separation between two targets as seen from an observer.
- **ComputeAngularSize**: Angular diameter of a celestial body at a given range. 2 · arctan(R / d) with R the body radius.
- **ComputeSubObserverPoint**: Planetocentric sub-observer point on the target body: latitude and longitude (radians) of the point directly beneath the observer, and the distance from the body center to the observer.
- **ComputeLightTime**: One-way light time in seconds between observer and target (range / c).
- **ComputeRangeRate**: Line-of-sight range rate (m/s) between observer and target — positive when receding.
- **ComputePhaseAngle**: Phase angle in radians — the illuminator-target-observer angle measured at the target.
- **ComputeIlluminationFraction**: Illuminated fraction of the target's disc as seen from the observer: (1 + cos(phaseAngle)) / 2 . Returns a value in [0, 1] .
- **ComputeApogeeChangeDeltaV**: Single-impulse vis-viva delta-V at perigee that changes the orbit's apogee radius.
- **ComputePerigeeChangeDeltaV**: Symmetric counterpart: single impulse at apogee that changes the perigee radius.
- **ComputeInclinationChangeDeltaV**: Pure plane change at constant speed at the node: Δv = 2v · sin(Δi/2) .
- **ComputeCombinedPlaneChangeDeltaV**: Simultaneous inclination + RAAN change at constant speed. The equivalent rotation angle θ is derived from the spherical law of cosines, then Δv = 2v · sin(θ/2) .
- **ComputePhasingDeltaV**: First impulse of a phasing rendezvous on a circular orbit. The spacecraft enters a phasing ellipse, completes the requested number of revolutions, then re-circularizes with an equal-magnitude second burn — so total cost = 2 × returned value .
- **ComputeHohmannTransferDeltaV**: Two-impulse Hohmann transfer between coplanar circular orbits.
- **ComputeBiEllipticTransferDeltaV**: Three-impulse bi-elliptic transfer between coplanar circular orbits via an intermediate apogee. The intermediate radius must exceed both endpoints.
- **ApplyImpulsiveDeltaV**: Apply an instantaneous Δv to a state vector. Position, epoch, frame and center of motion are preserved; velocity becomes v + Δv .
- **SolveLambert**: Position and velocity must be expressible relative to centerOfMotion ; the solver works in ICRF.
- **SimulateScenario**: SimulateScenarioRequest contains:
- **DegreesToArcseconds**: Convert Degrees to Arcseconds.
- **ArcsecondsToDegrees**: Convert Arcseconds to Degrees.
- **RadiansToArcseconds**: Convert Radians to Arcseconds.
- **ArcsecondsToRadians**: Convert Arcseconds to Radians.
- **MetersToAstronomicalUnits**: Convert Meters to AstronomicalUnits.
- **AstronomicalUnitsToMeters**: Convert AstronomicalUnits to Meters.
- **MetersToParsec**: Convert Meters to Parsec.
- **ParsecToMeters**: Convert Parsec to Meters.
- **MetersToLightYears**: Convert Meters to LightYears.
- **LightYearsToMeters**: Convert LightYears to Meters.

## Sources

- [official_service_documentation](https://docs-mcp.io-aerospace.org/)
- [official_complete_tool_reference](https://docs-mcp.io-aerospace.org/reference/)

## Setup

Use the interactive setup panel on [the detail page](https://www.mcpfolio.com/servers/io-aerospace) to view instructions for each supported client.