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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aec50ea9641313d0e0ad2ac67fe123fa6655fcdfcf2b32910016eb4c37c09ebd
|
|
| MD5 |
a074cd98c724fab2de786e2d4804503b
|
|
| BLAKE2b-256 |
c7092b648a8cc653507e2e3230a3a2cbc33349897b7899f4b0272bf8f2538189
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4860486b7bf607134a958e0e9bc8e39ec44ab9c0ba794d44234e7d7a8f3f6dcb
|
|
| MD5 |
1d49f4a8e7228e6c40219e798b033e24
|
|
| BLAKE2b-256 |
71a250a2bc27e4eb49d8a42311b458114dbba8bc41310a3f12855f4d9225e31d
|