MCP Jupyter Server
Provides tools for inspecting and editing Jupyter notebooks, including reading cells, adding/updating/deleting cells, moving cells between positions, converting cell types, and retrieving notebook statistics and metadata.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Jupyter Server list the cells in my analysis.ipynb notebook"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP JUPYTER Server
Model Context Protocol server that exposes basic tooling for inspecting and editing Jupyter notebooks (.ipynb) from any MCP-compatible client.
Features
Read notebook cells with optional filtering by cell type.
Add, update, or delete cells while preserving notebook metadata.
Get quick notebook stats (cell counts, execution metadata, format version).
Runs over stdio so it can be wired directly into MCP clients such as Claude Desktop.
Related MCP server: mcp-server-jupyter
Requirements
Node.js 18 or newer.
Access to the
.ipynbfiles you want to work with (local file paths).
Quick start (npx)
Run directly from the repo/package without cloning:
npx -y mcp-jupyterInstallation (local checkout)
npm installExample MCP client entry
Point your client at the built entrypoint (adjust the path to your checkout):
{
"mcpServers": {
"jupyter": {
"command": "npx",
"args": [
"-y",
"mcp-jupyter"
],
"cmd": ""
}
},
"$version": 2
}Available tools
Position-Based Operations
list_cells- List all cells with indices and type informationget_cell_source- Get source code of specific cells by indexedit_cell_source- Edit cell content by indexinsert_cell- Insert new cells at specific positionsdelete_cell- Delete cells by index with automatic reindexing
Enhanced Operations
move_cell- Move cells between positionsconvert_cell_type- Convert between code/markdown/raw cellsbulk_edit_cells- Perform multiple operations in a single call
Available Tools
13 toolsadd_cellC
Add a new cell to the notebook
Inputs: notebook_path (required), source, cell_type, position.
bulk_edit_cellsC
Perform bulk operations on multiple cells
Inputs: notebook_path (required), operations (required).
convert_cell_typeC
Convert a cell from one type to another
Inputs: notebook_path (required), cell_index (required), new_type (required).
delete_cellC
Delete a cell by index
Inputs: notebook_path (required), cell_index (required).
edit_cellC
Edit the source code of a specific cell by ID or index
Inputs: notebook_path (required), cell_id (required), new_source (required).
edit_cell_sourceC
Edit the source code of a specific cell by index
Inputs: notebook_path (required), cell_index (required), new_source (required).
execute_cellC
Execute a specific cell in the notebook using a Jupyter kernel
Inputs: notebook_path (required), cell_id (required).
get_cell_sourceC
Get the source code of a specific cell by index
Inputs: notebook_path (required), cell_index (required).
insert_cellC
Insert a new cell at a specific position
Inputs: notebook_path (required), position (required), cell_type, source.
list_cellsA
List all cells in a Jupyter notebook with their indices and types
Inputs: notebook_path (required).
move_cellC
Move a cell from one position to another
Inputs: notebook_path (required), from_index (required), to_index (required).
read_notebook_with_outputsC
Read a Jupyter notebook including cell outputs
Inputs: notebook_path (required).
trigger_vscode_reloadC
Trigger VS Code to reload the notebook file
Inputs: notebook_path (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
Most tools have distinct purposes for cell operations, but there is notable overlap between 'edit_cell' and 'edit_cell_source' which both edit cell source code, and between 'add_cell' and 'insert_cell' which both add cells. This could cause confusion for an agent trying to select the right tool.
Tool names follow a consistent verb_noun pattern (e.g., add_cell, delete_cell, execute_cell) with clear actions and targets. The only deviation is 'read_notebook_with_outputs' which is longer but still follows the pattern, and 'trigger_vscode_reload' which uses a verb_noun_noun structure but remains readable.
With 13 tools, this server is well-scoped for managing Jupyter notebooks, covering a comprehensive set of operations like adding, editing, executing, and listing cells. Each tool appears to serve a specific function without unnecessary bloat.
The toolset provides strong coverage for cell-level operations (CRUD, execution, type conversion) and notebook reading, but lacks tools for higher-level notebook management such as saving, creating new notebooks, or kernel control. Minor gaps exist, but agents can likely work around them.
Maintenance
Related MCP Connectors
Create, validate, edit, export (markdown/svg/png/mermaid), and search JSON Canvas files.
Formula-backed WorkPaper tools for workbook readback, input edits, and JSON persistence.
Manage files and folders directly from your workspace. Read and write files, list directories, cre…
Read, analyze, and safely edit Microsoft Project MPP files.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides tools for interacting with Jupyter notebooks, allowing users to read, add, and execute notebook cells. It supports full notebook execution and metadata retrieval through the FastMCP framework.52-
- AlicenseAqualityDmaintenanceEnables programmatic interaction with Jupyter notebooks, allowing reading, editing, and executing cells via Claude.640 PyPI34MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to safely and structurally edit Jupyter Notebook (.ipynb) files by providing tools to read, edit, add, and delete cells without corrupting the JSON structure.1-
- AlicenseAqualityDmaintenanceEnables AI assistants to read, edit, and execute Jupyter notebook files (.ipynb) with live kernel output, without requiring JupyterLab.17MIT