JM

Jupyter MCP

Run and edit cells in a live Jupyter notebook.

📊 Data & notebooks★ 1,302Updated 2026-10-11Auth: local JupyterGitHub ↗

Test results

Last passed 2026-10-13
Claude CodePassed2026-10-13 · install, connect, tools, agent task
CursorPassed2026-10-13 · install, connect, tools, agent task
Claude DesktopNot tested—
ChatGPT (Codex)Not tested—
Protocol: starts, 18 tools listed · 2026-10-13
🧪 Test-box note: Tested against a local JupyterLab (127.0.0.1:8888, test token) started by the harness.

Install

claude mcp add jupyter -e JUPYTER_URL=http://127.0.0.1:8888 -e JUPYTER_TOKEN=your-jupyter-token -e DOCUMENT_URL=http://127.0.0.1:8888 -e DOCUMENT_TOKEN=your-jupyter-token -e RUNTIME_URL=http://127.0.0.1:8888 -e RUNTIME_TOKEN=your-jupyter-token -e DOCUMENT_ID=notebook.ipynb -e ALLOW_IMG_OUTPUT=false -- uvx jupyter-mcp-server

Run in your terminal. This exact command is what our harness runs in Claude Code; see the results above.

{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ],
      "env": {
        "JUPYTER_URL": "http://127.0.0.1:8888",
        "JUPYTER_TOKEN": "your-jupyter-token",
        "DOCUMENT_URL": "http://127.0.0.1:8888",
        "DOCUMENT_TOKEN": "your-jupyter-token",
        "RUNTIME_URL": "http://127.0.0.1:8888",
        "RUNTIME_TOKEN": "your-jupyter-token",
        "DOCUMENT_ID": "notebook.ipynb",
        "ALLOW_IMG_OUTPUT": "false"
      }
    }
  }
}

Save as .cursor/mcp.json. This exact config is what our harness runs in Cursor; see the results above.

{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ],
      "env": {
        "JUPYTER_URL": "http://127.0.0.1:8888",
        "JUPYTER_TOKEN": "your-jupyter-token",
        "DOCUMENT_URL": "http://127.0.0.1:8888",
        "DOCUMENT_TOKEN": "your-jupyter-token",
        "RUNTIME_URL": "http://127.0.0.1:8888",
        "RUNTIME_TOKEN": "your-jupyter-token",
        "DOCUMENT_ID": "notebook.ipynb",
        "ALLOW_IMG_OUTPUT": "false"
      }
    }
  }
}

Add to claude_desktop_config.json and restart Claude Desktop. Tested on the Linux beta; see the results above.

[mcp_servers.jupyter]
command = "uvx"
args = ["jupyter-mcp-server"]
env = { JUPYTER_URL = "http://127.0.0.1:8888", JUPYTER_TOKEN = "your-jupyter-token", DOCUMENT_URL = "http://127.0.0.1:8888", DOCUMENT_TOKEN = "your-jupyter-token", RUNTIME_URL = "http://127.0.0.1:8888", RUNTIME_TOKEN = "your-jupyter-token", DOCUMENT_ID = "notebook.ipynb", ALLOW_IMG_OUTPUT = "false" }

Add to ~/.codex/config.toml (shared by the ChatGPT (Codex) CLI and the ChatGPT desktop app; Codex runs inside the ChatGPT desktop app). Tested with the ChatGPT (Codex) CLI bundled in the ChatGPT desktop app; see the results above.

Not connecting? Troubleshooting: Claude Code · Cursor · Claude Desktop · ChatGPT (Codex)

Test history

DateCheckResultVersion
2026-10-13Protocol (direct stdio)Protocol: starts, 18 tools listed2.2.4
2026-10-13Claude CodePassed
install, connect, tools, agent task
2.1.296 (Claude Code)
2026-10-13CursorPassed
install, connect, tools, agent task
2026.10.12-d47ca18

Tools seen by our harness (18)

clear_cell_outputconnect_to_jupyterdelete_celledit_cell_sourceexecute_cellexecute_codeinsert_cellinsert_execute_code_celllist_fileslist_kernelslist_notebooksmove_celloverwrite_cell_sourceread_cellread_notebookrestart_notebookunuse_notebookuse_notebook
Sponsors