Anything you search is written out with a descriptive filename and provenance metadata, so the second question — 'convert that to FITS', 'show me the structure' — works on the same artefact rather than re-running the query. The dependency install is the part that decides whether it works: a bare `requirements.txt` install leaves the astronomy libraries out, and the archive tools then fail at query time rather than at startup.
An astronomy data server that puts one interface over DESI spectra and the astroquery ecosystem — SIMBAD, VizieR, SDSS, Gaia, MAST and the rest. Results are saved to disk with metadata and can be converted to FITS, so a search turns into a file you can hand to your own analysis code.
- `search_objects` finds objects in DESI by position, type and redshift
- `get_spectrum_by_id` retrieves full spectral data for a DESI object
- `astroquery_query` is the single door to the other archives, taking a `service_name` plus object name, coordinates and radius, or raw SQL
- `list_astroquery_services`, `get_astroquery_service_details` and `search_astroquery_services` answer which archives are available before you query one
- `convert_to_fits` turns a saved catalog, spectrum or image into FITS
- `preview_data`, `list_files` and `file_statistics` inspect what has already been downloaded, with a `file_registry.json` under `~/astro_mcp_data/`
- DESI coverage spans EDR and DR1, at 360-980 nm
Python 3.11 or newer, run from a dedicated environment. The documented setup is to clone the repository, create a conda environment, install from `requirements.txt`, then add the astronomy libraries — `sparclclient`, `datalab`, `astropy`, `astroquery`. Point your client's `command` at that environment's Python and its `args` at `server.py`, with `cwd` set to the checkout. No account or API key is mentioned for the DESI and astroquery paths. `h5py` is optional and adds HDF5 support.
