关于 astrodynamics-mcp
astrodynamics-mcp 为 MCP 客户端提供轨道力学计算工具,面向卫星、轨道与任务分析工作。它封装上游数值库,返回带明确单位的结果,并可通过可选组件扩展至 GMAT、SPICE 查询和轨迹可视化。
主要功能
- 01TLE 查询与 SGP4 传播
- 02Lambert 转移与 porkchop 扫描
- 03地面站访问窗口计算
- 04时间尺度与坐标系转换
- 05可选 GMAT、SPICE 和可视化工具
适用场景
- 01传播卫星轨道并查询卫星资料
- 02计算地面站可见窗口
- 03分析行星际转移与飞掠目标
MCP 相关
该 MCP 服务向客户端暴露轨道传播、转移计算、坐标转换等工具;安装可选组件后还可提供 GMAT、SPICE 与可视化工具。支持 stdio 和 Streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
astrodynamics-mcp
一个 Model Context Protocol 服务,为任何支持 MCP 的大模型客户端(Claude Code、Cursor、ChatGPT desktop、自定义 Agent)提供权威的天体动力学工具:TLE/SGP4 传播、Lambert 求解、地面站访问、时间尺度与坐标系转换、猪排图扫描、B 平面瞄准、卫星元数据,以及通过可选扩展支持的完整 NASA GMAT 任务执行([gmat])、NASA SPICE / NAIF 内核查询([spice])和轨迹可视化([viz])。
为什么选择它
大模型擅长推理天体动力学概念,但无法完成数值计算——它们无法传播轨道、求解 Lambert 问题,也无法查询 SPICE 星历。astrodynamics-mcp 可将权威工具接入任何支持 MCP 的客户端,让大模型调用经过验证的上游库,而不是编造数字。每个结果都带有明确的单位;每项工具描述都根据 Inspect AI eval 套件进行调优,该套件用于衡量大模型能否选对工具并正确绑定参数。
工具
| 工具 | 功能 | 基于 |
|---|---|---|
tle_lookup | 按 NORAD ID、名称或群组获取最新 TLE——来源为 CelesTrak(默认)或 Space-Track。 | CelesTrak gp.php API · Space-Track † |
sgp4_propagate | 在 TEME / ICRF / GCRS / ITRS / CIRS 中,跨 UTC ISO 8601 历元传播 TLE。 | sgp4 |
lambert_solve | 求解 Lambert 问题;枚举多圈解;按需计算双脉冲 Δv。 | lamberthub |
access_windows | 计算时间窗口内地面站 / 观测者的访问区间,并提供 AOS / LOS / 最大仰角。 | skyfield |
time_convert | 在 ISO / JD / MJD / J2000-seconds / Unix 格式之间转换 UTC / TAI / TT / TDB / UT1 / GPS / TCB / TCG。 | astropy.time |
frame_transform | 在 ICRF / ITRS / GCRS / TEME / CIRS / TIRS / IAU 固定于天体的坐标系之间转换状态向量。 | astropy.coordinates |
porkchop | 计算行星际转移的(出发 × 抵达)Δv / C3 网格,并提供 ASCII 等高线图、摘要或完整输出。 | lamberthub + JPL Horizons |
bplane_target | 计算双曲线飞掠的 B 平面元素并进行脉冲瞄准。 | 内部实现,数据来自 JPL Horizons |
satellite_metadata | 查询 NORAD ID 对应的物理属性和来源元数据(质量、尺寸、COSPAR ID、发射信息、运营方、衰减状态)。 | ESA DISCOSweb † |
† 需要凭据的来源。对于 stdio 传输,请将凭据作为环境变量传入;对于 HTTP,请在会话初始化的 _meta 块中传入——详见凭据。
调用工具时如果缺少所需凭据,将返回带类型的 CredentialRequiredError,不会静默失败。
GMAT 工具(可选的 [gmat] extra)
安装 [gmat] extra,并在本地安装 NASA GMAT,即可注册另外 5 个用于驱动真实 GMAT 任务的工具(否则这些工具会保持隐藏状态):
| 工具 | 功能说明 | 支持方 |
|---|---|---|
gmat_run_mission | 运行完整的 GMAT 任务;返回解析后的摘要、报告数据,以及大型输出的指针。 | gmat-run |
gmat_sweep | 对任务进行参数扫描和蒙特卡洛分析(网格/样本/蒙特卡洛/拉丁超立方)。 | gmat-sweep |
gmat_execute_script | 应急选项——运行原始 GMAT 脚本文本,并原样返回其报告;引擎错误会作为数据返回。 | gmat-run |
gmat_validate_script | 解析并验证脚本,但不运行;返回错误、警告以及资源/命令结构。 | gmat-run |
gmat_read_run_artefact | 读取先前运行所生成文件的原始文本(例如星历,或过大而无法内联的报告)。 | 运行注册表 |
SPICE 工具(可选的 [spice] extra)
安装 [spice] extra,即可注册另外 7 个工具,这些工具由 NASA NAIF 的 CSPICE 提供支持,并通过 spiceypy 使用(否则这些工具会保持隐藏状态)。它们会将内核载入进程全局池,并查询池中的内容:
| 工具 | 功能说明 | 支持方 |
|---|---|---|
spice_load_kernel | 从本地路径或 NAIF https URL(已列入允许列表并缓存)将内核载入池中;元内核会载入其中列出的所有内核。 | spiceypy · NAIF |
spice_list_kernels | 列出当前载入池中的内核,可按类别筛选。 | spiceypy |
spice_unload_kernel | 根据 spice_load_kernel 返回的 name 卸载已载入的内核。 | spiceypy |
spice_state | 根据已载入的 SPK 内核,计算一个或多个历元处目标相对于观测者的位置/速度。 | spiceypy (SPK) |
spice_frame_transform | 在内核定义的参考系之间旋转向量,尤其是非地球天体固连系;也可返回旋转矩阵。 | spiceypy (FK / PCK) |
spice_body_parameters | 从已载入的 PCK 内核中读取天体的半径、GM 以及极轴/本初子午线方向常数。 | spiceypy (PCK) |
spice_time_convert | 使用已载入的 LSK / SCLK 内核,在内核定义的时间系统 ET / UTC / SCLK 之间转换。 | spiceypy (LSK / SCLK) |
SPICE 集成页面介绍了内核模型、NAIF URL 载入允许列表,以及进程全局池的信任边界。
可视化工具(可选的 [viz] 扩展)
安装 [viz] 扩展后,还会注册另外四个工具,分别由
matplotlib(静态 PNG 绘图)和
同级项目 gmat-czml(CZML 导出)提供支持
——否则这些工具会保持隐藏。每个工具都会将图片作为附件返回,
同时提供数值摘要,因此纯文本客户端也能获取答案:
| 工具 | 功能 | 支持组件 |
|---|---|---|
plot_ground_track | 将卫星的星下点地面轨迹绘制为 PNG,叠加经纬网格,并在行内显示纬度 / 经度范围。 | matplotlib |
plot_trajectory | 将轨道或转移弧绘制为围绕中心天体的 2D 或 3D PNG,并在行内显示弧长和拱点。 | matplotlib |
plot_porkchop | 根据完整的 porkchop 网格结果绘制 porkchop C3 等值线 PNG,无需重新计算,并标出最佳网格单元。 | matplotlib |
czml_trajectory | 将轨迹导出为供 Cesium 3D 客户端使用的 CZML 文档,并作为嵌入资源返回。 | gmat-czml |
附件模型——在结构化摘要旁附加 PNG ImageContent / CZML EmbeddedResource——以及
各类客户端如何呈现这些内容,详见
可视化
页面。
完整的输入 / 输出 JSON 架构请参阅文档网站上的 工具参考页面。
快速开始
安装:
uv tool install astrodynamics-mcp # or: pipx install astrodynamics-mcp
uv tool install "astrodynamics-mcp[gmat]" # adds the GMAT mission tools (needs a local GMAT install)
uv tool install "astrodynamics-mcp[spice]" # adds the SPICE tools (pulls spiceypy / bundled CSPICE)
uv tool install "astrodynamics-mcp[viz]" # adds the visualisation tools (pulls matplotlib / gmat-czml)
Claude Code
将以下内容添加到 Claude Code MCP 设置中:
{
"mcpServers": {
"astrodynamics-mcp": {
"command": "astrodynamics-mcp",
"args": ["stdio"]
}
}
}
重启 Claude Code。在聊天中:
你: 计算从 250 km 圆形 LEO 到 GEO 的霍曼 Δv。
(模型会根据霍曼转移几何调用
lambert_solve, 并引用工具输出回答 ≈ 3.91 km/s——而不是依赖大模型自身的 权重。)
Cursor
~/.cursor/mcp.json(或工作区级别的 .cursor/mcp.json):
{
"mcpServers": {
"astrodynamics-mcp": {
"command": "astrodynamics-mcp",
"args": ["stdio"]
}
}
}
重启 Cursor。工具会显示在 astrodynamics 服务组下。
请参阅文档中的 选择客户端,了解 ChatGPT 桌面版、原始 Python MCP 测试客户端,以及面向远程 Agent 的 Streamable HTTP 传输。
支持的客户端
| 客户端 | 传输方式 | 已验证 |
|---|---|---|
| Claude Code | stdio | ✅ 是 |
| Cursor | stdio | ✅ 是 |
| ChatGPT 桌面版 | stdio | ⏳ 预计可用 |
原始 Python(mcp SDK) | stdio | ✅ 是 |
| 远程 Agent | Streamable HTTP | ⏳ 预计可用 |
| LangGraph / AutoGen / CrewAI | 任意 | ⏳ 预计可用 |
不是什么
- 不是通用的天体动力学框架。 封装经过验证的上游库;不重新实现轨道传播器、积分器或坐标系。
- 不是 Agent 框架。 提供 MCP 工具;LangGraph、AutoGen、CrewAI 和大模型客户端本身会使用这些工具。
- 不是机器学习/推理服务。 需要自有机器学习模型的工具(机动检测、神经网络轨道传播器)应放在独立的 MCP 服务中,以模块化方式隔离依赖。
- 不是 SaaS。 在本地或你自己的基础设施上运行。不提供托管式多租户部署。
- 不是 Web UI。 通过 MCP 客户端使用工具;没有浏览器前端、桌面应用或笔记本小组件。
如需直接通过 Python(非 MCP)使用相同功能,请使用上游库:
sgp4、
lamberthub、
skyfield、
astropy、
interplanetary-porkchop、
spiceypy。
构建于
官方 Anthropic
modelcontextprotocol/python-sdk
(MIT)。内置的 FastMCP 服务类是服务端原语;
stdio 和 Streamable HTTP 传输均为一等支持。
文档与链接
- 文档站点: astro-tools.github.io/astrodynamics-mcp — 入门指南、各客户端的配置、工具参考、示例、可视化、数据来源、评测套件、常见问题。
- 问题跟踪: astro-tools/astrodynamics-mcp/issues
- 讨论区: orgs/astro-tools/discussions — 使用帮助和开放式问题。
- 评测套件: eval/README.md — 工具描述质量的回归规范。
隐私
astrodynamics-mcp 完全在你的计算机上运行,不收集任何信息——没有遥测、分析数据或账户。唯一会离开你计算机的数据,是工具发送给其封装的数据源的查询参数(CelesTrak / JPL Horizons / IERS,无需身份验证;只有在你配置凭据后,才会发送给 Space-Track 和 ESA DISCOSweb)。凭据从本地环境变量或会话的 _meta 块中读取,并且只通过 HTTPS 发送给对应服务。完整说明请参阅隐私页面。
许可证
MIT — 请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。