universal-notebook-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WORKSPACE_ROOT | Yes | The absolute path to the directory containing notebooks (passed via --workspace-root) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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