
MANNA
io.github.NSF-Simons-CosmicAI-InstitutePublished by GitHub account NSF-Simons-CosmicAI-Institutev0.11.0Updated Oct 30, 2026
MCP server for IVOA astronomical archives: NOIRLab Astro Data Lab, NRAO/ALMA, CADC, ESO, Gaia
Overview
MCP server that gives assistants access to IVOA astronomical archives (Astro Data Lab, ALMA, CADC, ESO, Gaia, SDSS) via TAP/ADQL, image and cone search…
- What you can do
- Resolve object names and search the IVOA registry for archives
- Run ADQL queries against TAP services and search images or catalog sources by position
- Run multi-step workflows that resolve a target, pick an archive and run a search or count
- Return small results inline and promote large TAP results to async jobs with a result URL and pyvo snippet
- Read curated per-archive notes on quirks such as missing columns and spatial-index hints
- When to use it
- Useful for astronomy and astrophysics work where an assistant should query real archive data, write ADQL against specific services, or look up objects and images across IVOA archives without hand-crafting each request.
- Requirements
- Local Python 3.12+ runtime; run with uvx manna-mcp --stdio or install the manna-mcp package. Optional MANNA_* environment variables (MANNA_ARCHIVES, MANNA_ALLOWED_HOSTS, MANNA_INLINE_ROW_LIMIT, MANNA_LOG_LEVEL) or a .env file. Network access to archive services; the first launch downloads astropy and pyvo.
Installation
In SourceWeft
- Open MANNA in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
MANNA
[PyPI] [Documentation] [CI] [License: MIT]
MANNA (MCP Architecture for NOIRLab, NRAO, and additional Archives) is an MCP server that gives LLM clients such as Claude Code, Claude Desktop, and Jupyter AI access to astronomical archives through the standard IVOA interfaces: TAP/ADQL, SIA image search, cone search, the IVOA registry, and Sesame name resolution. It includes curated notes for NOIRLab Astro Data Lab, ALMA, CADC, ESO, Gaia, and SDSS, and can reach any archive listed in the IVOA registry.
Its tools fall into four groups:
- Connections call the IVOA interfaces directly: resolve a target name, run an ADQL query, search for images or catalog sources by position, search the registry.
- Workflow tools do a multi-step task in one call: resolve a target, pick an archive, run the search or count.
- Result handling returns small results inline. A large TAP result becomes an async job, and the client receives a result URL and a pyvo snippet to fetch it. The server keeps nothing between requests.
- Archive notes record each archive's quirks (missing columns, enum values, spatial-index hints) so the model sees them before writing ADQL. Every note has a check that re-verifies it.
Full documentation, including the reference for every tool, is at https://manna.readthedocs.io.
Installation
Python 3.12 or later. The PyPI distribution is manna-mcp; the import package
and the command are both manna.
The first launch downloads astropy and pyvo, which takes a while. Run
uvx manna-mcp --stdio once in a terminal before adding it to a client with a
short startup timeout.
The Docker image and the MCP Registry entry are described under Installation.
Connect a client
Claude Code:
Claude Desktop, or any client with a JSON config:
For a shared HTTP server or Jupyter AI, run manna and point the client at
http://localhost:8000/mcp/.
Guides: Claude Code, Claude Desktop, Jupyter AI, a first query.
Configuration
All settings are optional and are read from MANNA_* environment variables or
a .env file. The two most often changed:
MANNA_ARCHIVES=datalab,almalimits which archives have curated notes. Unset means every archive exceptnrao, which is inactive until named here.MANNA_INLINE_ROW_LIMIT=2000andMANNA_INLINE_BYTE_LIMIT=262144raise the inline result caps from their small-model defaults to suit a large context window such as Claude's.
Every setting is listed in the configuration guide. Adding or removing an archive is covered in the archives guide.
Development
Feature branches are cut from dev and merged back by pull request. Tests,
linting, recorded cassettes, the docs build, and releases are described under
Contributing.
License
MIT. Developed by the NSF-Simons CosmicAI Institute.
Source: README.md at commit eeff175
Tools
0Version history
4- v0.11.0LatestOct 9, 2026
- v0.10.0Sep 27, 2026
- v0.9.0Sep 16, 2026
- v0.7.2Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts