mcp-server-jupyter
Manages and interacts with Jupyter notebooks programmatically, providing tools to read, add, edit, and execute cells.
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-server-jupyter Read the notebook at /home/user/analysis.ipynb and show its outputs."
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-server-jupyter
An MCP server for managing and interacting with Jupyter notebooks programmatically.

Components
Tools
The server provides six tools for notebook manipulation:
read_notebook_with_outputs: Read a notebook's content including cell outputsRequired:
notebook_path(string)
read_notebook_source_only: Read notebook content without outputsRequired:
notebook_path(string)Use when size limitations prevent reading full notebook with outputs
read_output_of_cell: Read output of a specific cellRequired:
notebook_path(string)cell_id(string)
add_cell: Add new cell to notebookRequired:
notebook_path(string)source(string)
Optional:
cell_type(string): "code" or "markdown"position(integer): insertion index (-1 to append)
edit_cell: Modify existing cell contentRequired:
notebook_path(string)cell_id(string): Unique ID of the cell to editsource(string)
execute_cell: Execute a specific cell and return its outputRequired:
notebook_path(string)cell_id(string)
Useful for verifying cell execution and output
Related MCP server: JupyterMCP
Usage with Claude Desktop
Step1: Start JupyterLab or Jupyter Notebook
By using uv to run Jupyter notebooks it's much easier to manage venv and package installations.
Follow uv jupyter docummentation for more details.
uv venv --seed
source .venv/bin/activate
uv pip install jupyterlab
.venv/bin/jupyter lab
NOTE: this environment should be used as UV_PROJECT_ENVIRONMENT env variable in MCP server (next step). Run in the same folder where Jupyter started.
echo $(pwd)/.venv
Step2: Configure Claude Desctop Add this configuration to your Claude Desktop config file:
PyPi package:
// ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"Jupyter-notebook-manager": {
"command": "uv",
"args": ["run", "--with", "mcp-server-jupyter", "mcp-server-jupyter"],
"env": {
"UV_PROJECT_ENVIRONMENT": "/path/to/venv_for_jupyter/.venv"
}
}
}
}Git repo fork
// ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"Jupyter-notebook-manager": {
"command": "uv",
"args": [
"run",
"--directory",
"/Users/inna/mcp-server-jupyter/src/mcp_server_jupyter",
"mcp-server-jupyter"
],
"env": {
"UV_PROJECT_ENVIRONMENT": "/path/to/venv_for_jupyter/.venv"
}
}
}
}Step 3: Open Notebook & Claude Chat
Open or create a notebook in JupyterLab/Jupyter Notebook
Get the full path to your notebook:
In JupyterLab: Right-click on the notebook in the file browser → "Copy Path"
In Jupyter Notebook: Copy the path from the URL (modify to full system path)
In Claude Desktop chat:
Always use the full path to the notebook when calling tools
Example:
/Users/username/projects/my_notebook.ipynb
Important Notes:
After any modifications through Claude (add_cell, edit_cell):
Reload the notebook page in JupyterLab/Jupyter Notebook
Current version does not support automatic reload
Keep JupyterLab/Jupyter Notebook instance running while working with Claude
License
This project is licensed under the MIT License. See the LICENSE file for details.
Available Tools
6 toolsadd_cellB
Add a new cell to the notebook at the specified position.
Inputs: source (required), notebook_path (required), position, cell_type.
edit_cellC
Edit the source code of an existing cell in the notebook.
Inputs: source (required), cell_id (required), notebook_path (required).
execute_cellA
Executes a specific cell in a notebook and returns its output. Useful to check that the cell runs without errors as well as produces the desired output.
Inputs: cell_id (required), notebook_path (required).
read_notebook_source_onlyA
Read the current version of the notebook at notebook_path without outputs. Use this when size limitations prevent reading the full notebook with outputs. Individual cell outputs can be retrieved using the read_output_of_cell tool.
Inputs: notebook_path (required).
read_notebook_with_outputsA
Read the current version of the notebook at notebook_path, including cell outputs. Use this before modifying a notebook to understand its existing content and determine if changes are needed.
Inputs: notebook_path (required).
read_output_of_cellB
Read the output of a specific cell in a notebook, by cell_id.
Inputs: cell_id (required), 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 6 tools
Each tool targets a distinct operation: reading the full notebook with or without outputs, reading a specific cell's output, executing a cell, adding a cell, and editing a cell. The two read-notebook variants are clearly differentiated by their descriptions and use cases, so there is no real ambiguity.
All tool names follow a consistent snake_case verb_noun pattern (e.g., read_notebook_with_outputs, execute_cell, add_cell). The three read_* variants are slightly longer but still adhere to the same convention, and the overall style is uniform.
With six tools, the server is well-scoped for the purpose of reading, executing, and modifying Jupyter notebooks. The number is neither too thin nor excessive, and each tool covers a distinct aspect of the core workflow.
The tool surface covers the primary notebook operations: reading (with/without outputs, specific cell output), executing cells, adding cells, and editing cells. A notable gap is the absence of a delete_cell tool, but this does not critically hinder common workflows and can be worked around by editing cell content.
Maintenance
Related MCP Connectors
Work on your own computers from Claude or ChatGPT: run commands, edit and search files.
Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Read, edit, publish, and preview your pepita websites from Claude.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables Claude Code to interact with Jupyter notebooks, perform semantic search over knowledge files, and manage research projects.334MIT
- AlicenseAqualityDmaintenanceConnects Jupyter Notebook to Claude AI for direct notebook control and code execution.11128MIT
- AlicenseAqualityDmaintenanceEnables AI agents to create, read, edit, and execute Jupyter notebook cells, manage kernels, and connect to remote Jupyter servers.2124 PyPIMIT
- 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-