Labsco
MCP SERVER

Jupyter Notebook MCP Server

by shwetalsoni

Read, edit and execute Jupyter notebooks on disk — a cell at a time or the whole file.

Sandboxed Code Execution
Summary
The notebook edits itself while you talk about it.

Reading a notebook to a model usually means pasting cells and losing the structure. Addressing cells by index and type keeps the file as the source of truth, and executing in place means the output you discuss is the output that is saved.

What it is

Notebook file operations over MCP: read cells with a type filter, add cells at any position, execute one cell or every code cell, and read a notebook's metadata and statistics.

What you get
  • Cells read from an .ipynb file, filterable to code, markdown or raw
  • A new cell inserted at a chosen position or appended, with its own metadata
  • One cell executed by index, against a named kernel, with a timeout
  • Every code cell executed in order, with a stop-on-error option and a per-cell timeout
  • Notebook metadata and statistics
  • Progress reporting on the long runs, so a whole-notebook execution is not silent
Requirements

Uv, and a current fastmcp, launched against main.py by absolute path. Cell execution runs Python directly through a subprocess, so run only notebooks you trust or put the server in a sandbox.

Setup effort

One command — uvx jupyter-mcp-server