Exoplanet DB

Homelab Observational Portal & Agent API
—
Total Planets & Candidates
—
Confirmed Planets
—
Candidates & Signals
—
Host Star Systems
Loading catalog records...
Sources (any of)

Published Catalog Snapshots

Exoplanet DB maintains an immutable ledger of every ingestion run and catalog publication. Every release is linked to upstream commit SHAs and validation hashes.

AI Agent & Model Context Protocol (MCP) Interface

Exoplanet DB is architected specifically for AI agents, pairing a read-only REST API with an MCP server. Agents can explore targets, query signals with strict epistemic dispositions, examine candidate dossiers, and check novelty against published records.

Available MCP Tools

  • lookup_target(identifier, format) — Substring search for host stars by name, TIC ID or Gaia DR3 ID, with all their signals.
  • resolve_targets(identifiers[], format) — Batch: exact lookup of up to 500 TIC / Gaia ids, star or signal names, TOI or CTOI keys and TOI hosts in one call.
  • search_signals(search, source[], disposition[], period / depth / duration / score ranges, localisation[], timing[], sort, limit, offset, format) — Filter catalogued signals; up to 500 per page.
  • get_candidates(ids[], format) — Batch: up to 500 candidates by id or 12-character id prefix in one call.
  • get_candidate_dossier(candidate_id) — One candidate in full: ephemeris with uncertainties, host star, planet score with its factors, localisation, timing, limits and every source with a link.
  • check_novelty(ra_deg, dec_deg, period_d, …, format) — Evidence against every indexed catalogue (cone + period and harmonic matches), never a boolean.
  • check_novelty_bulk(signals[], …, format) — Batch: novelty evidence for up to 200 signals, with the checked sources reported once.
  • get_observation_queue(lat, lon, start, end, source[], min_planet_score, altitude / twilight / Moon limits, format) — Observable transits from a site over up to 7 days, best first.
  • get_catalog_stats() — Live counts per source and disposition.
  • format="compact" (default for the batch tools) returns tables ({"cols": [...], "rows": [[...]]}) with short ids and codes, about 4× fewer tokens than format="full".

MCP Connection Options

Option 1: Remote SSE Endpoint (Zero Local Installation)

Recommended for Claude Desktop, Cursor, Antigravity, or any modern MCP client. Connects directly to the hosted server without cloning or running Python locally:

{
  "mcpServers": {
    "exoplanet-db": {
      "url": "https://exoplanets.brahle.com/mcp/sse"
    }
  }
}

Option 2: Run via uvx (No Repo Clone Needed)

Runs the stdio client in an isolated ephemeral environment via Astral's uv:

{
  "mcpServers": {
    "exoplanet-db": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/brahle/exoplanet-db.git", "exoplanet-mcp"]
    }
  }
}

Option 3: Local Installation via pip

pip install git+https://github.com/brahle/exoplanet-db.git

# In your MCP config:
{
  "mcpServers": {
    "exoplanet-db": {
      "command": "exoplanet-mcp"
    }
  }
}

Option 4: Cloned Local Repository

If you have cloned the source repository (e.g. git clone https://github.com/brahle/exoplanet-db.git), point directly to your working directory:

{
  "mcpServers": {
    "exoplanet-db": {
      "command": "python",
      "args": ["-m", "exoplanet_db.mcp.server"],
      "cwd": "/path/to/cloned/exoplanet-db"
    }
  }
}

* Note: No direct database credentials (DATABASE_URL) are required. The MCP client communicates over read-only HTTPS REST to https://exoplanets.brahle.com by default.

Interactive REST OpenAPI Docs (/docs) View OpenAPI JSON (/openapi.json)