Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Astrodynamics MCP server: TLE/SGP4, Lambert, access windows, porkchop, B-plane targeting.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"astrodynamics": {
"command": "uvx",
"args": [
"astrodynamics-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add astrodynamics -- uvx astrodynamics-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"astrodynamics": {
"command": "uvx",
"args": [
"astrodynamics-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"astrodynamics": {
"type": "stdio",
"command": "uvx",
"args": [
"astrodynamics-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 astro-tools 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.4.0)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有:Spec Driven Development, Remote Desktop Commander, NexusWindows
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Windows computer use in the background: desktop apps driven without your mouse or keyboard.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
A Model Context Protocol server that gives any MCP-capable LLM client (Claude Code, Cursor, ChatGPT desktop, custom agents) authoritative astrodynamics tools: TLE/SGP4 propagation, Lambert solving, ground-station access, time-scale and coordinate-frame conversions, porkchop scans, B-plane targeting, satellite metadata, and — with optional extras — full NASA GMAT mission execution ([gmat]), NASA SPICE / NAIF kernel queries ([spice]), and trajectory visualisation ([viz]).
LLMs reason well about astrodynamics concepts but cannot do the numerical work — they cannot propagate orbits, solve Lambert problems, or query SPICE ephemerides. astrodynamics-mcp lets you plug authoritative tools into any MCP-capable client so the LLM calls vetted upstream libraries instead of fabricating numbers. Every result carries explicit units; every tool description tunes against an Inspect AI eval suite that measures whether the LLM picks the right tool and binds the right arguments.
| Tool | What it does | Backed by |
|---|---|---|
tle_lookup | Fetch current TLEs by NORAD ID, name, or group — from CelesTrak (default) or Space-Track. | CelesTrak gp.php API · Space-Track † |
sgp4_propagate | Propagate TLEs across UTC ISO 8601 epochs in TEME / ICRF / GCRS / ITRS / CIRS. | sgp4 |
lambert_solve | Solve Lambert's problem; multi-rev solutions enumerated; two-impulse Δv on demand. | lamberthub |
access_windows | Ground-station / observer access intervals over a window, with AOS / LOS / peak elevation. | skyfield |
time_convert | UTC / TAI / TT / TDB / UT1 / GPS / TCB / TCG conversions across ISO / JD / MJD / J2000-seconds / Unix. | astropy.time |
frame_transform | State-vector transforms across ICRF / ITRS / GCRS / TEME / CIRS / TIRS / IAU body-fixed frames. | astropy.coordinates |
porkchop | (depart × arrive) Δv / C3 grid for interplanetary transfers, ASCII contour, summary or full output. | lamberthub + JPL Horizons |
bplane_target | B-plane element calculation and impulsive targeting for hyperbolic flybys. | in-house, JPL Horizons fed |
satellite_metadata | Physical & provenance metadata (mass, dimensions, COSPAR ID, launch, operator, decay status) for a NORAD ID. | ESA DISCOSweb † |
† Credentialed source. Pass credentials as environment variables for the stdio transport, or in the session-init _meta block for HTTP — see Credentials. A tool called without its credential returns a typed CredentialRequiredError, never a silent failure.
[gmat] extra)Install the [gmat] extra and have a local NASA GMAT install, and five more tools register for driving real GMAT missions (they stay hidden otherwise):
| Tool | What it does | Backed by |
|---|---|---|
gmat_run_mission | Run a complete GMAT mission; returns a parsed summary, report data, and pointers to large outputs. | gmat-run |
gmat_sweep | Parameter sweeps and Monte Carlo (grid / samples / Monte Carlo / Latin hypercube) over a mission. | gmat-sweep |
gmat_execute_script | Escape hatch — run raw GMAT script text and return its reports verbatim; engine errors come back as data. | gmat-run |
gmat_validate_script | Parse-validate a script without running it; returns errors, warnings, and the resource/command structure. | gmat-run |
gmat_read_run_artefact | Read the raw text of a file produced by a prior run (ephemerides, reports too large to inline). | run registry |
[spice] extra)Install the [spice] extra and seven more tools register, backed by NASA NAIF's CSPICE through spiceypy (they stay hidden otherwise). They furnish kernels into a process-global pool and query whatever the pool holds:
| Tool | What it does | Backed by |
|---|---|---|
spice_load_kernel | Furnish a kernel into the pool from a local path or a NAIF https URL (allowlisted, cached); a meta-kernel furnishes all it lists. | spiceypy · NAIF |
spice_list_kernels | List the kernels currently furnished in the pool, optionally filtered by category. | spiceypy |
spice_unload_kernel | Drop a furnished kernel by the name spice_load_kernel returned. | spiceypy |
spice_state | Position / velocity of a target relative to an observer at one or more epochs, from furnished SPK kernels. | spiceypy (SPK) |
spice_frame_transform | Rotate a vector between kernel-defined frames — in particular non-Earth body-fixed frames — or return the rotation matrix. | spiceypy (FK / PCK) |
spice_body_parameters | Read a body's radii, GM, and pole / prime-meridian orientation constants from furnished PCK kernels. | spiceypy (PCK) |
spice_time_convert | Convert between the kernel-defined time systems ET / UTC / SCLK using furnished LSK / SCLK kernels. | spiceypy (LSK / SCLK) |
The kernel model, the NAIF furnish-from-URL allowlist, and the process-global pool's trust boundary are covered on the SPICE integration page.
[viz] extra)Install the [viz] extra and four more tools register, backed by matplotlib (static PNG plots) and the gmat-czml sibling (CZML export) — they stay hidden otherwise. Each returns its picture as an attachment *alongside* a numeric summary, so a text-only client still gets the answer:
| Tool | What it does | Backed by |
|---|---|---|
plot_ground_track | Render a satellite's sub-satellite ground track as a PNG over a lon/lat graticule, with the latitude / longitude extent inline. | matplotlib |
plot_trajectory | Render an orbit or transfer arc as a 2D or 3D PNG about a central body, with arc length and apsides inline. | matplotlib |
plot_porkchop | Render a porkchop C3 contour as a PNG from a full porkchop grid result — no recompute — with the best cell marked. | matplotlib |
czml_trajectory | Export a trajectory as a CZML document for a Cesium 3D client, returned as an embedded resource. | gmat-czml |
The attachment model — additive PNG ImageContent / CZML EmbeddedResource beside the structured summary — and which clients render each kind are covered on the Visualisation page.
Full input / output JSON schemas live on the Tool reference page of the docs site.
Install:
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)
Add to your Claude Code MCP settings:
{
"mcpServers": { "astrodynamics-mcp": { "command": "astrodynamics-mcp", "args": ["stdio"] } } }
Restart Claude Code. In a chat:
You: Compute the Hohmann Δv from a 250 km circular LEO to GEO.
*(The model calls
lambert_solvewith the Hohmann geometry and
answers ≈ 3.91 km/s, citing the tool output — not the LLM's own
weights.)*
~/.cursor/mcp.json (or workspace-level .cursor/mcp.json):
{
"mcpServers": { "astrodynamics-mcp": { "command": "astrodynamics-mcp", "args": ["stdio"] } } }
Restart Cursor. The tools appear under the astrodynamics server group.
See Pick a client in the docs for ChatGPT desktop, a raw Python MCP smoke client, and the Streamable HTTP transport for remote agents.
| Client | Transport | Verified |
|---|---|---|
| Claude Code | stdio | ✅ Yes |
| Cursor | stdio | ✅ Yes |
| ChatGPT desktop | stdio | ⏳ Expected to work |
Raw Python (mcp SDK) | stdio | ✅ Yes |
| Remote agents | Streamable HTTP | ⏳ Expected to work |
| LangGraph / AutoGen / CrewAI | any | ⏳ Expected to work |
For direct (non-MCP) Python use of the same surfaces, reach for the upstream libraries: sgp4, lamberthub, skyfield, astropy, interplanetary-porkchop, spiceypy.
The official Anthropic modelcontextprotocol/python-sdk (MIT). The bundled FastMCP server class is the server primitive; stdio + Streamable HTTP transports are first-class.
astrodynamics-mcp runs entirely on your own machine and collects nothing — no telemetry, no analytics, no accounts. The only data that leaves your machine is the query parameters a tool sends to the data source it wraps (CelesTrak / JPL Horizons / IERS with no auth, and — only if you configure their credentials — Space-Track and ESA DISCOSweb). Credentials are read from local environment variables or the session _meta block and are
只显示了开头部分;其余内容请在仓库中阅读