Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

MARS — MCP Astronomy Research Suite

CI Python 3.13

MARS (MCP Astronomy Research Suite) is an agentic, tool-enabled system for automated astronomy: a registry of purpose-built tools — SIMBAD, NED, VizieR, ATNF, MAST, MPC, CASDA and ADS queries, plus local pulsar, variable-star, optical photometry, plate-solving, HR-diagram and radio-source pipelines — that an LLM agent plans and executes research tasks with. Serve them over MCP to your own coding agent, or drive them from the mars console.

The algorithms behind the tools come from two production systems built around the Skynet Robotic Telescope Network at the University of North Carolina at Chapel Hill: Skynet itself, extracted directly into Python, and Astromancer, its light-curve, periodogram and star-cluster web application, ported from TypeScript. They are extractions, not rewrites — algorithms, constants, comments and known bugs are preserved, and the test suite checks bit-for-bit parity with recorded Skynet output rather than "fixing" it in transit.

Quick Start

From an MCP host (Claude Code, Claude Desktop, Codex, Cursor, …), with no checkout — install skynet-mars on Python 3.13 and register its server:

uv tool install --python 3.13 "skynet-mars[mcp]"
mars-mcp self-test                                   # runs a pulsar detection end to end
claude mcp add --scope user mars -- /full/path/to/mars-mcp

Other hosts, the optional data bundles (mars-mcp fetch-data), credentials and where files go are in docs/installing.md.

From a checkout, run the console. It needs a model backend — Anthropic by default (ANTHROPIC_API_KEY), or OpenAI-compatible, Gemini, or a local Ollama daemon, switchable in the session with /backend:

uv sync
uv run mars

The console's commands, keys and flags are in docs/tool-architecture.md §10.2; backend settings are in §10. Every tool is also a plain Python function (from tools.simbad import search_simbad), listed in §2. Three optional optical frames are Git LFS objects (git lfs pull); see data/README.md.

What's Here

Path What it holds
tools/ The public tool surface: plain Python wrappers, the tool registry, the agent loop (agent/), the model port (llm/), the mars console (tui/), the MCP server (mcp/), and the benchmark harness (bench/).
algorithms/ The extracted Skynet packages (wcs/, photometry/, fieldcal/, catalogs/, query/, shared skylib_lite/), the Astromancer ports (pulsar/, variable_star/, hrdiagram_py/), and the new radio/.
skills/mars-tools/ The agent skill for using the tools, generated from tools/skill/source/.
tests/ Algorithm-preservation and tool-smoke tests; no network by default.
data/ Fixture frames, pulsar scans and recorded reference solves.
benchmarks/, docs/ The model benchmark corpus; the documentation.

Documentation

Contributing

Target dev, keep changes narrow, and run the checks CI enforces (uv run pytest, python3 -m compileall tools algorithms tests, git diff --check). See CONTRIBUTING.md, and AGENTS.md for agentic contributors.

License

Copyright (C) 2026 Skynet Robotic Telescope Network.

MARS is licensed under the GNU General Public License v3.0 only (GPL-3.0-only); the full text is LICENSE. It is the licence of the Skynet projects it grew from: Astromancer and Skycat carry the same text.

The code under algorithms/ comes from three places (provenance per file in docs/extraction.md):

  • Skynet, by the same group as MARS: skylib and the optical processing in skynet-db, extracted into algorithms/skylib_lite/, wcs/, photometry/, fieldcal/ and catalogs/.
  • Astromancer, by the same group, GPL-3.0: ported to Python in algorithms/pulsar/, algorithms/variable_star/ and algorithms/hrdiagram_py/.
  • Afterglow Core, Apache-2.0: parts of the query layer in algorithms/query/. Apache-2.0 code may be combined into a GPL-3.0 work.

Files that carry their own third-party notice — for example the BSD-3-Clause header in algorithms/skylib_lite/util/overlap.py — keep it, and those terms apply to those files as well.

Metadata

Release files for skynet-mars 0.1.0rc5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skynet-mars 0.1.0rc5
File Size Uploaded
skynet_mars-0.1.0rc5.tar.gz 2.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for skynet-mars 0.1.0rc5
File Interpreter ABI Platform
skynet_mars-0.1.0rc5-py3-none-any.whl Python 3 none any Details

Total release size: 4.6 MB

Release files / skynet_mars-0.1.0rc5.tar.gz

Download URL skynet_mars-0.1.0rc5.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
c9996333946453b7430742cb91c70400c4c46654045daedce412bc1f65dc6280
BLAKE2b-256 checksum
How to use checksums
276f7127d5a15d2d68334f309ed92fce0d2d9fad526fbde8a7524cae4ffb360d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / skynet_mars-0.1.0rc5-py3-none-any.whl

Download URL skynet_mars-0.1.0rc5-py3-none-any.whl
Size 2.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
d5c8c7d3864906a94e547f7c92853037c6674ae87e37d2b58a1a33b7a56b4b7d
BLAKE2b-256 checksum
How to use checksums
46345d4eddb4ab1fc76faac71c68f50c76c544c687c6d6a5aebcf3b3569216df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page