Offline observational astronomy: positions, rise/set, moon phases, eclipses, and seasons.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Astronomy MCP Server.
astronomy_get_sky_positionApparent position of one body or named star for an observer and instant β equatorial (RA/Dec), horizontal (alt/az), ecliptic, plus distance, magnitude, angular diameter, phase, and constellation.
astronomy_get_rise_setRise, set, and culmination times for a body at a location, with maximum altitude at transit. For the Sun, also the three twilight pairs (civil/nautical/astronomical).
astronomy_get_moon_phaseMoon phase for an instant: illuminated fraction, phase name, synodic age, phase angle, and the next four quarter phases with timestamps.
astronomy_find_eventsForward search for the next occurrences of one sky-event class: eclipses, equinoxes, solstices, moon quarters, oppositions, conjunctions, greatest elongations, and apsides.
astronomy_list_visibleThe one-call "what's up right now" answer: every naked-eye body (and optional bright stars) above the horizon, ranked, annotated, and gated by the Sun's altitude into daylight/twilight/dark.
astronomy_get_ephemeris*(gated extension)* Time-series ephemeris for a small body (asteroid/comet) or spacecraft via JPL Horizons β covers what the in-process major-body set cannot. Off by default.
What's in the sky, computed offline β planet and moon positions, rise/set, phases, eclipses, and seasons for any place and time via MCP. STDIO or Streamable HTTP.
Public Hosted Server: https://astronomy.caseyjhand.com/mcp
Seven tools β five form the keyless, offline, deterministic core (always registered); two are network-backed extensions that register only when their config gate is enabled.
| Tool | Description |
|---|---|
astronomy_get_sky_position | Apparent position of one body or named star for an observer and instant β equatorial (RA/Dec), horizontal (alt/az), ecliptic, plus distance, magnitude, angular diameter, phase, and constellation. |
astronomy_get_rise_set | Rise, set, and culmination times for a body at a location, with maximum altitude at transit. For the Sun, also the three twilight pairs (civil/nautical/astronomical). |
astronomy_get_moon_phase | Moon phase for an instant: illuminated fraction, phase name, synodic age, phase angle, and the next four quarter phases with timestamps. |
astronomy_find_events | Forward search for the next occurrences of one sky-event class: eclipses, equinoxes, solstices, moon quarters, oppositions, conjunctions, greatest elongations, and apsides. |
astronomy_list_visible | The one-call "what's up right now" answer: every naked-eye body (and optional bright stars) above the horizon, ranked, annotated, and gated by the Sun's altitude into daylight/twilight/dark. |
astronomy_get_ephemeris | (gated extension) Time-series ephemeris for a small body (asteroid/comet) or spacecraft via JPL Horizons β covers what the in-process major-body set cannot. Off by default. |
astronomy_get_satellite_passes | (gated extension) Visible passes of a satellite (by NORAD catalog number, or by a name resolved against the catalog) over an observer, from a CelesTrak GP element set propagated with SGP4 in-process. Off by default. |
This server computes geometry β where a body is, when an event happens β not astrophysics. The core wraps astronomy-engine (sub-arcminute accuracy, β1900β2100), so given the same (body, time, observer) every core tool returns identical output with no network, no rate limit, and no API key. It does not geocode: resolve a place name to latitude/longitude upstream (e.g. via an OpenStreetMap server) and pass an IANA timezone to receive observer-local times alongside UTC.
astronomy_get_sky_positionApparent topocentric position of one solar-system body or a named bright star.
star (e.g. "Sirius", "Polaris") instead of body to target a catalog star; star takes precedence over bodynull magnitude / angular diameter / phase fields where the engine cannot compute them β never fabricatedastronomy_get_rise_setRise, set, and culmination times, with twilight for the Sun.
start and returns the next count cycles (default 1, max 31)body: "sun", bundles the three twilight pairs (civil β6Β°, nautical β12Β°, astronomical β18Β°) so a single call answers "when does the sun set and when is it truly dark"null rise/set fields with an explanatory note rather than an error β the fact is the answertimezone is suppliedastronomy_find_eventsForward search across nine event classes under one event enum.
solar_eclipse, lunar_eclipse, equinox, solstice, moon_quarter, opposition, conjunction, max_elongation, perigee_apogeelatitude/longitude) and report local visibility and contact times; lunar eclipses are geocentric and need no locationopposition, conjunction, max_elongation, perigee_apogee) require a body, gated to the bodies each event exists for: opposition to the superior planets (mars through pluto), conjunction to any planet, max_elongation to mercury and venus, perigee_apogee to the moon, earth, or a planetperigee_apogee on earth returns its perihelion and aphelion; conjunction on mercury or venus returns both the inferior and superior passes, labelled by conjunction_kindcount occurrences (default 1, max 20)astronomy_list_visibleThe workflow flagship β one call returns a ranked, condition-gated "what's up" list.
include_stars, the bundled bright stars), keeps those above the horizon, and ranks them brightest-and-highest firstvisibility_note to each body, computed from real magnitude and altitude β no synthetic scoredaylight / civil_twilight / nautical_twilight / astronomical_twilight / dark) and the Sun's altitude alongside the listtime is a single evaluation instant, not a window β for "tonight" pass a time after astronomical dusk (use astronomy_get_rise_set on the Sun to find it)min_altitude to skip objects grazing the horizonastronomy_get_ephemeris (gated extension)Time-series ephemeris for a small body or spacecraft via the keyless JPL Horizons API. Registered only when ASTRONOMY_ENABLE_HORIZONS is set.
"433;" (Eros), "1;" (Ceres)"DES=1P;CAP" (Halley), "DES=2P;CAP" (Encke)"-48" (Hubble)"433 Eros" or "1P/Halley" returns no match or an ambiguous record list and is rejected. Look up designations at ssd.jpl.nasa.gov/tools/sbdb_lookup.html.start/stop are ISO 8601 UTC and stop must be after start; step is a positive count plus a unit of m, h, d, mo, or y ("10m", "1h", "1d")latitude/longitude yields topocentric coordinates and adds alt/az β pass both or neither; one alone is rejected rather than silently downgraded to a geocentric query. Horizons is asked for refracted elevation on a topocentric request, so altitude_degrees carries the same refraction correction the offline core tools reportstart to resume from β one step past it, because Horizons includes the start instant in its output, so resuming at the last row returned repeats it. Re-call with that start, or split the range into smaller adjacent spans β keep the same step and repeat until truncated is false, which concatenates back into the original series with no repeated sample. Widening the step discards samples the original range asked forastronomy_get_satellite_passes (gated extension)Visible passes of a satellite over an observer. Registered only when ASTRONOMY_ENABLE_SATELLITES is set.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/astronomy-mcp-server)<a href="https://allmcps.com/mcp/astronomy-mcp-server"><img src="https://allmcps.com/api/badge/astronomy-mcp-server?style=directory" alt="Astronomy MCP Server on AllMCPs" /></a>