Skip to main content
Glama
MCP Jupyter Server
by azharlabs

MCP JUPYTER Server

Model Context Protocol server that exposes basic tooling for inspecting and editing Jupyter notebooks (.ipynb) from any MCP-compatible client.

Features

  • Read notebook cells with optional filtering by cell type.

  • Add, update, or delete cells while preserving notebook metadata.

  • Get quick notebook stats (cell counts, execution metadata, format version).

  • Runs over stdio so it can be wired directly into MCP clients such as Claude Desktop.

Related MCP server: mcp-server-jupyter

Requirements

  • Node.js 18 or newer.

  • Access to the .ipynb files you want to work with (local file paths).

Quick start (npx)

Run directly from the repo/package without cloning:

npx -y mcp-jupyter

Installation (local checkout)

npm install

Example MCP client entry

Point your client at the built entrypoint (adjust the path to your checkout):

 {
  "mcpServers": {
    "jupyter": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-jupyter"
      ],
      "cmd": ""
    }
  },
  "$version": 2
}

Available tools

Position-Based Operations

  • list_cells - List all cells with indices and type information

  • get_cell_source - Get source code of specific cells by index

  • edit_cell_source - Edit cell content by index

  • insert_cell - Insert new cells at specific positions

  • delete_cell - Delete cells by index with automatic reindexing

Enhanced Operations

  • move_cell - Move cells between positions

  • convert_cell_type - Convert between code/markdown/raw cells

  • bulk_edit_cells - Perform multiple operations in a single call

Available Tools

13 tools
add_cellC

Add a new cell to the notebook

Inputs: notebook_path (required), source, cell_type, position.

bulk_edit_cellsC

Perform bulk operations on multiple cells

Inputs: notebook_path (required), operations (required).

convert_cell_typeC

Convert a cell from one type to another

Inputs: notebook_path (required), cell_index (required), new_type (required).

delete_cellC

Delete a cell by index

Inputs: notebook_path (required), cell_index (required).

edit_cellC

Edit the source code of a specific cell by ID or index

Inputs: notebook_path (required), cell_id (required), new_source (required).

edit_cell_sourceC

Edit the source code of a specific cell by index

Inputs: notebook_path (required), cell_index (required), new_source (required).

execute_cellC

Execute a specific cell in the notebook using a Jupyter kernel

Inputs: notebook_path (required), cell_id (required).

get_cell_sourceC

Get the source code of a specific cell by index

Inputs: notebook_path (required), cell_index (required).

insert_cellC

Insert a new cell at a specific position

Inputs: notebook_path (required), position (required), cell_type, source.

list_cellsA

List all cells in a Jupyter notebook with their indices and types

Inputs: notebook_path (required).

move_cellC

Move a cell from one position to another

Inputs: notebook_path (required), from_index (required), to_index (required).

read_notebook_with_outputsC

Read a Jupyter notebook including cell outputs

Inputs: notebook_path (required).

trigger_vscode_reloadC

Trigger VS Code to reload the notebook file

Inputs: notebook_path (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 13 tools

    Disambiguation3/5

    Most tools have distinct purposes for cell operations, but there is notable overlap between 'edit_cell' and 'edit_cell_source' which both edit cell source code, and between 'add_cell' and 'insert_cell' which both add cells. This could cause confusion for an agent trying to select the right tool.

    Naming Consistency4/5

    Tool names follow a consistent verb_noun pattern (e.g., add_cell, delete_cell, execute_cell) with clear actions and targets. The only deviation is 'read_notebook_with_outputs' which is longer but still follows the pattern, and 'trigger_vscode_reload' which uses a verb_noun_noun structure but remains readable.

    Tool Count5/5

    With 13 tools, this server is well-scoped for managing Jupyter notebooks, covering a comprehensive set of operations like adding, editing, executing, and listing cells. Each tool appears to serve a specific function without unnecessary bloat.

    Completeness4/5

    The toolset provides strong coverage for cell-level operations (CRUD, execution, type conversion) and notebook reading, but lacks tools for higher-level notebook management such as saving, creating new notebooks, or kernel control. Minor gaps exist, but agents can likely work around them.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers