Robust new jupyter server

by kshitijdesai99

302 downloads
Not rated
GitHub

About

I was facing issues with https://github.com/datalayer/jupyter-mcp-server

Details

Author
kshitijdesai99
Downloads
302
Categories
Search

- Docker-based client for easy deployment
- Supports multi-collaborative Jupyter notebooks
- Integrates with Claude Desktop via MCP
- Token-based authentication with Jupyter server
- Uses jupyter-collaboration and pycrdt for real-time sync

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Robust new jupyter server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Set up a Python 3.12.10 environment, install dependencies (jupyterlab, jupyter-collaboration, etc.), start a Jupyter server with a token, build the Docker image named notebook-client, and add the appropriate configuration to your Claude Desktop config.json. Key commands include jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0 and docker build -t notebook-client ..

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "robust new jupyter server": {
            "jupyter_mcp_server_kshitij": {
                "command": "uv",
                "args": [
                    "pip",
                    "install",
                    "jupyterlab",
                    "jupyter-collaboration",
                    "ipykernel",
                    "pycrdt"
                ]
            }
        }
    }
}

McpServers

{
    "jupyter_mcp_server_kshitij": {
        "command": "uv",
        "args": [
            "pip",
            "install",
            "jupyterlab",
            "jupyter-collaboration",
            "ipykernel",
            "pycrdt"
        ]
    }
}

Jupyter MCP Server Client

This repository contains a Docker-based client for connecting to a Jupyter server with multi-collaborative protocol support.

Prerequisites

- Python 3.12.10
- Docker
- Git

Setup Instructions

1. Set Up Python Environment

# Create and activate virtual environment
python3.12 -m venv env
source env/bin/activate  # Windows: env\Scripts\activate

Install package manager

pip install uv

Install required packages

uv pip install jupyterlab jupyter-collaboration ipykernel pycrdt uv pip install jupyter-nbmodel-client jupyter_kernel_client

Fix dependencies (required for compatibility)

pip uninstall -y jupyter_server_ydoc pycrdt uv pip install jupyter_server_ydoc pycrdt

2. Create Your Notebook

# Clone the repository -> Required
git clone https://github.com/kshitijdesai99/jupyter_mcp_server_kshitij.git
cd jupyter_mcp_server_kshitij
touch notebook.ipynb

3. Start Jupyter Server

jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0

> Note: Replace MY_TOKEN with your preferred authentication token or just keep it as it is.

4. Create a new notebook in case you get tornado.websocket.WebSocketClosedError (for Mac)

just delete the notebook.ipynb and then inside the jupyter server click on create a new notebook and rename it to notebook.ipynb

Docker Instructions

Build the Docker Image

docker build -t notebook-client .

Run the Client Container --> just for testing not required for mcp

docker run \
  -e NOTEBOOK_PATH="notebook.ipynb" \
  -e SERVER_URL="http://host.docker.internal:8888" \
  -e TOKEN="MY_TOKEN" \
  notebook-client

> Note: When running from a different directory, use the full path to your notebook file.

Claude Desktop Integration

Add this configuration to your Claude desktop config.json file:

"jupyter": {
    "command": "docker",
    "args": [
      "run",
      "--rm",
      "-i",
      "-e", "NOTEBOOK_PATH=notebook.ipynb",
      "-e", "SERVER_URL=http://host.docker.internal:8888",
      "-e", "TOKEN=MY_TOKEN",
      "notebook-client"
    ]
}

> Important: no need to update notebook path

Troubleshooting

- Ensure the Jupyter server is running before connecting with the client
- Verify that your token matches between the server and client configuration
- For Windows paths in Docker, use double backslashes as shown in the example

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.