Jupyterlab Collab MCP logo

Jupyterlab Collab MCP

Connects AI assistants to live JupyterLab notebooks for cell editing, execution, search, collaboration, and file-based workflows.

Install Jupyterlab Collab MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "jupyterlab-collab-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "jupyterlab-collab-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 44 tools correctly (2d ago).

Overview

jupyterlab-collab-mcp MCP server connects AI assistants to JupyterLab notebooks over stdio and y-websocket. It exposes 42 tools for reading, editing, executing, searching, comparing, tagging, locking, and snapshotting notebook cells. Cell IDs provide stable references while edits synchronize with the live JupyterLab interface. Use it when an agent needs to work with notebooks interactively, or handle most notebook file operations without an active JupyterLab connection.

Use cases

  • Read and edit notebook cells from an AI coding assistant
  • Execute cells through a connected JupyterLab kernel
  • Search and compare notebook content
  • Coordinate edits across multiple agents with cell locks
  • Modify .ipynb files without an active JupyterLab session

Key features

  • 42 notebook-focused MCP tools
  • Real-time synchronization through y-websocket
  • Stable cell ID addressing
  • Cell locking and change attribution
  • Context filtering for outputs and images
  • Direct .ipynb file operations

Tools44

What Jupyterlab Collab MCP lets your agent do. Expand a tool for its parameters.

Verified live~6.3k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

What it can do

From the 44 tools this server returned when we ran it.

Runs commands · 4Can delete or modify data · 2Makes network requests · 1Read-only tools · 38
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceSigned build
Package age257 days
Maintainers1

Observed 2026-10-27 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 3d ago via OSV.dev · jupyterlab-collab-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars7Stargazers on the source repository.
npm downloads385Package downloads in the last 30 days.
Last commit2d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed44Callable tools this server registers over MCP.

How Jupyterlab Collab MCP works

What jupyterlab-collab-mcp does

jupyterlab-collab-mcp connects an MCP-compatible AI assistant to Jupyter notebooks. Its primary workflow uses a stdio connection between the assistant and the MCP process, followed by a y-websocket connection to JupyterLab. Changes made through the assistant can appear in the open JupyterLab interface through the built-in collaboration support.

The server is designed for notebook-specific work that ordinary file editing does not cover well. It can address cells by stable IDs, work with cell content and outputs, run code through a connected kernel, and support collaboration-aware operations such as locking, change tracking, and agent attribution.

How it works

Start JupyterLab with jlabx, or use jupyter lab when jupyter-collaboration is already installed. After adding the server to an MCP client, provide the JupyterLab URL, including its token when required, so the assistant can connect to the live workspace.

A live JupyterLab connection enables kernel operations and real-time synchronization. Without that connection, most tools can still read and write .ipynb files directly. This file-based mode does not provide kernel operations.

The server uses JupyterLab's built-in jupyter-collaboration functionality rather than requiring a separate JupyterLab extension from this project. jlabx is an optional launcher that starts JupyterLab with collaboration and other listed extensions.

Setup and configuration

The recommended installation uses Node.js 18 or newer and npx:

Terminal
claude mcp add -s user jupyter -- npx jupyterlab-collab-mcp

The package can also run through uvx deno -A npm:jupyterlab-collab-mcp when Node.js is not installed. For development, clone the repository, run npm install && npm run build, and register node $PWD/dist/index.js as the MCP command.

A typical session starts JupyterLab, then asks the assistant to connect to a URL such as http://localhost:8888/lab?token=.... The project documents Claude Code commands for registering and reconnecting the server. When developing locally, rebuild the project and reconnect the MCP server after changing tool schemas because definitions are cached at startup.

Tools and capabilities

The tool set includes 42 operations covering:

  • Reading and editing notebook cells
  • Executing cells when a JupyterLab connection and kernel are available
  • Searching notebook content and inspecting differences
  • Applying cell tags and creating snapshots
  • Locking cells for multi-agent workflows
  • Tracking changes and attributing edits to agents
  • Filtering by cell type, omitting outputs, and limiting image data to reduce context use

Stable cell ID addressing helps operations continue to refer to the intended cells after insertions or deletions. Collaboration features are intended for workflows where more than one agent or user may modify a notebook.

Limitations and notes

Kernel execution depends on a live JupyterLab connection. Direct .ipynb file access remains available for most other operations, but it cannot execute notebook code in that mode. The server communicates with JupyterLab through y-websocket and relies on JupyterLab collaboration support being available.

The repository is licensed under BSD-3-Clause. Its development workflow uses TypeScript compilation, Vitest tests, and a separate integration test against a running JupyterLab instance.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Jupyterlab Collab MCP

jupyterlab-collab-mcp is an MCP server that connects AI assistants to JupyterLab notebooks through stdio and y-websocket. Its tools let agents read, edit, search, compare, tag, lock, snapshot, and execute notebook cells, with execution requiring a live JupyterLab connection and kernel.

Install it with Node.js 18 or newer by registering `npx jupyterlab-collab-mcp` as the MCP command. The documented Claude Code command is `claude mcp add -s user jupyter -- npx jupyterlab-collab-mcp`. You can also run the package through Deno with `uvx` or build it from source.

Start JupyterLab with `jlabx` or `jupyter lab` with collaboration support, then give the assistant the JupyterLab URL and token, such as `http://localhost:8888/lab?token=...`. A live connection enables synchronization and kernel operations.

Yes, most tools can read and write `.ipynb` files without a JupyterLab connection. Kernel operations are unavailable in this file-based mode, so executing notebook code requires a connected JupyterLab session.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewJupyterlab Collab MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/jupyterlab-collab-mcp?style=directory)](https://allmcps.com/mcp/jupyterlab-collab-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/jupyterlab-collab-mcp"><img src="https://allmcps.com/api/badge/jupyterlab-collab-mcp?style=directory" alt="Jupyterlab Collab MCP on AllMCPs" /></a>