Jupyter AI¶
Jupyter AI v3 lets an ACP agent (a “persona” such as Claude Code, Gemini CLI, or Codex) answer in the JupyterLab chat panel and call MCP tools. MANNA plugs in as an HTTP MCP server. The persona is what calls the tools, so a persona must be installed and authenticated; registering MANNA alone only makes its tools available.
1. Run MANNA over HTTP¶
uvx manna-mcp # http://localhost:8000/mcp/
or any of the routes in Installation.
2. Register it with Jupyter AI¶
Jupyter AI reads .jupyter/mcp_settings.json by walking up from the chat
file’s directory to the JupyterLab root directory, so put the file inside the
tree JupyterLab serves, not in JUPYTER_CONFIG_DIR:
mkdir -p <jupyterlab-root>/.jupyter
<jupyterlab-root>/.jupyter/mcp_settings.json:
{
"mcp_servers": [
{
"type": "http",
"name": "manna",
"url": "http://localhost:8000/mcp/"
}
]
}
The endpoint answers at both /mcp/ and /mcp.
3. Ask¶
Open a chat, @-mention the persona (@Claude in a stock install), and try:
Use the MANNA tools to list the available archives, then resolve the coordinates of M51.
The persona should call list_archives and resolve_target_name.
Large results land in your kernel¶
MANNA never stores result bytes. When a query result is too large to return
inline, the tool returns a fetch_recipe — a short pyvo snippet — and the
persona is expected to write it into a notebook cell and run it, which loads
the data as table in your kernel (Large results). A persona
with no notebook-editing tools can still use the discovery tools but can only
hand you the recipe to run yourself.