mcp-server-jupyter
MCP server for Jupyter Notebooks and JupyterLab
Documentation
mcp-server-jupyter
An MCP server for managing and interacting with Jupyter notebooks programmatically.

Components
Tools
The server provides six tools for notebook manipulation:
1. `read_notebook_with_outputs`: Read a notebook's content including cell outputs
2. `read_notebook_source_only`: Read notebook content without outputs
3. `read_output_of_cell`: Read output of a specific cell
4. `add_cell`: Add new cell to notebook
5. `edit_cell`: Modify existing cell content
6. `execute_cell`: Execute a specific cell and return its output
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 labNOTE: 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)/.venvStep2: 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.
Frequently asked questions
What is mcp-server-jupyter?
mcp-server-jupyter is MCP server for Jupyter Notebooks and JupyterLab
How do I install mcp-server-jupyter?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-server-jupyter open source?
Yes — it is hosted on GitHub at https://github.com/ihrpr/mcp-server-jupyter and has 30 stars.
Related MCP tools
Damn Vulnerable MCP Server Python-based implementation. Trusted by 1200+ developers. Trusted by 1200+ developers. Trusted by 1200+ developers.
A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases Python-based implementation. Trusted by 900+ developers.
Query MCP enables end-to-end management of Supabase via chat interface: read & write query executions, management API support, automatic migration versioning...
Model Context Protocol with Neo4j Python-based implementation. Trusted by 700+ developers. Trusted by 700+ developers. Trusted by 700+ developers.
An MCP server that provides control over Android devices via adb Python-based implementation. Trusted by 500+ developers.
A Model Context Protocol (MCP) server for PostgreSQL databases with enhanced capabilities for AI agents. Python-based implementation.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP