# Jupyter MCP server

> Read, edit and execute cells in live Jupyter notebooks from your AI assistant.

- Listing: https://mcp.tc/i/jupyter
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: no API key needed
- Category: [Developer Tools](https://mcp.tc/c/developer-tools)
- Vendor: Datalayer
- Homepage: <https://jupyter-mcp-server.datalayer.tech>
- Docs: <https://datalayer.ai/docs/mcp>
- Repository: <https://github.com/datalayer/jupyter-mcp-server>
- Package: pypi `jupyter-mcp-server`

## About

Connects an AI assistant to Jupyter notebooks in real time. The assistant can work with notebook cells, edit and document them, and run code for data analysis and visualization. It can target a local JupyterLab or JupyterHub, or cloud code sandboxes.

It runs locally with uvx jupyter-mcp-server@latest, pointed at a running Jupyter server through JUPYTER\_URL and JUPYTER\_TOKEN. Datalayer also hosts an endpoint at https://mcp.datalayer.run/mcp that uses OAuth sign-in with scoped permissions. The project is BSD-3-Clause licensed.

## What it can do

- Read and edit cells in live Jupyter notebooks
- Execute code cells and get the results
- Document and analyze data inside notebooks
- Connect to a local JupyterLab or JupyterHub
- Use the hosted Datalayer endpoint with OAuth sign-in
- Scale code sandboxes from local to cloud providers

## Example prompts

- "Open my analysis notebook and summarize what each cell does"
- "Add a cell that plots monthly sales from the dataframe and run it"
- "Fix the failing cell in my notebook and re-execute it"
- "Write markdown documentation for the cells in this notebook"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio jupyter -- uvx jupyter-mcp-server@latest
```

2. Start Claude Code and type `/mcp`. **jupyter** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ]
    }
  }
}
```

2. Save the file and restart Claude Desktop.

Needs uv (Python) on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=jupyter&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJqdXB5dGVyLW1jcC1zZXJ2ZXJAbGF0ZXN0Il19>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ]
    }
  }
}
```

Needs uv (Python) on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=jupyter&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22jupyter-mcp-server%40latest%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"jupyter","type":"stdio","command":"uvx","args":["jupyter-mcp-server@latest"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "jupyter": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ]
    }
  }
}
```

Needs uv (Python) on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ]
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add jupyter -- uvx jupyter-mcp-server@latest
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.jupyter]
command = "uvx"
args = ["jupyter-mcp-server@latest"]
```

Needs uv (Python) on your computer.

### Gemini CLI

```bash
gemini mcp add jupyter uvx jupyter-mcp-server@latest
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server@latest"
      ]
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs uv (Python) on your computer.

## Details

- Server version: 0.0.1
- MCP protocol version: 2026-07-28
- Last checked: 2026-10-03 (reachable)
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/jupyter (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
