Model Context Protocol server providing 29 specialized tools for programmatic Jupyter notebook editing with format preservation, batch operations, and no Jupyter server required
Project description
Jupyter Notebook Editor MCP Server
A Model Context Protocol (MCP) server for programmatically editing Jupyter notebooks while preserving their format and structure.
Features
- 29 specialized tools for notebook manipulation
- File-based operations - no Jupyter server required
- Format preservation - automatic validation after modifications
- Batch operations - modify multiple cells or notebooks at once
- Type-safe - full type hints for all operations
Installation
Quick Start
# Install as a tool
uv tool install .
# Run the server
jupyter-editor-mcp
See INSTALL.md for detailed installation instructions and configuration options.
Option 1: Install as a Tool (Recommended)
Install directly using uv tool:
# Install from local directory
uv tool install --from /path/to/jupyter-editor .
# Or install from git repository
uv tool install git+https://github.com/yourusername/jupyter-editor.git
Then run the server:
jupyter-editor-mcp
Option 2: Development Installation
For development or testing:
# Clone the repository
git clone <repository-url>
cd jupyter-editor
# Create virtual environment and install
uv venv
uv pip install -e ".[dev]"
Usage
With Claude Desktop (Tool Installation)
If installed via uv tool install, add to your claude_desktop_config.json:
{
"mcpServers": {
"jupyter-editor": {
"command": "jupyter-editor-mcp"
}
}
}
With Claude Desktop (Development Installation)
If installed in development mode, add to your claude_desktop_config.json:
{
"mcpServers": {
"jupyter-editor": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/jupyter-editor",
"python",
"-m",
"jupyter_editor.server"
]
}
}
}
Example Interactions
Read a notebook:
"Show me the structure of my notebook.ipynb"
Insert a cell:
"Add a markdown cell at the beginning explaining what this notebook does"
Batch operations:
"Replace all occurrences of 'old_function' with 'new_function' in all code cells"
Multi-notebook:
"Merge analysis.ipynb and visualization.ipynb into combined.ipynb"
Tool Categories
- Read Operations (4 tools): read_notebook, list_cells, get_cell, search_cells
- Cell Modification (5 tools): replace_cell, insert_cell, append_cell, delete_cell, str_replace_in_cell
- Metadata Operations (4 tools): get_metadata, update_metadata, set_kernel, list_available_kernels
- Batch Operations - Multi-Cell (6 tools): replace_cells_batch, delete_cells_batch, insert_cells_batch, search_replace_all, reorder_cells, filter_cells
- Batch Operations - Multi-Notebook (7 tools): merge_notebooks, split_notebook, apply_to_notebooks, search_notebooks, sync_metadata, extract_cells, clear_outputs
- Validation (3 tools): validate_notebook, get_notebook_info, validate_notebooks_batch
Development
# Run tests
pytest
# Run tests with coverage
pytest --cov
# Install in development mode
uv pip install -e ".[dev]"
Documentation
- RESEARCH.md - Technical research and tool specifications
- REQUIREMENTS.md - User stories and acceptance criteria
- DESIGN.md - Architecture and API design
- TODO.md - Implementation progress tracking
License
MIT
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 jupyter_editor_mcp-0.1.4.tar.gz.
File metadata
- Download URL: jupyter_editor_mcp-0.1.4.tar.gz
- Upload date:
- Size: 131.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6aac53b013508d0273b3f1a9dd11673100a79d89df3f102077e4e191c30ebd26
|
|
| MD5 |
63ae99bf0c6e680a942e35092f675a29
|
|
| BLAKE2b-256 |
3ba1ceece15064b7adc0c0488208a968cc8849da91c3d2f00af5ce68e42c7084
|
Provenance
The following attestation bundles were made for jupyter_editor_mcp-0.1.4.tar.gz:
Publisher:
publish.yml on jsamuel1/jupyter-editor-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jupyter_editor_mcp-0.1.4.tar.gz -
Subject digest:
6aac53b013508d0273b3f1a9dd11673100a79d89df3f102077e4e191c30ebd26 - Sigstore transparency entry: 716446528
- Sigstore integration time:
-
Permalink:
jsamuel1/jupyter-editor-mcp@423c014778ee16093bde52651fc22b4afb583407 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/jsamuel1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@423c014778ee16093bde52651fc22b4afb583407 -
Trigger Event:
release
-
Statement type:
File details
Details for the file jupyter_editor_mcp-0.1.4-py3-none-any.whl.
File metadata
- Download URL: jupyter_editor_mcp-0.1.4-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d7a2954c06816c0797052c78a15ff6db9ef71a3b94a8a59399c2998adef7f96
|
|
| MD5 |
c2890f59f882e1a0c8de774782ddeac6
|
|
| BLAKE2b-256 |
4eb85afeaa6a860dce34c61613499d0cb2c49c5e49758a253a81c53bb2446642
|
Provenance
The following attestation bundles were made for jupyter_editor_mcp-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on jsamuel1/jupyter-editor-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jupyter_editor_mcp-0.1.4-py3-none-any.whl -
Subject digest:
2d7a2954c06816c0797052c78a15ff6db9ef71a3b94a8a59399c2998adef7f96 - Sigstore transparency entry: 716446544
- Sigstore integration time:
-
Permalink:
jsamuel1/jupyter-editor-mcp@423c014778ee16093bde52651fc22b4afb583407 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/jsamuel1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@423c014778ee16093bde52651fc22b4afb583407 -
Trigger Event:
release
-
Statement type: