# @interstellar-tools/mcp [Health: Active]

**Category:** 🚀 Aerospace & Astrodynamics  
**Repository:** https://github.com/phun-ky/interstellar-tools  
**GitHub Stars:** 1  
**npm Downloads (last month):** 4341  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/interstellar-tools-mcp

## Description
Model Context Protocol (MCP) server exposing interstellar-tools orbital mechanics equations and celestial body datasets to AI assistants.

## Tools
Capabilities this server exposes over MCP:

- **gravitational_parameter** — Compute the standard gravitational parameter μ = G·(M + m) from masses. Use this to get μ for the other orbit tools.
- **circular_speed** — Speed of a circular orbit at radius r: v = √(μ/r).
- **escape_speed** — Escape speed at radius r: v = √(2μ/r).
- **vis_viva_speed** — Orbital speed at radius r on an orbit with semi-major axis a: v = √(μ(2/r − 1/a)). Use a > 0 for elliptic orbits and a < 0 for hyperbolic orbits.
- **kepler_period** — Orbital period of an elliptic orbit from Kepler’s third law: T = 2π√(a³/μ).
- **peri_apoapsis_radii** — Periapsis rp = a(1 − e) and apoapsis ra = a(1 + e). For hyperbolic orbits (a < 0, e > 1) ra is null.
- **sphere_of_influence_radius** — Laplace sphere-of-influence radius of a secondary body orbiting a primary: r_SOI = a·(m/M)^(2/5).
- **state_to_elements** — Classical orbital elements (a, e, i, Ω, ω, ν) from a position and velocity in an inertial frame centred on the body. Works for ellipses and hyperbolas. For a circular orbit ω is 0 and ν is measured from the node; for an equatorial one Ω is 0. Returns the periapsis radius, the specific energy, and the period if the orbit is elliptic.
- **elements_to_state** — Position and velocity in an inertial frame centred on the body, from classical orbital elements. Use a > 0 with e < 1 for an ellipse and a < 0 with e > 1 for a hyperbola; parabolas (e = 1) are not supported.
- **hohmann_transfer** — Two-impulse Hohmann transfer between coplanar circular orbits of radius r1 and r2 around the same body. Returns both burns, total Δv and transfer time.
- **rocket_delta_v** — Tsiolkovsky rocket equation from specific impulse: Δv = g0·Isp·ln(m0/mf).
- **plane_change_delta_v** — Δv for a pure inclination change at constant speed: Δv = 2v·sin(Δi/2). Δi must be within [0°, 180°].
- **solve_lambert** — Find the orbit from position r1 to position r2 in time dt (Lambert’s problem), single revolution, for ellipses and hyperbolas alike. Returns the velocities at both ends. Positions are in an inertial frame centred on the body. For the burns, subtract the velocity of the orbit you leave from v1, and v2 from the velocity of the orbit you join. Positions 0° or 180° apart are an error: the transfer plane is undefined. Feed v1 to state_to_elements for the transfer orbit.
- **hyperbolic_departure** — The burn from a circular parking orbit of radius rp onto the hyperbola that leaves the body with excess speed v∞, made at periapsis. The same Δv captures an arriving v∞ into that circular orbit. Also returns C3 = v∞², the launch-energy figure, and the hyperbola’s eccentricity. For an interplanetary transfer, v∞ is the difference between the planet’s velocity and the transfer orbit’s (from solve_lambert).
- **solve_kepler** — Solve Kepler’s equation M = E − e·sin(E) for the eccentric anomaly E, given mean anomaly M and eccentricity e (elliptic orbits). Robust up to e → 1.
- **convert_anomaly** — Convert between mean, eccentric and true anomaly for an elliptic orbit. Results are normalised to [0, 2π).
- **convert_time** — Convert a duration between time units, from attoseconds to gigayears.
- **convert_distance** — Convert a distance between units, from metres to gigaparsecs. Datasets give orbit.a in au and radius in km, while the orbit tools take metres: convert with this tool first.
- **great_circle_distance** — Shortest distance between two points along the surface of a sphere, and the central angle between them, from their latitudes and longitudes. Uses the body’s mean radius; on an oblate body like Earth the error is up to about 0.5%.
- **horizon_distance** — How far an observer at a height above a sphere can see: the straight-line distance to the horizon, and the distance along the surface to it. No atmospheric refraction.
- **geodetic_to_body_fixed** — Body-fixed Cartesian position [x, y, z] of a point given by geodetic latitude, longitude and height above an oblate ellipsoid. x points to latitude 0, longitude 0; z to the north pole. On Earth, use body "wgs84" for GPS coordinates.
- **body_fixed_to_geodetic** — Geodetic latitude, longitude and height above an oblate ellipsoid, from a body-fixed Cartesian position [x, y, z]. The inverse of geodetic_to_body_fixed. On Earth, use body "wgs84" for GPS coordinates.
- **project_point** — Map coordinates x (east) and y (north), in metres on a sphere, of a latitude and longitude in one of seven projections. equirectangular: plain latitude–longitude grid, as most planetary maps use. mercator: keeps angles, for navigation and web maps; no poles. sinusoidal and mollweide: keep areas, whole-world maps. lambert_azimuthal_equal_area: keeps areas around a centre point. stereographic: keeps angles around a centre point, for polar maps. orthographic: the globe as seen from far away; only the near hemisphere.
- **satellite_position** — Where a satellite is at a moment: the point on the ground below it, its height, its position and velocity in the TEME frame, and whether it is in Earth’s shadow. Propagates the elements with SGP4. Accurate to about a kilometre near the elements’ epoch, growing by a few kilometres a day: elements_age_d says how old they are.
- **look_angles** — Where to point an antenna or a camera at a satellite from the ground at a moment: azimuth clockwise from north, elevation above the horizon, range, and range rate (negative while it approaches). Give frequency_hz for the Doppler shift of its signal. The elevation is geometric, without refraction.
- **satellite_passes** — When a satellite passes over an observer between two times: rise, highest point and set, with azimuths, and whether each pass can be seen with the eye (the satellite sunlit while the Sun is below -6° for the observer). Searches at most 14 days. Only whole passes are returned.
- **probe_position** — Where a deep-space probe is at a moment, from the bundled JPL Horizons ephemerides (1 November 2026 to 31 December 2027): its distance from the Sun, the light time, and its position and velocity from the Sun’s centre in the ICRF. Outside that span, fetch an ephemeris from JPL Horizons with horizons_id.
- **lagrange_points** — The five Lagrange points of two bodies circling each other, such as Sun-Earth (JWST at L2) or Sun-Jupiter (the Trojans at L4 and L5): positions in the frame turning with the bodies, from their barycentre, x from the larger body toward the smaller. Also whether L4 and L5 are stable, and the smaller body’s Hill sphere. Give each body as an id from find_body or as its mu.
- **find_body** — Look up celestial bodies by name or id (case-insensitive substring) across the bundled datasets. Each body has a stable `id` and names the body, system or galaxy it is bound to in `parent`; `orbit` holds its elements around that parent. Values carry their own units ({ value, unit }); `orbit.a` is usually in au, `orbit.period` in days (always positive; `orbit.retrograde: true` marks a retrograde orbit), `radius` in km, `orbit.angle` in radians at J2000. Interstellar objects have open orbits instead: `orbit.e` above 1, a negative `orbit.a`, no `orbit.period`, the perihelion time in `orbit.periapsisTime` and the incoming speed in km/s in `orbit.excessSpeed`. The Sun, planets and larger moons carry `mu` (G·M in m³/s²), ready for the orbit tools; stars also carry `mass` in solar masses.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mcp": {
    "command": "npx",
    "args": ["-y","@interstellar-tools/mcp"]
  }
}
```

## Documentation

## What @interstellar-tools/mcp does

@interstellar-tools/mcp makes selected functionality from the interstellar-tools TypeScript monorepo available to MCP-compatible AI assistants. Its focus is orbital mechanics and related space-software calculations, backed by equation utilities and celestial body data.

The server is useful when an assistant needs to calculate or explain common orbital quantities with explicit units rather than produce an unsupported estimate. Typical users include developers building simulators, visualizations, mission dashboards, educational examples, and other Node or web applications involving spaceflight concepts.

## How it works

The package runs as an MCP server and presents the toolkit’s equations and body datasets as callable tools. An MCP client starts the package as a subprocess, allowing an assistant to request calculations during a conversation or workflow.

The underlying toolkit uses SI units. Tool field names spell out their units, which helps distinguish values such as metres, metres per second, and cubic metres per second squared. The exposed equation set covers established orbital-mechanics operations including gravitational parameter calculations, vis-viva speed, Kepler’s third law, escape and circular velocity, specific orbital energy, specific angular momentum, and periapsis or apoapsis radii.

## Setup and configuration

Install and launch the server with an MCP client that can run npm packages through `npx`:

```shell
claude mcp add interstellar-tools -- npx -y @interstellar-tools/mcp
```

The project targets Node.js 22.9 or later. The same MCP package can be configured for clients such as Claude, ChatGPT, Mistral Le Chat, Gemini, GitHub Copilot, Cursor, and JetBrains using each client’s MCP setup flow.

No environment variables are required by the documented launch command. The package is distributed through npm under the `@interstellar-tools/mcp` name.

## Tools and capabilities

The server exposes a curated subset of the broader interstellar-tools packages rather than every monorepo feature. Its supported scope includes:

- Orbital mechanics and dynamics equations.
- Physical and astronomical body datasets.
- Unit-explicit inputs and outputs.
- Calculations involving gravity, orbital speed, orbital energy, angular momentum, and apsides.
- MCP access for AI-assisted explanations, calculations, and coding workflows.

The broader project also contains packages for time utilities, mapping, tracking, shared types, and constants, but the MCP package is described specifically in terms of selected equations and body datasets.

## Limitations and notes

Equation tests use internal reference values, but the project has not been systematically cross-validated against operational flight software or high-fidelity ephemerides. Treat results as suitable for learning, prototyping, and general software tooling rather than mission-critical or flight-certified applications.

The server is not presented as a replacement for high-fidelity astrodynamics systems such as tools that model full gravity fields, Earth orientation, precise ephemerides, or complete planetary N-body dynamics. Its scope is a curated set of reusable orbital calculations and datasets.

_Full upstream README: https://allmcps.com/mcp/interstellar-tools-mcp/readme_

