Installation¶
MANNA is a Python package. The distribution on PyPI is manna-mcp; the
import package and the command-line entry point are both manna (bare
manna is reserved on PyPI). Python 3.12 or later is required.
The first launch downloads astropy and pyvo, which is large. Run the server once in a terminal before wiring it into a client whose startup timeout is short.
From PyPI¶
uvx manna-mcp --stdio # MCP over stdio, for Claude Code / Claude Desktop
uvx manna-mcp # HTTP server on http://localhost:8000
uv tool install manna-mcp
manna --stdio
python -m venv .venv && source .venv/bin/activate
pip install manna-mcp
manna # HTTP server on http://localhost:8000
manna-mcp and manna are both installed as commands; they are the same
program. uvx needs a command named after the package, which is why the
manna-mcp alias exists.
Tool names changed in 0.9.0 (they lost the vo_ prefix; see
Tool names before 0.9.0 below). These pages
describe 0.9.0 or later; check what you have with pip show manna-mcp or the
/health endpoint, which reports the version.
From GitHub¶
Install the current main branch without cloning:
pip install "manna-mcp @ git+https://github.com/NSF-Simons-CosmicAI-Institute/manna@main"
# or, without installing:
uvx --from "git+https://github.com/NSF-Simons-CosmicAI-Institute/manna@main" manna --stdio
Replace @main with a tag (@v0.9.0) or a branch (@dev) as needed.
To work on the code, clone it and use uv:
git clone https://github.com/NSF-Simons-CosmicAI-Institute/manna
cd manna
uv sync
uv run python -m manna # server on http://localhost:8000
See Development for tests, linting, and the branch flow.
Docker¶
Every release publishes a container image to the GitHub Container Registry:
Tag |
Meaning |
|---|---|
|
a release |
|
the newest release |
|
a build of one commit on |
docker run --rm -p 8000:8000 ghcr.io/nsf-simons-cosmicai-institute/manna:latest
curl http://localhost:8000/health
The image serves MCP over HTTP at http://localhost:8000/mcp/ and takes the
same MANNA_* environment variables as the CLI (Configuration):
docker run --rm -p 8000:8000 -e MANNA_ARCHIVES=datalab,alma ghcr.io/nsf-simons-cosmicai-institute/manna:latest
Note
The package is currently private on ghcr.io; pulling it needs a GitHub
account with read access to the NSF-Simons-CosmicAI-Institute organization
(docker login ghcr.io). Until it is made public, build the image locally:
git clone https://github.com/NSF-Simons-CosmicAI-Institute/manna
cd manna && docker build -t manna:dev . && docker run --rm -p 8000:8000 manna:dev
From the MCP Registry¶
MANNA is listed in the official MCP Registry
as io.github.NSF-Simons-CosmicAI-Institute/manna. Look it up with:
curl -s "https://registry.modelcontextprotocol.io/v0.1/servers?search=manna"
The record points at the PyPI package and resolves to the launch command
uvx manna-mcp --stdio. A registry-aware client can install MANNA from that
record directly; the pages that follow show the same configuration by hand for
Claude Code, Claude Desktop, and Jupyter AI.
Verify¶
manna & # HTTP mode
curl -s http://localhost:8000/health
# {"status":"ok","version":"0.11.0"} # your installed version
npx -y @modelcontextprotocol/inspector --cli http://localhost:8000/mcp --method tools/list
The Inspector call lists every tool, beginning with list_archives; the
Tool reference page is generated from the same list. The endpoint
answers at both /mcp/ and /mcp.
Tool names before 0.9.0¶
0.9.0 dropped the vo_ prefix for verb-first, descriptive names. A client
pinned to the old names must update.
Before 0.9.0 |
Now |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|