Integrating-the-Jupyter-server-with-claude-desktop-uisng-the-powerful-model-context-protocol
This project is an MCP server implementation designed to enable real-time collaboration with Jupyter notebooks. It integrates smoothly with Claude Desktop and supports multiple operating systems.
Jupyter MCP Server for Claude Desktop
An implementation of the Model Context Protocol (MCP) server that enables interaction with Jupyter notebooks running in any JupyterLab environment, including local instances. Designed for seamless integration with Claude Desktop across macOS, Windows, and Linux.
🚀 Features
- Provides an MCP server interface for Jupyter notebooks.
- Supports real-time collaboration via JupyterLab.
- Integrates smoothly with Claude Desktop (macOS, Windows, Linux).
- Programmatically add and execute code or markdown cells in notebooks.
📦 Getting Started
✅ Prerequisites
Ensure you have the following installed:
JupyterLab
(version4.4.1
)jupyter-collaboration
(version4.0.2
)ipykernel
datalayer_pycrdt
(version0.12.15
)
🛠 Installation
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 ipykernel
pip uninstall -y pycrdt datalayer_pycrdt
pip install datalayer_pycrdt==0.12.15
▶️ Starting JupyterLab
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0
Alternatively, you can use:
make jupyterlab
--ip 0.0.0.0
allows access from the MCP server running inside Docker.
💻 Integration with Claude Desktop
Claude Desktop is available on macOS and Windows. Linux users can use an unofficial build script via Nix.
🔧 Configuration (macOS / Windows)
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run", "-i", "--rm", "-e", "SERVER_URL", "-e", "TOKEN", "-e", "NOTEBOOK_PATH",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://host.docker.internal:8888",
"TOKEN": "MY_TOKEN",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}
🔧 Configuration (Linux)
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run", "-i", "--rm", "-e", "SERVER_URL", "-e", "TOKEN", "-e", "NOTEBOOK_PATH", "--network=host",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://localhost:8888",
"TOKEN": "MY_TOKEN",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}
Make sure
SERVER_URL
andTOKEN
match your JupyterLab setup.NOTEBOOK_PATH
is relative to the directory where JupyterLab is started.
🛠 Available Tools
Tool | Description | Input Parameter | Output |
---|---|---|---|
add_execute_code_cell | Add and execute a code cell in a notebook | cell_content (str) | Cell output |
add_markdown_cell | Add a markdown cell in a notebook | cell_content (str) | Success message |
🐳 Building the Docker Image
make build-docker
📦 Installation via Smithery
npx -y @smithery/cli install @datalayer/jupyter-mcp-server --client claude
📄 License
See the repository for license details.
🔗 Resources
- Official Repository: datalayer/jupyter-mcp-server
- MCP Protocol Documentation: modelcontextprotocol.io