Data as of

Jupyter MCP Server for Claude Desktop: Setup & Config

Jupyter MCP Server lets Claude Desktop inspect, edit, and execute notebooks with live output feedback.

What you can do with Jupyter in Claude Desktop

A live notebook interface combining precise cell edits, execution feedback, and multimodal results.

  • Inspect a notebook and repair failed analysis cells with output feedback.
  • Create, edit, and execute cells from an MCP assistant.

Before you start: Jupyter in Claude Desktop

  • Python
  • uv 0.6.14 or later
  • A running authenticated Jupyter service
  • JupyterLab collaboration setup as documented
  • An MCP-compatible client

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.

Jupyter Claude Desktop configuration

  1. Choose Claude Desktop configuration scope

    For Jupyter MCP Server, open macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json. Merge under mcpServers via Settings → Developer → Edit Config when available.

  2. Add Jupyter MCP Server to Claude Desktop

    Use the jupyter-mcp-server entry below in mcpServers. Keep Jupyter MCP Server's documented stdio connection fields and your other Claude Desktop entries.

  3. Check Jupyter MCP Server in Claude Desktop

    Jupyter MCP Server: Fully quit and reopen Claude Desktop; check developer diagnostics.

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

Windows: %APPDATA%\Claude\claude_desktop_config.json

JSON
{
  "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>"
      }
    }
  }
}

Jupyter tools available to Claude Desktop

Jupyter's stored tool list documents 19 tools; compare it with Claude Desktop's connected tool list, because the stored list is not a live check.

list_files

When Claude Desktop requests list_files from Jupyter, review the action before approving it.

Enumerate directories and files exposed by the Jupyter service.

list_kernels

When Claude Desktop requests list_kernels from Jupyter, review the action before approving it.

Inspect available kernels and running kernel sessions.

connect_to_jupyter

When Claude Desktop requests connect_to_jupyter from Jupyter, review the action before approving it.

Change Jupyter connections without restarting; unavailable in extension mode.

use_notebook

When Claude Desktop requests use_notebook from Jupyter, review the action before approving it.

Open, create, or switch to a notebook.

list_notebooks

When Claude Desktop requests list_notebooks from Jupyter, review the action before approving it.

List available notebooks and their current status.

restart_notebook

When Claude Desktop requests restart_notebook from Jupyter, review the action before approving it.

Restart the kernel for a managed notebook.

unuse_notebook

When Claude Desktop requests unuse_notebook from Jupyter, review the action before approving it.

Disconnect a notebook and free its associated resources.

read_notebook

When Claude Desktop requests read_notebook from Jupyter, review the action before approving it.

Read notebook cell sources with brief or detailed output.

read_cell

When Claude Desktop requests read_cell from Jupyter, review the action before approving it.

Inspect one cell's source, metadata, and outputs.

insert_cell

When Claude Desktop requests insert_cell from Jupyter, review the action before approving it.

Add a code or Markdown cell at a chosen position.

delete_cell

When Claude Desktop requests delete_cell from Jupyter, review the action before approving it.

move_cell

When Claude Desktop requests move_cell from Jupyter, review the action before approving it.

overwrite_cell_source

When Claude Desktop requests overwrite_cell_source from Jupyter, review the action before approving it.

edit_cell_source

When Claude Desktop requests edit_cell_source from Jupyter, review the action before approving it.

execute_cell

When Claude Desktop requests execute_cell from Jupyter, review the action before approving it.

insert_execute_code_cell

When Claude Desktop requests insert_execute_code_cell from Jupyter, review the action before approving it.

execute_code

When Claude Desktop requests execute_code from Jupyter, review the action before approving it.

notebook_run-all-cells

When Claude Desktop requests notebook_run-all-cells from Jupyter, review the action before approving it.

notebook_get-selected-cell

When Claude Desktop requests notebook_get-selected-cell from Jupyter, review the action before approving it.

Jupyter: full stored tool descriptions

Troubleshooting Jupyter in Claude Desktop

  • Fully quit and reopen Claude Desktop for Jupyter MCP Server. If uvx jupyter-mcp-server@latest (from uv, for Python tools) is missing, check the desktop process's PATH, which may differ from your terminal.
  • In Claude Desktop's Jupyter MCP Server entry, check ALLOW_IMG_OUTPUT, JUPYTER_TOKEN, JUPYTER_URL, MCP_TOKEN. Keep secrets out of shared screenshots and repositories.
  • Jupyter MCP Server uses stdio here: Claude Desktop must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: Requires a configured Jupyter environment and authentication tokens.
  • Known limitation: Image handling depends on client and model capabilities.
  • Known limitation: Dynamic server connection is unavailable in Jupyter extension mode.
  • General Claude Desktop troubleshooting lives in the /clients/claude-desktop guide.

Jupyter MCP Server — details. Claude Desktop guide

Frequently asked questions

Claude Desktop loads Jupyter MCP Server from claude_desktop_config.json: ~/Library/Application Support/Claude/ on macOS, or %APPDATA%\Claude\ on Windows. Open it via Settings → Developer → Edit Config when available.

Claude Desktop's jupyter-mcp-server example uses stdio.

Jupyter MCP Server's Claude Desktop configuration invokes uvx jupyter-mcp-server@latest (from uv, for Python tools).

Claude Desktop's Jupyter MCP Server example references ALLOW_IMG_OUTPUT, JUPYTER_TOKEN, JUPYTER_URL, MCP_TOKEN. Check these names if startup or authentication fails; the example alone does not distinguish required from optional values.

Jupyter MCP Server's stored list contains 19 tools, including list_files, list_kernels, connect_to_jupyter. Compare those names with Claude Desktop's connected tool list; the stored list is not a live check.

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.