Skip to main content

A structural Jupyter Notebook Editor MCP server

Project description

Easy Jupyter Editor MCP

A lightweight Model Context Protocol (MCP) server designed to allow AI Agents to safely and structurally edit Jupyter Notebook (.ipynb) files.

Background

This MCP server was developed to enable AI agents to safely manipulate Jupyter Notebook (.ipynb) files.

In many AI agent environments (such as Antigravity), directly executing notebook files or editing complex .ipynb JSON structures as raw text can be difficult due to security restrictions or the risk of corrupting the file format.

This project aims to "structurally edit Notebook files correctly while bypassing execution permission issues." By using the nbformat library, it allows adding, editing, and deleting cells without breaking the JSON structure.

Features

Provides the following tools:

  • read_notebook: Retrieves a list of cells (index and content summary) from a Notebook.
  • get_cell: Retrieves the full source code of a specific cell by index.
  • edit_cell: Modifies the content of a specific cell.
  • add_cell: Adds a new code or Markdown cell.
  • delete_cell: Deletes a specific cell.
  • create_notebook: Creates a new, empty Notebook.

Installation & Usage

It is recommended to run this server using uv.

1. Claude Desktop / MCP Client Configuration

Add the following configuration to claude_desktop_config.json.

Running directly from GitHub (Recommended)

{
  "mcpServers": {
    "easy-jupyter-editor": {
      "command": "uv",
      "args": [
        "run",
        "--from",
        "git+https://github.com/YourUsername/easy-jupyter-editor-mcp",
        "easy-jupyter-editor-mcp"
      ]
    }
  }
}

Running Locally for Development

{
  "mcpServers": {
    "easy-jupyter-editor": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "--with",
        "nbformat",
        "python",
        "/absolute/path/to/easy-jupyter-editor-mcp/src/easy_jupyter_editor_mcp/__init__.py"
      ]
    }
  }
}

2. PyPI (Future Publication)

If published to PyPI, you can configure it simply as:

{
  "mcpServers": {
    "easy-jupyter-editor": {
      "command": "uvx",
      "args": ["easy-jupyter-editor-mcp"]
    }
  }
}

Development

# Build
uv build

# Publish to PyPI
uv publish

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easy_jupyter_editor_mcp-0.1.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easy_jupyter_editor_mcp-0.1.0-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file easy_jupyter_editor_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: easy_jupyter_editor_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for easy_jupyter_editor_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aec50ea9641313d0e0ad2ac67fe123fa6655fcdfcf2b32910016eb4c37c09ebd
MD5 a074cd98c724fab2de786e2d4804503b
BLAKE2b-256 c7092b648a8cc653507e2e3230a3a2cbc33349897b7899f4b0272bf8f2538189

See more details on using hashes here.

File details

Details for the file easy_jupyter_editor_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: easy_jupyter_editor_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 3.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for easy_jupyter_editor_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4860486b7bf607134a958e0e9bc8e39ec44ab9c0ba794d44234e7d7a8f3f6dcb
MD5 1d49f4a8e7228e6c40219e798b033e24
BLAKE2b-256 71a250a2bc27e4eb49d8a42311b458114dbba8bc41310a3f12855f4d9225e31d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page