io.github.huangzesen/xhelio-spice
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.huangzesen/xhelio-spiceWhere is Parker Solar Probe right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
xhelio-spice
Spacecraft ephemeris made easy — auto-managed SPICE kernels for heliophysics missions.
xhelio-spice wraps SpiceyPy with automatic kernel download, caching, and loading. Ask for a spacecraft position and xhelio-spice handles the rest: downloading the right NAIF kernels, loading them in the correct order, and returning results as Python dicts or pandas DataFrames.
Installation
pip install xhelio-spiceFor MCP server support (Claude Desktop, Claude Code, Cursor, etc.):
pip install xhelio-spice[mcp]Related MCP server: spedas-mcp
Quick Start
from xhelio_spice import get_position, get_trajectory
# Where is Parker Solar Probe right now?
pos = get_position("PSP", observer="SUN", time="2024-01-15", frame="ECLIPJ2000")
print(f"PSP is {pos['r_au']:.3f} AU from the Sun")
# Get a month of trajectory data as a DataFrame
df = get_trajectory(
"PSP", observer="SUN",
time_start="2024-01-01", time_end="2024-01-31",
step="1h", frame="ECLIPJ2000",
)
print(df[["r_au"]].describe())Kernels are automatically downloaded from NAIF on first use and cached in ~/.xhelio_spice/kernels/.
Supported Missions
With SPICE Kernels (auto-downloaded)
PSP (Parker Solar Probe) — 2018-2030
Solar Orbiter (SOLO) — 2020-2030
STEREO-A — 2017-2031
Juno — 2011-present (updated regularly)
Voyager 1/2 — 1981-2100 / 1989-2100
New Horizons — 2019-2030
NAIF IDs Only (no auto-download yet)
ACE, Wind, DSCOVR, MMS (1-4) — no public SPK kernels exist
Cassini, MAVEN — require multi-segment kernel loading (planned)
Galileo, Pioneer 10/11, Ulysses, MESSENGER, STEREO-B
Natural Bodies
Sun, Earth, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto
API Reference
Position & Trajectory
from xhelio_spice import get_position, get_trajectory, get_state
# Single position
pos = get_position("ACE", observer="EARTH", time="2024-06-01", frame="GSE")
# Full state (position + velocity)
state = get_state("PSP", observer="SUN", time="2024-01-15", frame="ECLIPJ2000")
# Trajectory timeseries (returns pandas DataFrame)
df = get_trajectory(
"Cassini", observer="SATURN",
time_start="2010-01-01", time_end="2010-12-31",
step="6h", frame="ECLIPJ2000",
include_velocity=True,
)Coordinate Transforms
from xhelio_spice import transform_vector, list_available_frames
# J2000 to Ecliptic
v_ecl = transform_vector([1.0, 0.0, 0.0], "2024-01-15", "J2000", "ECLIPJ2000")
# RTN transform (requires spacecraft)
v_rtn = transform_vector(
[5.0, -3.0, 1.0], "2024-01-15",
from_frame="ECLIPJ2000", to_frame="RTN",
spacecraft="PSP",
)
# List all frames
print(list_available_frames())Mission Registry
from xhelio_spice import resolve_mission, list_supported_missions
# Resolve name aliases
naif_id, key = resolve_mission("Parker Solar Probe") # -> (-96, "PSP")
# List all spacecraft
missions = list_supported_missions()Kernel Management
from xhelio_spice import get_kernel_manager
km = get_kernel_manager()
km.ensure_mission_kernels("PSP") # Download + load
print(km.get_cache_info()) # Cache stats
km.unload_all() # Free memoryConfiguration
Method | Description |
| Override kernel cache directory |
| Per-instance override |
Default |
|
MCP Server
xhelio-spice includes an MCP server for LLM tool use:
# Run directly
xhelio-spice-mcp
# Or via Python
python -m xhelio_spice.serverClaude Desktop Configuration
Add to claude_desktop_config.json:
{
"mcpServers": {
"xhelio-spice": {
"command": "xhelio-spice-mcp"
}
}
}Available MCP Tools
Tool | Description |
| Position/velocity — single time (inline) or timeseries (CSV) |
| Distance between two bodies |
| Coordinate frame transform |
| Supported missions |
| Available frames with descriptions |
| Kernel cache management |
MCP smoke test
For a CI-safe MCP check that does not request kernel downloads, run:
uv run --extra mcp python scripts/smoke_mcp_list_tools.py --jsonThe smoke starts the stdio server with an isolated temporary kernel cache, runs
MCP initialize + list_tools, and verifies the advertised tool names.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Live space data for AI agents - rocket launches, ISS passes, launch news. Free, no auth.
MCP server for aerospace calculations: orbital mechanics, ephemeris, DSN operations, ...
Western natal charts, horoscopes, transits and synastry for AI agents, verified vs NASA JPL.
Spacenews MCP — wraps the Spaceflight News API v4 (free, no auth)
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides standardized access to 20+ NASA data sources including astronomy pictures, Mars rover photos, near-Earth objects, satellite imagery, space weather, and planetary data through a unified interface optimized for AI consumption.234 npmISC

spedas-mcpofficial
AlicenseBqualityBmaintenanceUnified SPEDAS-oriented MCP server for Claude Code and Codex agents, providing tools to discover and fetch heliophysics and planetary science data from CDAWeb, NASA PDS, and SPICE kernels.213MIT- AlicenseNot gradedqualityCmaintenanceConnects LLM agents to live and simulated satellite telemetry, NOAA space weather data, and space debris orbital conjunction analysis.MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to JPL Horizons data for querying ephemerides and orbital information of solar system objects.5 npmMIT