Claude Code¶
Claude Code talks to MANNA over stdio (Claude Code launches the server) or over HTTP (you run the server yourself).
Stdio (recommended for a laptop)¶
claude mcp add manna -- uvx manna-mcp --stdio
Options worth knowing:
--scope usermakes the server available in every project;--scope projectwrites it to.mcp.jsonin the repo so teammates get it; the default (local) is this project only, for you.--env MANNA_ARCHIVES=datalab,alma(before the name) narrows the archives that make curated claims;--env MANNA_INLINE_ROW_LIMIT=2000 --env MANNA_INLINE_BYTE_LIMIT=262144raises the inline caps, which suits Claude’s context window (Configuration).If Claude Code reports the server failed to start, the first
uvxresolve is probably still downloading astropy. Runuvx manna-mcp --stdioonce in a terminal (Ctrl-C when it idles), then retry, or raise the startup timeout withMCP_TIMEOUT=60000 claude.
The equivalent .mcp.json entry:
{
"mcpServers": {
"manna": {
"command": "uvx",
"args": ["manna-mcp", "--stdio"],
"env": {"MANNA_INLINE_ROW_LIMIT": "2000", "MANNA_INLINE_BYTE_LIMIT": "262144"}
}
}
}
Verify¶
claude mcp list # manna: ... - ✓ Connected
claude mcp get manna
Inside a session, /mcp shows connection status and the tool count (15).
Tools appear to the model as mcp__manna__<tool>, for example
mcp__manna__run_adql_query.
First prompt¶
Which archives do you know about, and what are the coordinates of M87?
Claude should call list_archives and resolve_target_name. Then try a data
question:
Using ALMA’s obscore table, how many observations lie within 0.1 degrees of M87? Show the ADQL you ran.
See Your first query for what a good answer looks like and Large results for what happens when a result is too big to return inline.
Remove¶
claude mcp remove manna