@pipeworx/exoplanet-archive
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/exoplanet-archive’s. Install: one-click buttons
Connect to just the @pipeworx/exoplanet-archive pack
https://gateway.pipeworx.io/exoplanet-archive/mcp — only @pipeworx/exoplanet-archive’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 6
NASA Exoplanet Archive MCP — ~6,451 confirmed exoplanets + candidates + light curves. Keyless TAP service.
A row-grain trap: ps vs pscomppars
The archive publishes two planet tables with different row grains, and mixing them up silently over-counts planets by ~6x:
ps(Planetary Systems) — one row per published parameter solution. A planet re-measured across several papers gets several rows, soCOUNT(*) FROM pscounts solutions, not planets (40,350 rows for 6,451 confirmed planets, 2026-10-16).pscomppars(Planetary Systems Composite Parameters) — one row per confirmed planet. This is the right table for “how many confirmed exoplanets” and for any per-planet listing.
Use confirmed_planet_count or composite for planet counts/listings. If you
query ps directly (via planets or tap), filter default_flag = 1 or
count DISTINCT pl_name to get one row per planet; every response from this
pack names its row unit so this can’t be missed silently.
Tools
tap(query, format?)— ADQL TAP query against the archive (default table:ps). A rawCOUNT(*) FROM pswithoutdefault_flag/DISTINCTcomes back with awarningfield, not a bare number.planets(query?, limit?)— per-solution search against thepstable; every response carries aunitfield naming the row graincomposite(query?, limit?)— query the composite planet parameter tablepscomppars(one row per confirmed planet)confirmed_planet_count(query?)— count of confirmed exoplanets frompscomppars, with its unit and the date of the live query; optional WHERE-clause filter (e.g.disc_year = 2023)kepler_candidates(query?, limit?)— Kepler Object of Interest (KOI) table (unconfirmed candidates)microlensing(query?, limit?)— microlensing event table
Data source
NASA Exoplanet Archive, TAP service.
Tools
- tap — ADQL TAP query. For “how many confirmed exoplanets” or any per-planet count,
- planets — Per-solution search against the
ps(Planetary Systems) table — one row per - composite — Composite planet parameter table
pscomppars— one row per confirmed planet. Use - confirmed_planet_count — Count of confirmed exoplanets — from the composite parameter table
pscomppars - kepler_candidates — Kepler Object of Interest (KOI) candidate table — unconfirmed candidates, not
- microlensing — Microlensing event table — detection events, not a planet count.
Tools
composite— Composite planet parameter table `pscomppars` -- one row per confirmed planet. Useconfirmed_planet_count— Count of confirmed exoplanets -- from the composite parameter table `pscomppars`kepler_candidates— Kepler Object of Interest (KOI) candidate table -- unconfirmed candidates, notmicrolensing— Microlensing event table -- detection events, not a planet count.planets— Per-solution search against the `ps` (Planetary Systems) table -- one row pertap— ADQL TAP query. For how many confirmed exoplanets or any per-planet count,