Reported issues for astrodynamics-mcp
Pod holds 20 of 75 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to astrodynamics-mcp.
Most discussed
Viz subsystem quality review: bugs, simplification, doc drift, test gaps
Goal
End-of-subsystem review pass over the v0.4 viz surface before the release cut — the analogue of the v0.2 GMAT (#95) and v0.3 SPICE (#128) reviews. Roll findings into a single triaged backlog. Priority key: P0 = correctness / resource leak, P1 = user-visible drift or LLM-facing contract issue, P2 = simplification or test polish.
Scope
Review the viz tool modules (tools/viz.py or the plot / czml modules), the attachment plumbing in the server, the viz schemas, and every
Read the thread · 2026-05-29 · closed · outside contributor · 1 comment
Tool: czml_trajectory (gmat-czml wrapper for 3D Cesium views)
Goal
Expose 3D trajectory visualisation by wrapping the gmat-czml sibling (to_czml), returning a CZML document as an MCP EmbeddedResource viewable in any Cesium client. Charter v0.4: the CZML tool is gated on gmat-czml shipping first.
Tool surface
- Name:
czml_trajectory - Inputs:
trajectory— a state series in the canonical schema (an SGP4 propagation series, a GMAT ephemeris from the[gmat]tools, or a supplied state series).- `intervals: ... | None = None
Read the thread · 2026-05-29 · closed · outside contributor · 1 comment
[viz] extra wiring + PNG/CZML attachment plumbing
Goal
Wire the [viz] optional extra and the attachment output channel the viz tools need — the cross-cutting groundwork for v0.4. The base install stays viz-free, mirroring the [gmat] / [spice] gates. No tool bodies yet.
Scope
pyproject.toml:viz = ["matplotlib>=3.8", "gmat-czml>=0.3"]under[project.optional-dependencies]; conditional tool registration (tools surface only when the extra imports).- Attachment output channel: return PNGs as MCP
ImageContentand CZML as an
Read the thread · 2026-05-29 · closed · outside contributor · 1 comment
SPICE subsystem quality review: bugs, simplification, doc drift, test gaps
Goal
End-of-subsystem review pass over the v0.3 SPICE surface before the release cut — the analogue of the v0.2 GMAT subsystem review (#95). Roll the findings into a single triaged backlog of bugs, simplification opportunities, documentation drift, and test-coverage gaps. None of these block the v0.3 contract; they are quality / hygiene work to pay down once the SPICE surface lands. Priority key: P0 = correctness / resource leak, P1 = user-visible drift or LLM-facing contract issue,
Read the thread · 2026-05-29 · closed · outside contributor · 1 comment
v0.2.0: per-parameter descriptions on every tool (Smithery +9pt, LLM ergonomics)
Goal
Add per-parameter description strings to every tool function so the Smithery quality score's Parameter descriptions row (currently 0/8, 8.89pt) goes to 8/8. Substantial work — every parameter of every tool needs a one-line description that becomes part of the JSON Schema FastMCP generates and surfaces to MCP clients. ~46 parameters across 8 tools.
This is also a real ergonomic improvement beyond Smithery: any LLM connected to the server via MCP gets the per-parameter `description
Read the thread · 2026-05-27 · closed · outside contributor · 1 comment
Submit to upstream MCP registries (Official Registry, Anthropic MCPB Directory, Cursor)
Goal
Distribute astrodynamics-mcp to the upstream MCP registries beyond Smithery (#52), so the server is discoverable through Claude Desktop's "Browse extensions" UI, the Cursor MCP picker, and the aggregators (PulseMCP, GitHub MCP Registry, etc.) that ingest from the Official MCP Registry. Maximise reach without duplicating manual submission effort.
Background
Smithery is one registry of many. As of May 2026, the ecosystem has settled into:
- One canonical upstream — `registry.m
Read the thread · 2026-05-26 · closed · outside contributor · 1 comment
porkchop: tool response is ~250 KB, blows free-tier 8000-token input cap on next model turn
Problem
The porkchop tool returns the full grid of every (departure, arrival) cell from a scan — one record per cell with departure/arrival epochs, time-of-flight, C3, v_inf, declination, and more. For the eval suite's porkchop_earth_mars_2026 prompt this serialises to ~250 KB / ~63k tokens in a single tool response. When that response is fed back to the model on the next turn, the request exceeds GH Models' Free-plan input cap (8000 tokens, see [GitHub Models rate limits](https://do
Read the thread · 2026-05-26 · closed · outside contributor · 1 comment
Eval suite: Inspect AI runner, hybrid scorer, ~30 prompts
Goal
The Inspect AI eval suite — ~30 prompts across three difficulty tiers with the hybrid trace + functional-tolerance scorer. The live tool-quality gate that catches tool-selection and arg-binding regressions which the static lint cannot.
Scope
eval/(separate top-level directory, not packaged):eval/prompts/— one YAML per prompt, structured as:prompt:— the natural-language user message.permitted_traces:— list of permitted tool-call sequences (each a
Read the thread · 2026-05-24 · closed · outside contributor · 8 comments
Most recent
Docs + README update for the v0.4 viz surface
Goal
Surface the v0.4 viz additions across the docs site and the README. After this issue a visitor can install [viz], understand the attachment model, and find the viz tools in the reference.
Scope
New / filled-in pages
docs/visualisation.md— the plot tools,czml_trajectory, the attachment model (ImageContent/EmbeddedResource, additive to ASCII), and which clients render images / CZML.
Updates to existing pages
docs/tool-reference.md— auto-regenerate so the
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
Eval suite: viz coverage + example sessions for plots and CZML
Goal
Extend the eval suite to cover the viz tools and add runnable example sessions for a static plot and a CZML export.
Scope
New prompts
- One per plot tool (
plot_ground_track,plot_trajectory,plot_porkchop) and one forczml_trajectory, at the single-tool tier. - At least one sequential prompt (e.g.
sgp4_propagate → plot_ground_track). - Goldens assert an attachment is produced and its declared type (
ImageContentvsEmbeddedResource) alongside the permitted-trac
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
Tool: static-plot helpers (plot_ground_track / plot_trajectory / plot_porkchop) as PNG
Goal
matplotlib static-plot tools returning PNG attachments, with the inline ASCII / table summary retained. Deterministic rendering per the attachment-plumbing issue (#131).
Tool surface
plot_ground_track
- Inputs: a state series or SGP4 propagation result; optional ground stations to overlay.
- Output: a sub-satellite ground-track PNG + an inline summary (revs, lat / lon extent).
plot_trajectory
- Inputs: a state series;
projection(2D / 3D); optional centra
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
v0.3.0 release cut
Goal
Cut v0.3.0 once the SPICE surface, eval, review, and docs have landed. Aggregate the CHANGELOG, bump the version, tag, ship.
Scope
Release-cut PR (single PR)
CHANGELOG.md— aggregate all v0.3 entries into one## [0.3.0] — YYYY-MM-DDsection (release-cut aggregation, not per-PR). No process-meta sections (Reviewed / Acknowledgements / Peer-review-response).pyproject.toml— bump the version; pin thespiceypyminor.uv.lock— regenerate.README.md— SPICE tool
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
Docs + README update for the v0.3 SPICE surface
Goal
Surface the v0.3 SPICE additions across the docs site and the README. After this issue a visitor can install [spice], understand the kernel model, and find the SPICE tools in the reference without grepping the CHANGELOG.
Scope
New / filled-in pages
docs/spice-integration.md— fill out the kickoff stub: the kernel model, the furnish-from-URL NAIF allowlist + cache, the concurrency / state-scope contract, the five tools, and when to pick aspice_*tool over the astropy-ba
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
Eval suite: SPICE coverage + example session (e) (SPICE / Horizons deep query)
Goal
Extend the Inspect AI eval suite to cover the SPICE tools, and add the runnable example session the charter promises (session (e): SPICE / Horizons deep query). Charter §4: the suite grows toward ~50 prompts at v0.3 with SPICE coverage.
Scope
New prompts
SPICE single-tool tier:
spice_load_kernel→spice_state(load a generic SPK + LSK, query a body state).spice_body_parametersfor a body's radii / GM.spice_time_convertUTC↔ET with an LSK loaded.- `spice_fr
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
Tool: spice_time_convert (leap-second-kernel-backed ET / UTC / SCLK)
Goal
Time conversions backed by the loaded leap-second (and optional spacecraft-clock) kernels: str2et / et2utc / sce2s / scs2e. The final shape (a separate spice_time_convert vs. extending the v0.1 time_convert) follows the kickoff overlap decision (#120).
Tool surface
- Name:
spice_time_convert(pending the kickoff overlap decision). - Inputs:
value: str— the input time.from_scale/to_scale— among ET (TDB seconds past J2000), UTC, and SCLK (spac
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
Tool: spice_body_parameters (radii, GM, orientation constants)
Goal
Physical-parameter lookups — triaxial radii, GM, and orientation constants for a body. Backed by spiceypy bodvrd / bodvcd, reading whatever the loaded PCK provides.
Tool surface
- Name:
spice_body_parameters - Inputs:
body: str— body name or NAIF ID.parameters: list[str] | None = None— which constants to fetch (radii / GM / orientation); default returns the common set.
- Output: each requested constant as
{value, unit}(radii km, GM km³/s², angles
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
Tool: spice_frame_transform (FK / TF / PCK frame queries)
Goal
Frame transforms across frames SPICE exposes that the astropy path does not — e.g. non-Earth body-fixed frames from a loaded FK / PCK. Backed by spiceypy pxform / sxform. The final shape (a separate spice_frame_transform vs. extending the v0.1 frame_transform) follows the kickoff overlap decision (#120).
Tool surface
- Name:
spice_frame_transform(pending the kickoff overlap decision). - Inputs:
state: ... | None— a 3- or 6-vector to rotate, or omitted to r
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
Tool: spice_load_kernel / spice_list_kernels / spice_unload_kernel (kernel management)
Goal
Kernel-pool management — the stateful foundation every other SPICE tool depends on. Backed by spiceypy furnsh / ktotal+kdata / unload, implementing the concurrency and kernel-state model chosen at kickoff (#120).
Tool surface
spice_load_kernel
- Inputs:
source: str— a local path or an allowlisted NAIF URL; optionalkindhint (SPK / LSK / PCK / FK / SCLK). - Output: the furnished kernel's resolved name, type, source, and handle; whether it was served from
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
Tool: spice_state (SPK state / ephemeris queries)
Goal
SPK state queries — position and velocity of a target relative to an observer at a given epoch. Backed by spiceypy spkezr / spkgeo.
Tool surface
- Name:
spice_state - Inputs:
target: str— body name or NAIF ID.observer: str— body name or NAIF ID.epochs: list[str]— UTC ISO 8601 epochs (include a time component).frame: str = "J2000"— reference frame.aberration: str = "NONE"— aberration correction (NONE/LT/LT+S/ …).
- **Ou
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
[spice] extra wiring + conditional tool registration + XDG kernel cache
Goal
Wire the [spice] optional extra and the conditional-registration mechanism agreed at the SPICE kickoff (#120), so the per-tool issues drop in clean. The base install stays SPICE-free, mirroring the [gmat] gate (#70). No tool bodies yet.
Scope
pyproject.toml:spice = ["spiceypy>=6.0"]under[project.optional-dependencies].astrodynamics_mcp/tools/spice.pyskeleton: top-leveltry: import spiceypyguard; tools registered only when spiceypy is importable. Stateful-too
Read the thread · 2026-05-29 · closed · outside contributor · 0 comments
The remaining reports are on the project's issue tracker.