mcpField
H
HelioSPICE

HelioSPICE

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

关于 HelioSPICE

HelioSPICE 基于 SpiceyPy 计算日球物理任务的航天器星历、位置、速度和坐标变换。它自动下载、缓存并加载 NAIF 内核,也包含供 LLM 调用工具的 MCP 服务。

主要功能

  1. 01计算航天器位置和轨迹
  2. 02返回位置与速度状态
  3. 03转换坐标系
  4. 04下载、缓存并加载 NAIF 内核
  5. 05列出支持的任务和坐标系

适用场景

  1. 01查询指定时刻的航天器位置
  2. 02生成航天器轨迹时间序列
  3. 03转换不同坐标系中的向量
  4. 04管理缓存的 SPICE 内核

MCP 相关

MCP 服务向 MCP 客户端提供星历、距离计算、坐标变换、任务与坐标系列表以及内核管理工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"huangzesen-heliospice": {
"command": "uvx",
"args": [
"heliospice"
]
}
}
}
启动命令uvx heliospice

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

安装包
pypiheliospice0.5.0

工具

还没有获取到工具列表

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

详细介绍

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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。