Data as of

Jupyter MCP Server for VS Code: Setup & Config

Jupyter MCP Server lets VS Code inspect, edit, and execute notebooks with live output feedback.

What you can do with Jupyter in VS Code

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

  • Inspect a notebook and repair failed analysis cells with output feedback.
  • Switch between several notebooks during a data-science workflow.

Before you start: Jupyter in VS Code

  • 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 VS Code configuration

  1. Choose VS Code configuration scope

    For Jupyter MCP Server, open Workspace: .vscode/mcp.json. Merge into servers; preserve existing inputs.

  2. Add Jupyter MCP Server to VS Code

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

  3. Check Jupyter MCP Server in VS Code

    Jupyter MCP Server: Start in VS Code’s MCP controls; inspect output and trust prompts.

Config file · Workspace: .vscode/mcp.json

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

Jupyter tools available to VS Code

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

list_files

Look for list_files among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

list_kernels

Look for list_kernels among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

Inspect available kernels and running kernel sessions.

connect_to_jupyter

Look for connect_to_jupyter among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

Change Jupyter connections without restarting; unavailable in extension mode.

use_notebook

Look for use_notebook among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

Open, create, or switch to a notebook.

list_notebooks

Look for list_notebooks among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

List available notebooks and their current status.

restart_notebook

Look for restart_notebook among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

Restart the kernel for a managed notebook.

unuse_notebook

Look for unuse_notebook among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

read_notebook

Look for read_notebook among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

read_cell

Look for read_cell among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

insert_cell

Look for insert_cell among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

delete_cell

Look for delete_cell among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

Remove a cell by index.

move_cell

Look for move_cell among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

Reposition a cell within its notebook.

overwrite_cell_source

Look for overwrite_cell_source among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

Replace an existing cell's source content.

edit_cell_source

Look for edit_cell_source among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

Apply targeted find-and-replace changes to cell source.

execute_cell

Look for execute_cell among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

Run a cell with timeout control and multimodal results.

insert_execute_code_cell

Look for insert_execute_code_cell among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

execute_code

Look for execute_code among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

notebook_run-all-cells

Look for notebook_run-all-cells among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

notebook_get-selected-cell

Look for notebook_get-selected-cell among VS Code's agent-mode tools after starting Jupyter through the MCP controls.

Jupyter: full stored tool descriptions

Troubleshooting Jupyter in VS Code

  • Make uvx jupyter-mcp-server@latest (from uv, for Python tools) available in the workspace, container, or remote environment hosting Jupyter MCP Server. Start through VS Code's MCP controls; inspect output and trust prompts.
  • For Jupyter MCP Server, keep ALLOW_IMG_OUTPUT, JUPYTER_TOKEN, JUPYTER_URL, MCP_TOKEN out of version control; VS Code documents input variables and secret handling.
  • Jupyter MCP Server uses stdio here: VS Code 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 VS Code troubleshooting lives in the /clients/vscode guide.

Jupyter MCP Server — details. VS Code guide

Frequently asked questions

For Jupyter MCP Server, edit workspace .vscode/mcp.json. VS Code requires servers rather than mcpServers; preserve the displayed type on each entry.

VS Code's jupyter-mcp-server example uses stdio.

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

VS Code'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 VS Code'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.

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