Server profile

Jupyter MCP Server

Jupyter MCP Server lets AI assistants inspect, edit, and execute notebooks with live output feedback. It supports multiple notebooks, multimodal results, JupyterLab commands, and optional execution tracing.

Server facts

Jupyter MCP Server

Tech

Runtime / language
pythonPython
Transports
stdio
Remote available
No
Authentication
Not specified

Activity

GitHub stars
1,304
Last commit
Data as of

Tags

  • Code Execution
  • Data Science
  • Jupyter
  • Notebooks
  • Python

Overview

Jupyter MCP Server connects AI assistants to notebooks for live inspection, editing, and execution. It can enumerate files and kernels, open or create notebooks, switch between them, and restart individual notebook kernels. Cell tools cover reading metadata and outputs, inserting or moving cells, replacing source, applying targeted edits, and running code. Execution feedback lets an assistant respond to failed cells, while supported output types include text, plots, and images. JupyterLab integration adds commands such as running every cell and inspecting the selected cell, with configuration available to expose further commands.

The Python project supports standard input/output and documents Streamable HTTP and Jupyter extension deployments. Its local quick start prepares JupyterLab with collaboration-related packages, starts a token-protected Jupyter service, and launches the MCP process through uvx or Docker. The README additionally flags MCP_TOKEN as required in client configuration from version 1.0.0, even though the abbreviated local example shows the Jupyter connection variables. Document storage and kernel execution can use separate URLs and credentials for more complex deployments. Images require a client and model that can handle multimodal content, and image output can be disabled. A hook system integrates OpenTelemetry for tool and kernel tracing. The README recommends breaking large data-science workflows into smaller steps and supplying clear dataset and environment context.

Install & configure

Requirements

  • Python
  • uv 0.6.14 or later
  • A running authenticated Jupyter service
  • JupyterLab collaboration setup as documented
  • An MCP-compatible client
Documented launch / install command
uvx jupyter-mcp-server@latest

The environment setup includes ipykernel, pycrdt, and jupyter-mcp-tools, with JupyterLab pinned to 4.4.1 and jupyter-collaboration to 4.0.2. It separately warns that MCP_TOKEN is required from v1.0.0; consult its linked provider setup for that token's configuration. Image output needs compatible clients and models.

Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Desktop configuration
{
  "mcpServers": {
    "jupyter-mcp-server": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "<URL of the running Jupyter service>",
        "JUPYTER_TOKEN": "<Jupyter authentication token>",
        "ALLOW_IMG_OUTPUT": "<true for image-capable clients, otherwise false>",
        "MCP_TOKEN": "<MCP authentication token required by the README's version 1.0.0 notice>"
      }
    }
  }
}

Read the Claude Desktop setup guide

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.

Cursor configuration
{
  "mcpServers": {
    "jupyter-mcp-server": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "<URL of the running Jupyter service>",
        "JUPYTER_TOKEN": "<Jupyter authentication token>",
        "ALLOW_IMG_OUTPUT": "<true for image-capable clients, otherwise false>",
        "MCP_TOKEN": "<MCP authentication token required by the README's version 1.0.0 notice>"
      }
    }
  }
}

Read the Cursor setup guide

Config file · Workspace: .vscode/mcp.json

For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.

VS Code configuration
{
  "servers": {
    "jupyter-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "<URL of the running Jupyter service>",
        "JUPYTER_TOKEN": "<Jupyter authentication token>",
        "ALLOW_IMG_OUTPUT": "<true for image-capable clients, otherwise false>",
        "MCP_TOKEN": "<MCP authentication token required by the README's version 1.0.0 notice>"
      }
    }
  }
}

Read the VS Code setup guide

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.

Windsurf configuration
{
  "mcpServers": {
    "jupyter-mcp-server": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "<URL of the running Jupyter service>",
        "JUPYTER_TOKEN": "<Jupyter authentication token>",
        "ALLOW_IMG_OUTPUT": "<true for image-capable clients, otherwise false>",
        "MCP_TOKEN": "<MCP authentication token required by the README's version 1.0.0 notice>"
      }
    }
  }
}

Read the Windsurf setup guide

Config file · Project scope: .mcp.json at the repository root

The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Code configuration
{
  "mcpServers": {
    "jupyter-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ],
      "env": {
        "JUPYTER_URL": "<URL of the running Jupyter service>",
        "JUPYTER_TOKEN": "<Jupyter authentication token>",
        "ALLOW_IMG_OUTPUT": "<true for image-capable clients, otherwise false>",
        "MCP_TOKEN": "<MCP authentication token required by the README's version 1.0.0 notice>"
      }
    }
  }
}

Read the Claude Code setup guide

Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.

Tools

Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.

ToolWhat it does
list_filesEnumerate directories and files exposed by the Jupyter service.
list_kernelsInspect available kernels and running kernel sessions.
connect_to_jupyterChange Jupyter connections without restarting; unavailable in extension mode.
use_notebookOpen, create, or switch to a notebook.
list_notebooksList available notebooks and their current status.
restart_notebookRestart the kernel for a managed notebook.
unuse_notebookDisconnect a notebook and free its associated resources.
read_notebookRead notebook cell sources with brief or detailed output.
read_cellInspect one cell's source, metadata, and outputs.
insert_cellAdd a code or Markdown cell at a chosen position.
delete_cellRemove a cell by index.
move_cellReposition a cell within its notebook.
overwrite_cell_sourceReplace an existing cell's source content.
edit_cell_sourceApply targeted find-and-replace changes to cell source.
execute_cellRun a cell with timeout control and multimodal results.
insert_execute_code_cellCreate a code cell and run it in one operation.
execute_codeRun code directly in the kernel, including magic and shell commands.
notebook_run-all-cellsRun current notebook cells in sequence when JupyterLab mode is enabled.
notebook_get-selected-cellInspect the selected notebook cell in JupyterLab mode.

Names, permissions, and defaults can change. Check the current upstream documentation before granting access.

Use cases

  • Inspect a notebook and repair failed analysis cells with output feedback.
  • Create, edit, and execute cells from an MCP assistant.
  • Switch between several notebooks during a data-science workflow.
  • Trace tool calls and kernel execution with observability hooks.

Strengths

  • Combines notebook structure editing with live kernel execution.
  • Supports plots, images, and text outputs.
  • Manages multiple notebooks and dynamic server connections.
  • Includes JupyterLab integration and tracing hooks.

Limitations

  • Requires a configured Jupyter environment and authentication tokens.
  • Image handling depends on client and model capabilities.
  • Dynamic server connection is unavailable in Jupyter extension mode.

Frequently asked questions

Yes. It can list notebooks, switch between them, restart their kernels, and release individual notebook resources.

Multimodal outputs are supported, but both the MCP client and the model need image-handling capabilities.

No. Separate document and runtime URLs and tokens are documented for deployments that split those services.

The quick start uses JUPYTER_TOKEN. A separate version notice says client setups must also configure MCP_TOKEN from v1.0.0.

Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.

Related MCP servers

Excel MCP Server

Data & Analytics

Excel MCP Server lets AI agents create and modify workbooks without an installed copy of Microsoft Excel. It covers worksheet management, formulas, formatting, charts, and pivot tables through local or remote MCP connections.

MCP Server Chart

Data & Analytics

Generate charts, diagrams, maps, and tabular views from an AI assistant using AntV. The TypeScript MCP server supports desktop clients, network transports, and an optional private rendering service.

Grafana MCP Server

Data & Analytics

Connect MCP assistants to Grafana dashboards, datasources, alerts, and incident workflows. It serves observability teams that want to investigate metrics, logs, and traces and manage Grafana resources from an assistant.

MCP Google Sheets

Data & Analytics

MCP Google Sheets lets AI clients work with spreadsheets through Google Sheets and Drive APIs. It supports reading, writing, tab management, sharing, and batch operations, with tool filtering to reduce context usage.

Google Search Console MCP Server

Data & Analytics

This server connects MCP assistants to Google Search Console data and management actions. SEOs can investigate search performance, inspect indexing, compare periods, and work with sitemaps.

dbt MCP Server

Data & Analytics

dbt MCP Server gives agents project context and operations across dbt Core, Fusion, and Platform. It covers SQL, metrics, lineage, model health, CLI commands, job management, and documentation retrieval.