Astronomer MCP Server
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., "@Astronomer MCP Server find star systems similar to Kepler-186 and cluster them"
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.
Astronomer Model Context Protocol (MCP) Server
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
pgvectorHNSW indexes.
Related MCP server: aqc-mcp
Architectural Mapping
Tier / Domain | Model | Table Name | MCP Module / Tools |
Tier 1 | Galaxies & Clusters |
|
|
Tier 2 | Star Systems |
|
|
Tier 3 | Planets & Celestial Bodies |
|
|
Clustering | 15-Level Agglomerative |
|
|
Synthesis | Multi-Stage Map-Reduce |
|
|
Global Search | Cross-Catalog pgvector | Multi-table |
|
Platform | Jobs & System Info | Multi-service |
|
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 buildConfiguration
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=60000CLI 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 messageMCP 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 testLicense
This project is licensed under the MIT License.
Available Tools
51 toolscompute_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.
searchC
Unified cross-catalog semantic or keyword search across star systems and celestial bodies in the Astronomer comparative astrophysics manifold.
Inputs: q (required), mode, limit, target_type.
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
Scored across 51 tools
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.
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.
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.
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
Related MCP Connectors
Astronomical logical calculator for AI clients.
Astra DB tools for agents: schema, find, vector search, guarded writes, and interactive views.
Your AI Agent's Infrastructure Layer. Connect Claude, Copilot, Codex, or ChatGPT to 200+ managed open source services. Start databases, pipelines, and applications through natural language.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Related MCP Servers
- 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-
- AlicenseBqualityDmaintenanceMCP 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.2322 npm2BSD 3-Clause
- AlicenseNot gradedqualityDmaintenanceEnables astronomy research by orchestrating specialized agents to access astronomical data tools (DESI, LSST, etc.) and perform analysis, simulations, and literature review.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables 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 npmMIT