MCP Jupyter Complete
Enables comprehensive manipulation of Jupyter notebook files through position-based operations, including listing, reading, editing, inserting, and deleting cells, as well as cell type conversion and bulk edits.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
MCP Jupyter Complete
A comprehensive Model Context Protocol (MCP) server for Jupyter notebook manipulation with position-based operations and VS Code integration.
Features
🎯 Position-Based Operations
list_cells- List all cells with indices and type informationget_cell_source- Get source code of specific cells by indexedit_cell_source- Edit cell content by indexinsert_cell- Insert new cells at specific positionsdelete_cell- Delete cells by index with automatic reindexing
🚀 Enhanced Operations
move_cell- Move cells between positionsconvert_cell_type- Convert between code/markdown/raw cellsbulk_edit_cells- Perform multiple operations in a single call
🔧 VS Code Integration
trigger_vscode_reload- Force VS Code to reload notebook filesFile watcher support for automatic reloading
VS Code workspace and settings generation
Extension recommendations for optimal Jupyter experience
Related MCP server: JupyterMCP
Installation
Clone the repository:
git clone https://github.com/tofunori/mcp-jupyter-complete.git cd mcp-jupyter-completeInstall dependencies:
npm installMake executable (optional):
npm link
Configuration
Add to your ~/.claude.json configuration:
{
"mcpServers": {
"jupyter-complete": {
"command": "node",
"args": ["/path/to/mcp-jupyter-complete/src/index.js"]
}
}
}Or if installed globally via npm:
{
"mcpServers": {
"jupyter-complete": {
"command": "mcp-jupyter-complete"
}
}
}Usage Examples
Basic Cell Operations
// List all cells
await mcp.call("list_cells", {
notebook_path: "/path/to/notebook.ipynb"
});
// Get cell content
await mcp.call("get_cell_source", {
notebook_path: "/path/to/notebook.ipynb",
cell_index: 0
});
// Edit a cell
await mcp.call("edit_cell_source", {
notebook_path: "/path/to/notebook.ipynb",
cell_index: 1,
new_source: "print('Hello World!')"
});Advanced Operations
// Insert a new markdown cell
await mcp.call("insert_cell", {
notebook_path: "/path/to/notebook.ipynb",
position: 2,
cell_type: "markdown",
source: "# New Section\\n\\nThis is a new markdown cell."
});
// Move a cell
await mcp.call("move_cell", {
notebook_path: "/path/to/notebook.ipynb",
from_index: 3,
to_index: 1
});
// Bulk operations
await mcp.call("bulk_edit_cells", {
notebook_path: "/path/to/notebook.ipynb",
operations: [
{
type: "edit",
cell_index: 0,
new_source: "# Updated title"
},
{
type: "convert",
cell_index: 1,
new_type: "markdown"
}
]
});VS Code Integration
// Trigger VS Code reload
await mcp.call("trigger_vscode_reload", {
notebook_path: "/path/to/notebook.ipynb"
});VS Code Setup
For optimal VS Code integration:
Install recommended extensions:
Python
Jupyter
Jupyter Keymap
Jupyter Renderers
Configure auto-reload: Add to VS Code settings:
{ "files.watcherExclude": { "**/.ipynb_checkpoints/**": true }, "notebook.diffEditor.ignoreTrimWhitespace": false }Use with Claude Code: When using with Claude Code, notebook changes made via MCP will automatically trigger VS Code to prompt for reload.
API Reference
Core Functions
Function | Parameters | Description |
|
| Lists all cells with indices |
|
| Gets cell source code |
|
| Edits cell content |
|
| Inserts new cell |
|
| Deletes cell |
Enhanced Functions
Function | Parameters | Description |
|
| Moves cell position |
|
| Converts cell type |
|
| Bulk operations |
VS Code Functions
Function | Parameters | Description |
|
| Forces VS Code reload |
Cell Types
Supported cell types:
code- Python/executable code cellsmarkdown- Markdown text cellsraw- Raw text cells
Error Handling
The server provides detailed error messages for:
Invalid cell indices
File read/write permissions
Malformed notebook JSON
Invalid cell type conversions
Development
Testing
npm testLinting
npm run lintDevelopment Mode
npm run devContributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
License
MIT License - see LICENSE file for details.
Changelog
v1.0.0
Initial release
Position-based cell operations
VS Code integration
Bulk operations support
Comprehensive error handling
This server cannot be deployed
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for Studex tools, notifications, and profile integrations
Shared memory MCP server for Claude Code, Codex, Gemini CLI and Cursor. Cited, editable.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables interaction with Jupyter notebooks through the Model Context Protocol, supporting code execution and markdown insertion within JupyterLab environments.181,320BSD 3-Clause
- FlicenseNot gradedqualityDmaintenanceA Model Control Protocol (MCP) server that enables remote programmatic control of Jupyter notebooks, allowing AI assistants and applications to create, edit, and execute notebook cells via SSE protocol.-
- AlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server that provides comprehensive Jupyter notebook interaction capabilities, compatible with Claude Code.296MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Jupyter notebook navigation and editing. Reads .ipynb files directly as JSON, providing efficient tools for reading, searching, and modifying cells without needing a Jupyter server.MIT