Skip to main content
Glama

Astronomer Model Context Protocol (MCP) Server

TypeScript MCP License: MIT

A Model Context Protocol (MCP) server providing deep LLM-agent tool and resource integration with Astronomer — an open-source computational research platform and quantitative analytical laboratory for comparative astrophysics, stellar systems, and celestial body manifolds.


Overview

The astronomer-mcp server enables AI agents (Claude Code, Cursor, Gemini CLI, etc.) to query, manipulate, cluster, and synthesize the astrophysics domain models directly over standard input/output (stdio):

  • 51 Registered MCP Tools across 8 functional modules (Search, Cosmic Structures, Star Systems, Celestial Bodies, Clustering, Synthesis Reports, Background Jobs, and System Diagnostics).

  • 4 Registered MCP Resources exposing read-only live platform status, catalogs, cluster snapshots, and markdown monographs.

  • 2 MCP Prompt Templates for comparative astrophysics studies and cluster synthesis monographs.

  • 1024-dimensional semantic manifold querying via PostgreSQL pgvector HNSW indexes.


Related MCP server: aqc-mcp

Architectural Mapping

Tier / Domain

Model

Table Name

MCP Module / Tools

Tier 1

Galaxies & Clusters

cosmic_structures

list_cosmic_structures, get_cosmic_structure, create_cosmic_structure, update_cosmic_structure, delete_cosmic_structure, upsert_cosmic_structures_batch, populate_cosmic_structures, populate_cosmic_structure_star_systems

Tier 2

Star Systems

star_systems

list_star_systems, get_star_system, create_star_system, update_star_system, delete_star_system, upsert_star_systems_batch, generate_star_system_embedding, populate_star_system_celestial_bodies, populate_star_systems_bulk

Tier 3

Planets & Celestial Bodies

celestial_bodies

list_celestial_bodies, get_celestial_body, create_celestial_body, update_celestial_body, delete_celestial_body, upsert_celestial_bodies_batch, generate_celestial_body_embedding, populate_celestial_bodies_bulk

Clustering

15-Level Agglomerative

cluster_snapshots, cluster_groups

compute_clusters, create_cluster_snapshot, list_cluster_snapshots, get_cluster_snapshot, delete_cluster_snapshot, list_cluster_groups, get_cluster_group

Synthesis

Multi-Stage Map-Reduce

cluster_reports, cluster_report_summaries

list_cluster_reports, get_cluster_report, create_cluster_report, delete_cluster_report, generate_deep_synthesis, list_report_summaries, get_report_summary, list_report_sub_reports, get_report_sub_report

Global Search

Cross-Catalog pgvector

Multi-table

search, find_counterparts

Platform

Jobs & System Info

Multi-service

list_jobs, get_job_status, wait_for_job, get_platform_status, get_settings, update_context_window, trigger_bulk_embeddings, get_openapi_spec


Installation & Setup

Prerequisites

  • Node.js 20+

  • Running instance of Astronomer (http://localhost:3000)

Build

git clone https://github.com/leouofa/astronomer-mcp.git
cd astronomer-mcp
npm install
npm run build

Configuration

Environment Variables

Configure via .env file or export in your shell:

# Base URL for the Astronomer Rails API (v1)
ASTRONOMER_API_URL=http://localhost:3000/api/v1

# Optional API key if authentication is enabled
# ASTRONOMER_API_KEY=

# HTTP request timeout in milliseconds (default: 60000)
ASTRONOMER_TIMEOUT_MS=60000

CLI Arguments

astronomer-mcp [options]

Options:
  -u, --url <url>        Astronomer API base URL (default: http://localhost:3000/api/v1)
  -k, --api-key <key>    Optional API key / Bearer token
  -t, --timeout <ms>     Request timeout in milliseconds (default: 60000)
  -h, --help             Display help message

MCP Client Configuration

Claude Desktop / Antigravity / Cursor Configuration

Add to your client configuration (e.g. claude_desktop_config.json or MCP settings):

{
  "mcpServers": {
    "astronomer": {
      "command": "node",
      "args": ["/path/to/astronomer-mcp/dist/index.js"],
      "env": {
        "ASTRONOMER_API_URL": "http://localhost:3000/api/v1"
      }
    }
  }
}

Testing

Run the Vitest test suite:

npm test

License

This project is licensed under the MIT License.

Available Tools

51 tools
compute_clustersB

Compute live connected-components vector clusters for StarSystems or CelestialBodies across cosmic structures without modifying the database.

Inputs: force, level, target_type, full_coverage.

create_celestial_bodyC

Create a new celestial body record associated with a star system.

Inputs: name (required), star_system_id (required), themes, description.

create_cluster_reportC

Initiate a 2-Phase Map-Reduce synthesis report on a frozen cluster snapshot.

Inputs: prompt (required), cluster_snapshot_id (required).

create_cluster_snapshotB

Compute connected-components clustering and freeze it immediately into an immutable database snapshot.

Inputs: level (required), title (required), target_type (required), full_coverage.

create_cosmic_structureC

Create a new cosmic structure (galaxy or cluster) record in the catalog.

Inputs: name (required), description.

create_star_systemC

Create a new star system record associated with a cosmic structure.

Inputs: name (required), cosmic_structure_id (required), themes, description.

delete_celestial_bodyC

Delete a celestial body record.

Inputs: id (required).

delete_cluster_reportA

Delete a synthesis report along with its intermediate summaries and sub-reports.

Inputs: id (required).

delete_cluster_snapshotB

Delete a frozen cluster snapshot along with its cascaded cluster groups and synthesis reports.

Inputs: id (required).

delete_cosmic_structureB

Delete a cosmic structure and its cascaded star systems and celestial bodies.

Inputs: id (required).

delete_star_systemB

Delete a star system and its cascaded celestial bodies.

Inputs: id (required).

find_counterpartsA

Find nearest astrophysical counterparts to a specified star system or celestial body using 1024-dimensional pgvector cosine distance.

Inputs: id (required), entity_type (required), limit, star_system_id, +2 more.

generate_celestial_body_embeddingB

Calculate 1024-dimensional vector embedding for a celestial body record.

Inputs: id (required), sync.

generate_deep_synthesisB

Initiate a 3-Phase Hierarchical Deep Synthesis monograph, reusing Phase 1 summaries from a completed parent report.

Inputs: report_id (required), batch_size.

generate_star_system_embeddingB

Calculate 1024-dimensional vector embedding for a star system using the configured embedding model.

Inputs: id (required), sync.

get_celestial_bodyB

Retrieve details of a celestial body including its structured themes and associated star system/cosmic structure.

Inputs: id (required), include_embedding.

get_cluster_groupA

Retrieve details of a specific archetype cluster group with all member star systems or celestial bodies.

Inputs: id (required), include_members.

get_cluster_reportB

Retrieve complete scholarly astrophysics report content, progress percentage, markdown monograph, and intermediate summaries.

Inputs: id (required), include_summaries, include_sub_reports.

get_cluster_snapshotA

Retrieve details of a frozen cluster snapshot including member groups and generated reports.

Inputs: id (required), include_groups, include_members, include_reports.

get_cosmic_structureC

Retrieve details of a single cosmic structure (galaxy/cluster) including its star systems.

Inputs: id (required), include_star_systems.

get_job_statusB

Check the status, progress, and result of an ActiveJob/Sidekiq background task.

Inputs: job_id (required).

get_openapi_specA

Retrieve the raw OpenAPI 3.1 specification for the Astronomer API.

Inputs: no named parameters.

get_platform_statusA

Get overall platform health, catalog entity counts, embedding coverage stats, and active LLM configuration.

Inputs: no named parameters.

get_report_sub_reportC

Retrieve a single Phase 2 batch analysis.

Inputs: id (required).

get_report_summaryC

Retrieve a single Phase 1 per-cluster scholarly summary.

Inputs: id (required).

get_settingsB

Get embedding completion metrics for StarSystems and CelestialBodies, active embedding/LLM parameters, and context window presets.

Inputs: no named parameters.

get_star_systemA

Retrieve full profile of a star system including cosmic structure, thematic astrophysical tags, and celestial bodies.

Inputs: id (required), include_embedding, include_celestial_bodies.

list_celestial_bodiesB

List and filter celestial bodies (exoplanets, moons, dwarf planets) with physical/orbital themes and embedding metadata.

Inputs: q, limit, theme, offset, +4 more.

list_cluster_groupsB

List all archetype cluster groups belonging to a specific frozen snapshot.

Inputs: cluster_snapshot_id (required), include_members.

list_cluster_reportsC

List generated multi-phase comparative astrophysics and celestial body manifold synthesis reports.

Inputs: limit, offset, status, is_detailed, +2 more.

list_cluster_snapshotsC

List frozen archetype cluster snapshots.

Inputs: limit, offset, target_type, include_groups.

list_cosmic_structuresA

List cosmic structures (galaxies, dwarf galaxies, galaxy clusters) registered in Astronomer with star system counts.

Inputs: q, limit, offset, include_star_systems.

list_jobsB

List recent asynchronous background jobs (embedding calculations, LLM discoveries, synthesis reports).

Inputs: limit.

list_report_sub_reportsB

List all Phase 2 intermediate batch analyses belonging to a detailed synthesis report.

Inputs: cluster_report_id (required).

list_report_summariesB

List all Phase 1 per-cluster analyses belonging to a synthesis report.

Inputs: cluster_report_id (required).

list_star_systemsB

List and filter star systems with astrophysical themes, celestial body counts, and vector embedding status.

Inputs: q, limit, theme, offset, +5 more.

populate_celestial_bodies_bulkB

Trigger bulk LLM celestial body discovery across all star systems or a single star system.

Inputs: sync, star_system_id.

populate_cosmic_structuresC

Trigger LLM discovery to populate major galaxies and galaxy clusters with astrophysical descriptions.

Inputs: sync.

populate_cosmic_structure_star_systemsC

Discover and populate star systems for a specific cosmic structure via LLM generation.

Inputs: id (required), sync.

populate_star_system_celestial_bodiesA

Discover and generate celestial bodies (planets, moons) for a star system via LLM extraction.

Inputs: id (required), sync.

populate_star_systems_bulkB

Trigger bulk LLM star system discovery across all cosmic structures or a single cosmic structure.

Inputs: sync, cosmic_structure_id.

trigger_bulk_embeddingsB

Enqueue bulk embedding generation for all StarSystems or CelestialBodies.

Inputs: model_type (required), only_missing.

update_celestial_bodyC

Update an existing celestial body's attributes, star system, or thematic tags.

Inputs: id (required), name, themes, description, +1 more.

update_context_windowC

Dynamically update the active LLM context window token size.

Inputs: context_window (required).

update_cosmic_structureB

Update an existing cosmic structure's name or description.

Inputs: id (required), name, description.

update_star_systemC

Update an existing star system's attributes, cosmic structure, or thematic tags.

Inputs: id (required), name, themes, description, +1 more.

upsert_celestial_bodies_batchC

Batch insert or update celestial bodies scoped to a specific star system.

Inputs: star_system_id (required), celestial_bodies (required).

upsert_cosmic_structures_batchA

Batch insert or update cosmic structures matching case-insensitively on name.

Inputs: cosmic_structures (required).

upsert_star_systems_batchC

Batch insert or update star systems scoped to a specific cosmic structure.

Inputs: star_systems (required), cosmic_structure_id (required).

wait_for_jobA

Poll a background job until completion or failure with configurable timeout.

Inputs: job_id (required), timeout_ms, poll_interval_ms.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 51 tools

    Disambiguation3/5

    Most tools are distinguishable by resource+action, but several families overlap heavily: populate_* vs upsert_*_batch vs create_* for the same entities, three separate embedding tools (generate_star_system_embedding, generate_celestial_body_embedding, trigger_bulk_embeddings), and compute_clusters vs create_cluster_snapshot vs create_cluster_report vs generate_deep_synthesis. Descriptions do help differentiate, but an agent has real risk of misselecting within these clusters.

    Naming Consistency4/5

    Nearly everything follows snake_case verb_noun (list_/get_/create_/update_/delete_/populate_/generate_), which is predictable. Minor deviations like the bare 'search', 'find_counterparts', and 'compute_clusters' break the strict pattern slightly but remain readable.

    Tool Count2/5

    51 tools is far beyond a comfortable surface for an agent to navigate. While the domain is broad (CRUD across three entities plus embeddings, clustering, reports, jobs, and settings), many tools are variants of each other (per-entity and bulk embedding/populate variants), pushing this into heavy territory.

    Completeness5/5

    The surface covers full lifecycle CRUD for cosmic structures, star systems, and celestial bodies, plus batch upserts, embeddings, clustering/snapshots, report generation, job polling, and settings. It is essentially exhaustive for the stated comparative-astrophysics domain with no obvious dead ends.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Provides 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
      -
    • A
      license
      B
      quality
      D
      maintenance
      MCP server that provides tools to query 17+ astronomical databases (e.g., SIMBAD, VizieR, Gaia) via HTTP/TAP APIs, enabling AI applications to access astronomical data through natural language.
      23
      22 npm
      2
      BSD 3-Clause
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables astronomy research by orchestrating specialized agents to access astronomical data tools (DESI, LSST, etc.) and perform analysis, simulations, and literature review.
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to query NASA/JPL data on asteroids and comets, including small-body orbits and physical parameters, near-Earth close approaches, Sentry impact-risk assessments, and recent atmospheric fireballs. All four tools are keyless and work over a hosted gateway endpoint or a local stdio server.
      302 npm
      MIT