mcpField
X
XHelio-SPICE

XHelio-SPICE

本地服务
github.com/huangzesen科研与教育020 周前更新

关于 XHelio-SPICE

XHelio-SPICE 是面向日球物理研究的航天器星历工具,封装 SpiceyPy 并自动下载、缓存和加载 NAIF 内核。它提供位置、轨迹、状态及坐标变换查询,并可通过 MCP 供 LLM 使用。

主要功能

  1. 01自动下载并缓存 SPICE 内核
  2. 02查询航天器位置、轨迹和状态
  3. 03转换坐标系与向量
  4. 04列出任务、别名及坐标系
  5. 05管理内核加载与缓存

适用场景

  1. 01查询航天器相对太阳的位置
  2. 02获取一段时间的航天器轨迹
  3. 03转换不同坐标系中的向量

MCP 相关

内置 MCP 服务,向 LLM 客户端提供星历查询、距离计算、坐标转换、任务和坐标系列表及内核管理工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"huangzesen-xhelio-spice": {
"command": "uvx",
"args": [
"xhelio-spice"
],
"env": {
"XHELIO_SPICE_KERNEL_DIR": "<XHELIO_SPICE_KERNEL_DIR>"
}
}
}
}
启动命令uvx xhelio-spice
需要配置的环境变量
XHELIO_SPICE_KERNEL_DIROverride the default kernel cache directory (~/.xhelio_spice/kernels/)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypixhelio-spice0.5.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

xhelio-spice

轻松获取航天器星历——为日球物理任务自动管理 SPICE 内核。

xhelio-spice 基于 SpiceyPy,实现内核的自动下载、缓存和加载。只需查询航天器位置,剩下的交给 xhelio-spice:下载合适的 NAIF 内核,按正确顺序加载,并以 Python 字典或 pandas DataFrame 的形式返回结果。

安装

pip install xhelio-spice

要使用 MCP 服务(Claude Desktop、Claude Code、Cursor 等):

pip install xhelio-spice[mcp]

快速开始

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())

首次使用时会自动从 NAIF 下载内核,并缓存到 ~/.xhelio_spice/kernels/。

支持的任务

提供 SPICE 内核(自动下载)
  • PSP(Parker Solar Probe)——2018-2030
  • Solar Orbiter(SOLO)——2020-2030
  • STEREO-A——2017-2031
  • Juno——2011 年至今(定期更新)
  • Voyager 1/2——1981-2100 / 1989-2100
  • New Horizons——2019-2030
仅提供 NAIF ID(暂不支持自动下载)
  • ACE、Wind、DSCOVR、MMS(1-4)——没有公开的 SPK 内核
  • Cassini、MAVEN——需要加载多个片段内核(计划中)
  • Galileo、Pioneer 10/11、Ulysses、MESSENGER、STEREO-B
天体

Sun、Earth、Moon、Mercury、Venus、Mars、Jupiter、Saturn、Uranus、Neptune、Pluto

API 参考

位置与轨迹
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,
)
坐标变换
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())
任务注册表
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()
内核管理
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 memory

配置

方法说明
XHELIO_SPICE_KERNEL_DIR env var覆盖内核缓存目录
KernelManager(kernel_dir=...)按实例覆盖
默认值~/.xhelio_spice/kernels/

MCP 服务

xhelio-spice 内置 MCP 服务,可供大模型调用工具:

# Run directly
xhelio-spice-mcp

# Or via Python
python -m xhelio_spice.server
Claude Desktop 配置

将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "xhelio-spice": {
      "command": "xhelio-spice-mcp"
    }
  }
}
可用的 MCP 工具
工具说明
get_ephemeris位置/速度——单个时间点(内联)或时间序列(CSV)
compute_distance计算两个天体之间的距离
transform_coordinates坐标系变换
list_spice_missions支持的任务
list_coordinate_frames可用坐标系及其说明
manage_kernels内核缓存管理
MCP 冒烟测试

如需进行不请求下载内核且适用于 CI 的 MCP 检查,请运行:

uv run --extra mcp python scripts/smoke_mcp_list_tools.py --json

此冒烟测试会使用隔离的临时内核缓存启动 stdio 服务,运行 MCP initialize + list_tools,并验证公布的工具名称。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。