Skip to main content
Glama
am-3

universal-notebook-mcp

by am-3

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WORKSPACE_ROOTYesThe absolute path to the directory containing notebooks (passed via --workspace-root)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
notebook_list_cellsA

List every cell in a notebook with its index, type, tags, and first line.

Call this first to understand the structure before reading or editing specific cells.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root.

notebook_read_cellA

Read the full source, type, tags, and saved outputs of a single cell.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. cell_index: Zero-based index of the cell (use notebook_list_cells to find it).

notebook_read_cell_outputA

Read the saved outputs of a code cell from the last time it was run.

Returns stream text, execute_result data, display_data, or error tracebacks. Note: outputs are empty until the cell has been executed at least once.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. cell_index: Zero-based index of a code cell.

notebook_read_metadataA

Read the top-level notebook metadata (kernelspec, language_info, etc.).

Args: notebook_path: Path to the .ipynb file, relative to the workspace root.

notebook_list_stagesA

List every pipeline stage tag present across the notebook's cells.

Pipeline stages are cell tags set in JupyterLab via View → Cell Toolbar → Tags (e.g. 'preprocess', 'train', 'evaluate'). Use notebook_run_pipeline to execute all cells in a named stage.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root.

notebook_edit_cellA

Replace the source of a cell.

A timestamped .checkpoint_*.ipynb backup is written before the change unless checkpoint=false.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. cell_index: Zero-based index of the cell to edit. source: New source code or markdown text. checkpoint: Write a backup before editing (default: true).

notebook_insert_cellA

Insert a new cell at the given position.

Cells at index and above are shifted down. To append after the last cell, pass index equal to the total number of cells.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. index: Position to insert at (0 = before first cell). source: Source code or text for the new cell. cell_type: 'code', 'markdown', or 'raw' (default: 'code'). checkpoint: Write a backup before editing (default: true).

notebook_delete_cellA

Delete the cell at the given index.

A timestamped backup is written first unless checkpoint=false.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. cell_index: Zero-based index of the cell to delete. checkpoint: Write a backup before deleting (default: true).

notebook_edit_cell_metadataA

Merge a JSON object into a cell's metadata.

Useful for adding or removing pipeline stage tags: updates = '{"tags": ["preprocess"]}'

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. cell_index: Zero-based index of the target cell. updates: JSON string with metadata keys to merge in. checkpoint: Write a backup before editing (default: true).

notebook_edit_metadataA

Merge a JSON object into the top-level notebook metadata.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. updates: JSON string with top-level metadata keys to merge in. checkpoint: Write a backup before editing (default: true).

notebook_run_cellA

Execute a single code cell and return its outputs.

Kernel state (variables, imports) is preserved between calls on the same notebook, so cells can depend on earlier ones.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. cell_index: Zero-based index of the cell to run. kernel_name: Kernel to use (e.g. 'python3', 'myenv'). Defaults to 'python3'. Run notebook_list_kernels to see options. timeout: Seconds to wait for the cell to finish (default: 60). save_outputs: Write outputs back to the .ipynb file (default: true).

notebook_run_rangeA

Execute cells from start to end (inclusive) and return all outputs.

Execution stops at the first error by default (stop_on_error=true).

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. start: First cell index to run (inclusive). end: Last cell index to run (inclusive). kernel_name: Kernel to use (default: 'python3'). timeout: Per-cell timeout in seconds (default: 60). stop_on_error: Stop at first failing cell (default: true). save_outputs: Write outputs back to the .ipynb file (default: true).

notebook_run_allA

Execute every cell in the notebook in order and return all outputs.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. kernel_name: Kernel to use (default: 'python3'). timeout: Per-cell timeout in seconds (default: 60). stop_on_error: Stop at first failing cell (default: true). save_outputs: Write outputs back to the .ipynb file (default: true).

notebook_run_pipelineA

Run all cells tagged with a pipeline stage, in notebook order.

Pipeline stage tags are set per-cell in JupyterLab: View → Cell Toolbar → Tags (add e.g. 'preprocess', 'train', 'evaluate')

Use notebook_list_stages to see what stages exist in a notebook.

Args: notebook_path: Path to the .ipynb file, relative to the workspace root. stage: Tag name of the stage to run (e.g. 'preprocess'). kernel_name: Kernel to use (default: 'python3'). timeout: Per-cell timeout in seconds (default: 60). stop_on_error: Stop at first failing cell (default: true). save_outputs: Write outputs back to the .ipynb file (default: true).

notebook_restart_kernelA

Restart the kernel for a notebook, clearing all variables and imports.

The kernel process stays alive — only its state is reset, so subsequent run_cell calls start from a clean slate without the startup overhead of a fresh kernel.

Args: notebook_path: Path to the .ipynb file whose kernel should be restarted.

notebook_list_kernelsA

List every Jupyter kernel spec installed on this machine.

Returns a dict of {kernel_name: display_name}. Use the kernel_name value as the kernel_name argument to execution tools.

If you get ModuleNotFoundError when running a cell, the kernel may not have your packages installed. Install the current virtualenv as a kernel: python -m ipykernel install --user --name myenv

notebook_list_active_kernelsA

List notebooks that currently have a running kernel in this session.

Returns the absolute resolved paths of notebooks with live kernels.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/am-3/jupyter-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server