aqc-mcp
Provides access to multiple NASA astrophysics data services including SIMBAD, VizieR, NED, ADS, HEASARC, IRSA, MAST, ESASky, and others, enabling queries of astronomical databases and archives through MCP tools.
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., "@aqc-mcp query SIMBAD for M31"
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.
Astroquery MCP Server π
A Model Context Protocol (MCP) server for astroquery-cli, providing HTTP and SSE (Server-Sent Events) transport options.
Overview β¨
The aqc-mcp server provides direct HTTP/TAP API access to 17+ astronomical databases as MCP tools, allowing AI applications and other services to query astronomical data through standardized MCP protocols. Supports both HTTP and SSE transports.
Related MCP server: Astro MCP
Features π
β‘ MCP Protocol: Full implementation of MCP specification
π Multiple Transports:
HTTP (default)
SSE (Server-Sent Events)
Stdio (for Claude Desktop)
π 17 Databases: Direct TAP/REST API access to major astronomical archives
π Language Support: Multi-language output (English, Chinese)
π Rich Output: Formatted tables and structured results
π ADS API Token Support: Environment variable injection for authenticated queries
β‘ No Python Required: Pure Node.js/TypeScript implementation
Supported Modules π§©
Currently implemented tools (17 astronomical databases):
General Astronomy
SIMBAD: Query SIMBAD astronomical database
VizieR: Query VizieR catalog database
NED: NASA/IPAC Extragalactic Database
ADS: NASA Astrophysics Data System queries (requires API token)
Radio & Millimeter
ALMA: Query ALMA observations archive
ESO: European Southern Observatory science archive
High Energy & X-ray
Fermi LAT: Fermi Large Area Telescope gamma-ray source catalog
HEASARC: High Energy Astrophysics Science Archive (multiple missions)
Infrared & Submillimeter
IRSA: NASA/IPAC Infrared Science Archive
Space Observatories
MAST: Barbara A. Mikulski Archive for Space Telescopes
ESASky: Multi-mission all-sky archive
Solar System
JPL Horizons: Solar system body ephemerides and state vectors
JPL SBDB: Small-Body Database for asteroids and comets
Exoplanets & Stars
Exoplanet: NASA Exoplanet Archive
AAVSO: Variable Star Index (VSX catalog)
NIST: Atomic Spectra Database for spectral lines
Optical Surveys
Gaia: Gaia DR3 catalog cone search and ADQL queries
SDSS: Sloan Digital Sky Survey (DR18)
Splatalogue: Spectral line database
Total: 17 databases, 30+ tools
Installation π οΈ
Quick Start
Prerequisites:
Node.js β₯ 18.0.0
No Python dependency required - aqc-mcp uses direct HTTP/TAP APIs to astronomical services.
MCP Server Configuration
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"aqc-mcp": {
"command": "npx",
"args": ["-y", "aqc-mcp"],
"env": {
"ADS_API_KEY": "your-ads-api-token-here"
}
}
}
}Without ADS token:
{
"mcpServers": {
"aqc-mcp": {
"command": "npx",
"args": ["-y", "aqc-mcp"]
}
}
}Alternative: Global Install
npm install -g aqc-mcpThen use in config:
{
"mcpServers": {
"aqc-mcp": {
"command": "aqc-mcp"
}
}
}Usage π
1. Start Server
HTTP Mode (default)
npm start
# or
npm run devServer will start on http://localhost:3000
With ADS API Token
ADS_API_KEY="your-token" npm startCustom Port
PORT=8080 npm startSSE Mode
MCP_TRANSPORT=http npm startStdio Mode (for Claude Desktop)
MCP_TRANSPORT=stdio npm run dev2. API Endpoints
Health Check
curl http://localhost:3000/healthServer Info
curl http://localhost:3000/SSE Connection
curl http://localhost:3000/sseMCP Tools π§
simbad_query
Query SIMBAD astronomical database.
Parameters:
object_name(string, required): Object name (e.g., "M31", "NGC 1234")lang(string, optional): Output language ("en", "zh", "ja")
Example:
{
"name": "simbad_query",
"arguments": {
"object_name": "M31",
"lang": "en"
}
}vizier_query
Query VizieR catalog database.
Parameters:
target(string, required): Target name or coordinatesradius(string, required): Search radius (e.g., "10arcsec", "0.5deg")catalog(string, optional): Specific catalog namelang(string, optional): Output language
Example:
{
"name": "vizier_query",
"arguments": {
"target": "M31",
"radius": "10arcsec",
"catalog": "I/345/gaia2"
}
}alma_query
Query ALMA observations archive.
Parameters:
object_name(string, required): Object namelang(string, optional): Output language
Example:
{
"name": "alma_query",
"arguments": {
"object_name": "Orion KL"
}
}ads_query
Query NASA Astrophysics Data System.
Parameters:
query(string, optional): Search query stringlatest(boolean, optional): Get latest papersreview(boolean, optional): Get review articles onlylang(string, optional): Output language
Requirements:
Set
ADS_API_KEYenvironment variable before starting the server
Example:
{
"name": "ads_query",
"arguments": {
"latest": true,
"lang": "en"
}
}gaia_cone_search
Query Gaia archive via cone search.
Parameters:
target(string, required): Target name or coordinatesradius(string, optional): Search radius (default: "10arcsec")lang(string, optional): Output language
Example:
{
"name": "gaia_cone_search",
"arguments": {
"target": "M31",
"radius": "1arcmin"
}
}HTTP API Examples π‘
Call a Single Tool
curl -X POST http://localhost:3000/tools/call \
-H "Content-Type: application/json" \
-d '{
"name": "simbad_query",
"arguments": {
"object_name": "M31"
}
}'Batch Call Multiple Tools
curl -X POST http://localhost:3000/tools/batch \
-H "Content-Type: application/json" \
-d '{
"tools": [
{
"name": "simbad_query",
"arguments": {"object_name": "M31"}
},
{
"name": "gaia_cone_search",
"arguments": {"target": "M31", "radius": "10arcsec"}
}
]
}'Claude Desktop Integration π₯οΈ
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"astroquery": {
"command": "node",
"args": ["/path/to/astroquery-cli/astroquery-mcp/dist/index.js"],
"env": {
"MCP_TRANSPORT": "stdio",
"ADS_API_KEY": "your-ads-api-token-here"
}
}
}
}Development π¨
Watch Mode
npm run watchProject Structure
aqc-mcp/
βββ src/
β βββ index.ts # Main server entry
β βββ tools/ # MCP tool definitions (17 databases)
β β βββ index.ts # Tool registration
β β βββ simbad.ts # SIMBAD queries
β β βββ vizier.ts # VizieR catalog queries
β β βββ alma.ts # ALMA archive queries
β β βββ ads.ts # ADS bibliographic queries
β β βββ gaia.ts # Gaia DR3 queries
β β βββ aavso.ts # AAVSO VSX variable stars
β β βββ fermi.ts # Fermi LAT gamma-ray sources
β β βββ heasarc.ts # HEASARC queries
β β βββ esasky.ts # ESASky multi-mission archive
β β βββ eso.ts # ESO science archive
β β βββ exoplanet.ts # NASA Exoplanet Archive
β β βββ irsa.ts # IRSA infrared archive
β β βββ jpl.ts # JPL Horizons & SBDB
β β βββ mast.ts # MAST space telescopes
β β βββ ned.ts # NED extragalactic DB
β β βββ nist.ts # NIST atomic spectra
β β βββ sdss.ts # SDSS optical survey
β β βββ splatalogue.ts # Spectral line database
β βββ utils/
β βββ http.ts # HTTP/TAP client utilities
βββ dist/ # Compiled JavaScript
βββ package.json
βββ tsconfig.jsonEnvironment Variables π§
Variable | Description | Default | Required |
| Transport mode ( |
| No |
| HTTP server port |
| No |
| NASA ADS API token | - | For ADS queries |
Troubleshooting π
ADS queries fail
Set the ADS_API_KEY environment variable:
export ADS_API_KEY="your-token"
npm startPort already in use
Change the port:
PORT=8080 npm startQuery timeouts
Some astronomical databases (e.g., Fermi LAT, HEASARC) may take longer to respond. The server uses reasonable timeout values, but you can adjust them if needed by modifying the timeout parameter in the HTTP client.
License π
BSD-3-Clause
Contributing π€
Contributions welcome! Please open an issue or PR.
Links π
Available Tools
23 toolsaavso_query_regionC
Query AAVSO VSX for variable stars in a circular region around coordinates
Inputs: ra (required), dec (required), lang, format, +2 more.
aavso_query_starC
Query AAVSO VSX (Variable Star Index) for a specific variable star by name
Inputs: star_name (required), lang.
ads_searchA
Search NASA ADS (Astrophysics Data System) for academic papers. Requires ADS_DEV_KEY or ADS_API_KEY env var.
Inputs: query (required), lang, sort, max_results.
alma_queryB
Query ALMA (Atacama Large Millimeter Array) archive by object name or coordinates
Inputs: ra, dec, lang, radius, +2 more.
esasky_queryC
Query ESASky archive for astronomical observations by position and radius
Inputs: ra (required), dec (required), lang, radius, +2 more.
eso_queryC
Query ESO (European Southern Observatory) science archive by target, instrument, or coordinates
Inputs: ra, dec, lang, radius, +3 more.
exoplanet_queryC
Query NASA Exoplanet Archive for confirmed exoplanet data
Inputs: lang, hostname, max_results, planet_name.
fermi_lat_adqlB
Execute a raw ADQL query on the Fermi LAT archive (TAP service)
Inputs: adql (required), lang, max_results.
fermi_lat_catalog_queryC
Query Fermi LAT point source catalog (4FGL-DR4, the latest 14-year catalog)
Inputs: ra, dec, lang, radius, +4 more.
gaia_adqlC
Execute a raw ADQL query on the Gaia archive
Inputs: adql (required), lang, max_results.
gaia_cone_searchC
Cone search on Gaia DR3 catalog by coordinates and radius
Inputs: ra (required), dec (required), lang, radius, +1 more.
heasarc_queryC
Query HEASARC (High Energy Astrophysics Science Archive) by object name and mission catalog
Inputs: object_name (required), lang, radius, mission, +1 more.
irsa_queryC
Query NASA/IPAC Infrared Science Archive (IRSA) by coordinates and catalog
Inputs: ra (required), dec (required), lang, radius, +2 more.
irsa_tapC
Execute raw ADQL query against IRSA TAP service
Inputs: adql (required), lang, max_results.
jpl_horizonsC
Query JPL Horizons for solar system body ephemerides, orbital elements, or state vectors
Inputs: target (required), lang, location, step_size, +3 more.
jpl_sbdbC
Query JPL Small-Body Database for asteroid/comet orbital and physical data
Inputs: target (required), lang, phys.
mast_queryC
Search MAST (Mikulski Archive for Space Telescopes) for observations by object name or coordinates
Inputs: ra, dec, lang, radius, +2 more.
ned_queryB
Query NASA/IPAC Extragalactic Database (NED) for object information by name
Inputs: object_name (required), lang.
nist_linesC
Query NIST Atomic Spectra Database for spectral line data
Inputs: lang, linename, max_results, max_wavelength, +1 more.
sdss_queryB
Query the Sloan Digital Sky Survey (SDSS DR18). Supports cone search, specobjid lookup, and plate/mjd/fiberid lookup.
Inputs: query_type (required), ra, dec, mjd, +7 more.
simbad_queryC
Query SIMBAD astronomical database by object identifier (e.g. M31, NGC 1234, Vega)
Inputs: object_name (required), lang.
splatalogue_linesB
Query the Splatalogue spectral line database by frequency range. Optionally filter by chemical species name.
Inputs: max_frequency (required), min_frequency (required), lang, chemical_name.
vizier_queryB
Query VizieR catalog service. Cone search by coordinates+radius on a specific catalog.
Inputs: target (required), lang, radius, catalog, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 23 tools
Each tool maps to a distinct astronomy archive or service, so most are easily differentiated by target source. However, the IRSA pair (irsa_tap vs irsa_query) and the Gaia/Fermi ADQL vs cone/catalog pairs could cause slight confusion about which to pick for a given query.
Names consistently use snake_case and generally follow a service_query or service_action pattern. Some action suffixes vary (tap, adql, cone_search, horizons, sbdb, lines), but the pattern remains readable and domain-consistent.
At 23 tools, the set is heavy and includes multiple similar query endpoints for different archives. For a broad astronomy aggregator the breadth is defensible, but the count is above the typical well-scoped range and adds cognitive load.
The surface covers a wide range of major astronomical archives and services, with read-only queries appropriate for the domain. Minor gaps exist, such as no generic TAP discovery or data-product download, but core research workflows are well supported.
Maintenance
Related MCP Connectors
An MCP server for Perigee, the open-source 3D viewer of the artificial objects orbiting the Earth, the Moon and Mars and of the spacecraft crossing the solar system. It lets an AI assistant (a teaching assistant, for example) answer questions such as βhow far is Mars from the Earth on 1 December 2026?β, βwhere is the ISS now?β or βwhat is Lucy's mission?β, and hand the student a live 3D view, with how each number was obtained, from which data, how fresh and how accurate.
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that enables LLMs to query data from various NASA APIs, allowing access to astronomical data, space weather information, Earth imagery, and exoplanet information directly from compatible AI clients.216MIT
- 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-
- AlicenseAqualityDmaintenanceMCP server providing AI agents with access to NASA and space/astronomy data including APOD, Mars rover photos, near-Earth asteroids, exoplanets, Earth imagery, natural events, and space weather.11MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that wraps three NASA public APIs (Astronomy Picture of the Day, Mars rover photos, and near-Earth objects) as tools for AI assistants.-