Planet Hunter MCP
Provides tools for querying NASA astronomy data services: MAST for TESS light curves, NASA Exoplanet Archive for known planets and TOIs, and NASA ADS for literature searches via its API.
Prepares Zenodo preprint bundles, source/code/data archives, deposit-format metadata, and an upload walkthrough; after publication it can diff the live record against the planned deposit.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Planet Hunter MCPVet TIC 402175877 and check if it's already a known planet"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Planet Hunter MCP
An MCP server for TESS planet hunters. It connects an AI assistant to Vetstar, MAST, SIMBAD, VizieR, Gaia DR3, ExoFOP-TESS, the NASA Exoplanet Archive, NASA ADS, Crossref/DataCite, the Unified Astronomy Thesaurus and Zenodo. With those it can take a candidate from a vetting report to a verified ephemeris, an AAS Research Note, and a Zenodo preprint bundle that are ready to submit.
The tools follow AGENT_SPEC.md, the stage-by-stage contract (S1–S12)
taken from the HD 128329 (TIC 402175877) RNAAS run. The server prepares files only. It has no upload,
submit, publish or push tools; you click those buttons yourself.
What it covers
Stage | Tools | What they do |
S1 Triage |
| Run Vetstar on MAST data, or parse a Vetstar PDF with pymupdf. Red-flag checks catch BLS artefact periods, blind or zero-depth odd/even tests, placeholder depths, SPOC DV misfits, LS harmonics, R₂ > 2 R_Jup and centroid offsets. Also gives R₂ and a Planck-based T₂. |
S2 Identity and contamination |
| TIC v8.2 record. For each Gaia DR3 neighbour, the dip it would need, δ_nb = δ(1+f)/f, combined with the centroid σ. |
S3 Novelty and literature |
| Sweeps every VizieR catalogue and flags variability and period tables (this is how IJspeert+2024 turned up when SIMBAD missed it). Also ExoFOP TOIs and CTOIs, known planets and TOIs, and ADS through its API. |
S4 Data |
| One light curve per sector, preferring SPOC 2-min, then TESS-SPOC FFI, then QLP. Cached locally, with warnings for artefact runs. |
S5–S7 Analysis |
| Trapezoid mid-times flagged for full coverage. Weighted ephemeris with O−C. P/2, P/3 and 2P alias tests. Stacked primary (trapezoid, or with |
S8 Figure |
| The single RNAAS figure: (a) stacked primary with model, (b) secondary search with a ±3σ band. |
S9–S11 Manuscript |
| AASTeX 7.0.1 skeleton with the AI disclosure, Vetstar credit and a |
S10 References |
| Checks every DOI in a |
S12 Zenodo |
| Preprint PDF, source zip, code and data zip, deposit-format metadata and an upload walkthrough. After you publish, it diffs the live record against the plan. |
Ledger and QA |
| Every quotable number is written to |
Resources: planet-hunter://spec (the pipeline contract) and planet-hunter://targets/{tic}/numbers.
Prompt: vet_tess_candidate.
Related MCP server: Astro MCP
Validation
scripts/regression_hd128329.py reruns the published HD 128329 analysis through the MCP tools (Sector 93
QLP excluded, as in the paper):
Quantity | Published | This server |
T₀ (BJD_TDB) | 2459335.60643(36) | 2459335.60643(36) |
P (d) | 39.295590(9) | 39.295590(9) |
Primary depth / T₁₄ | 10.3 % / 7.1 h | 10.37 % / 7.09 h |
Secondary at φ = 0.5 | −24 ± 79 ppm | −24 ± 79 ppm |
3σ limit, inflation | 240 ppm, 1.48 | 243 ppm, 1.48 |
Brightest neighbour (G = 11.7 at 118″) | δ_nb ≈ 0.77 | δ_nb = 0.78 |
scripts/regression_wasp98.py is the known-planet control: WASP-98 b (TIC 166833457, TOI-404.01), with
34 transits in SPOC 2-min data over about 8 years:
Check | Result |
Vetstar S107 | "Known Planet", with 0 red flags |
P | 2.9626414(3) d, against the archive's 2.96264036 d; O−C rms 0.95 min |
TOI-404.01 epoch | Predicted to −0.5 min (0.9σ) at E = 255 |
Contamination | On target. A G = 8.5 star 6.6 px away is ruled out by the on-target centroid. |
Trapezoid fit | Depth 2.55 %, T₁₄ 1.84 h (underfits the limb-darkened bottom) |
Limb-darkened fit ( | Rp/R★ = 0.1587 ± 0.0011 (archive 0.15824 ± 0.00081, +0.3σ); b = 0.685 ± 0.018 (archive 0.71 ± 0.01, −1.2σ); depth 2.63 %, T₁₄ 1.92 h (archive 1.908 h) |
Archive values are fetched live with ph_exoplanet_archive_query (pscomppars) when the script runs.
Unit tests (pytest -m "not network") use synthetic eclipsing-binary light curves and synthetic limb-darkened transits.
Install
Requires Python ≥ 3.10. Building manuscripts also needs TeX Live with aastex701.cls and aasjournalv7.bst.
git clone https://github.com/eagnespuerto/planet-hunter-mcpcd planet-hunter-mcp && python -m venv .venv && .venv/bin/pip install -e .On Windows the executable is at .venv\Scripts\planet-hunter-mcp.exe.
Claude Code
claude mcp add planet-hunter -- /path/to/planet-hunter-mcp/.venv/bin/planet-hunter-mcpClaude Desktop / other clients (mcpServers JSON)
{
"mcpServers": {
"planet-hunter": {
"command": "/path/to/planet-hunter-mcp/.venv/bin/planet-hunter-mcp",
"env": { "PLANET_HUNTER_WORKDIR": "~/planet-hunter", "ADS_API_TOKEN": "" }
}
}
}Streamable HTTP, for remote use: planet-hunter-mcp --transport streamable-http --port 8000.
Configuration
Variable | Default | Purpose |
|
| Per-target cache and outputs ( |
|
| Vetstar API. Point it at a local instance ( |
|
| Seconds. The free tier cold-starts, and MAST downloads happen server-side. |
| unset | Needed for |
Ground rules built into the tools
Nothing is submitted, uploaded or published. Bundles and walkthroughs are prepared, and a human acts on them.
Bot challenges are never bypassed. Without an ADS token the server explains what to do and does not scrape the UI.
Every DOI is resolved before it is cited. A DOI written from memory resolved to a different paper in the reference run.
Every number has a source. Analysis tools write to
paper_numbers.json, and the scaffolded.texembeds that ledger as comments.Novelty claims come after the literature sweep. VizieR's all-catalogue sweep is part of S3 because SIMBAD alone is not enough.
Development
pip install -e ".[dev]" && pytest -m "not network"Credits: Vetstar (TESS Vetting Studio) by Ella Agnes Puerto. Data services: MAST/TESS, CDS SIMBAD and VizieR, ESA Gaia, ExoFOP-TESS, the NASA Exoplanet Archive, NASA ADS, Crossref, DataCite, the UAT and Zenodo.
Built with help from Claude (Anthropic). MIT licensed.
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to Stellary projects, boards, documents, and governed agent workflows.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Related MCP Servers
- AlicenseAqualityAmaintenanceProvides seamless access to the NASA Astrophysics Data System (ADS) for searching astronomical papers, tracking citations and metrics, managing paper libraries, and exporting BibTeX references through natural language conversation.109MIT
- FlicenseNot gradedqualityDmaintenanceProvides unified natural language access to 40+ astronomical databases and surveys including DESI, SIMBAD, SDSS, and Gaia, enabling researchers to search, retrieve, and analyze astronomical data without learning complex APIs.6-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with the SciX (formerly NASA ADS) API to search scientific literature, export citations, and analyze bibliometric data. It supports advanced tools for managing libraries, resolving astronomical object names, and exploring citation networks.2MIT
- AlicenseAqualityBmaintenanceA local, open-source MCP server that wraps astronomy data services (SIMBAD, JPL Horizons, VizieR, etc.) behind a conversational interface, enabling AI assistants to answer astronomy questions with real, typed, and provenance-tracked data.131MIT