Integrating-the-Jupyter-server-with-claude-desktop-uisng-the-powerful-model-context-protocol

Integrating-the-Jupyter-server-with-claude-desktop-uisng-the-powerful-model-context-protocol

0

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 (version 4.4.1)
  • jupyter-collaboration (version 4.0.2)
  • ipykernel
  • datalayer_pycrdt (version 0.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 and TOKEN match your JupyterLab setup. NOTEBOOK_PATH is relative to the directory where JupyterLab is started.


🛠 Available Tools

ToolDescriptionInput ParameterOutput
add_execute_code_cellAdd and execute a code cell in a notebookcell_content (str)Cell output
add_markdown_cellAdd a markdown cell in a notebookcell_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