jupyter-editor-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {
"tasks": {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ipynb_read_notebookA | Read a Jupyter Notebook (.ipynb) and return structure summary. Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) Returns: Dictionary with cell_count, cell_types, kernel_info, format_version or dict with 'error' key on failure |
| ipynb_list_cellsA | List all cells in a Jupyter Notebook (.ipynb) with indices, types, and content previews. Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) Returns: Dict with 'cells' list or 'error' key on failure |
| ipynb_get_cellA | Get content of a specific cell by index from a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) cell_index: Index of cell (supports negative indexing) Returns: Dict with 'content' or 'error' key |
| ipynb_search_cellsA | Search for pattern in cell content of a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) pattern: Search pattern (regex supported) case_sensitive: Whether search is case-sensitive (default: False) Returns: Dict with 'results' list or 'error' key |
| ipynb_replace_cellA | Replace entire cell content in a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) cell_index: Index of cell to replace new_content: New content for cell (provide as raw string, no additional escaping needed) Returns: Dict with 'success' or 'error' key |
| ipynb_insert_cellA | Insert new cell at specified position in a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) cell_index: Position to insert cell (0-based indexing) content: Cell content (provide as raw string, no additional escaping needed) cell_type: Type of cell ('code', 'markdown', 'raw') Returns: Dict with 'success' and 'new_cell_count' or 'error' key Note: Indices of cells at or after the insertion point will shift by +1 |
| ipynb_append_cellA | Append cell to end of a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) content: Cell content (provide as raw string, no additional escaping needed) cell_type: Type of cell ('code', 'markdown', 'raw') Returns: Dict with 'success' and 'cell_index' or 'error' key (0-based index of new cell) |
| ipynb_delete_cellA | Delete cell at specified index in a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) cell_index: Index of cell to delete (0-based indexing) Returns: Dict with 'success' and 'new_cell_count' or 'error' key Note: Indices of cells after the deleted cell will shift by -1 |
| ipynb_str_replace_in_cellA | Replace substring within cell content in a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) cell_index: Index of cell old_str: String to replace (provide as raw string, no additional escaping needed) new_str: Replacement string (provide as raw string, no additional escaping needed) Returns: Dict with 'success' or 'error' key |
| ipynb_get_metadataA | Get Jupyter Notebook (.ipynb) or cell metadata. Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) cell_index: Index of cell (None for notebook metadata) Returns: Metadata dictionary or dict with 'error' key |
| ipynb_update_metadataA | Update Jupyter Notebook (.ipynb) or cell metadata. Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) metadata: Metadata dictionary to merge cell_index: Index of cell (None for notebook metadata) Returns: Dict with 'success' or 'error' key |
| ipynb_set_kernelB | Set kernel specification for a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) kernel_name: Kernel name (e.g., 'python3') display_name: Display name (e.g., 'Python 3') language: Programming language (default: 'python') Returns: Dict with 'success' or 'error' key |
| ipynb_list_available_kernelsB | List common Jupyter Notebook kernel configurations. Returns: Dict with 'kernels' list |
| ipynb_replace_cells_batchA | Replace multiple cells in one operation in a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) replacements: List of dicts with 'cell_index' and 'content' keys (provide content as raw strings, no additional escaping needed) Returns: Dict with 'success' and 'cells_modified' or 'error' key |
| ipynb_delete_cells_batchA | Delete multiple cells by indices from a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) cell_indices: List of cell indices to delete (0-based indexing) Returns: Dict with 'success', 'cells_deleted', 'new_cell_count' or 'error' key Note: Deletions are processed in descending order to maintain index validity. Provide indices as they appear before any deletions occur. |
| ipynb_insert_cells_batchA | Insert multiple cells at specified positions in a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) insertions: List of dicts with 'cell_index', 'content', 'cell_type' keys (provide content as raw strings, no additional escaping needed) Returns: Dict with 'success' and 'cells_inserted' or 'error' key Note: Uses 0-based indexing. Insertions are processed in order, so later indices will be affected by earlier insertions. Consider sorting by index descending to maintain intended positions. |
| ipynb_search_replace_allA | Search and replace across all cells in a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) pattern: Pattern to search for (regex) replacement: Replacement string cell_type: Optional filter by cell type Returns: Dict with 'success' and 'replacements_made' or 'error' key |
| ipynb_reorder_cellsA | Reorder cells in a Jupyter Notebook (.ipynb) by providing new index mapping. Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) new_order: List of indices in desired order (0-based indexing) Returns: Dict with 'success' or 'error' key |
| ipynb_filter_cellsB | Keep only cells matching criteria in a Jupyter Notebook (.ipynb), delete others. Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) cell_type: Optional filter by cell type pattern: Optional regex pattern to match Returns: Dict with 'success', 'cells_kept' or 'error' key |
| ipynb_merge_notebooksA | Merge multiple Jupyter Notebooks (.ipynb) into one. Args: output_ipynb_filepath: Path for merged notebook (absolute path preferred) input_ipynb_filepaths: List of notebook paths to merge (absolute paths preferred) add_separators: Whether to add separator cells between notebooks Returns: Dict with 'success', 'total_cells', 'notebooks_merged' or 'error' key |
| ipynb_split_notebookA | Split a Jupyter Notebook (.ipynb) into multiple files by criteria. Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) output_dir: Directory for output files split_by: Split criteria ('markdown_headers' or 'cell_count') Returns: Dict with 'success' and 'files_created' or 'error' key |
| ipynb_apply_to_notebooksA | Apply same operation to multiple Jupyter Notebooks (.ipynb). Args: ipynb_filepaths: List of notebook paths (absolute paths preferred) operation: Operation name ('set_kernel', 'clear_outputs', 'update_metadata') operation_params: Parameters for the operation as a dictionary Returns: Dict with 'success' and 'results' or 'error' key |
| ipynb_search_notebooksA | Search across multiple Jupyter Notebooks (.ipynb). Args: ipynb_filepaths: List of notebook paths (absolute paths preferred) pattern: Search pattern (regex) return_context: Whether to include context Returns: Dict with 'results' and 'match_count' or 'error' key |
| ipynb_sync_metadataB | Synchronize metadata across multiple Jupyter Notebooks (.ipynb). Args: ipynb_filepaths: List of notebook paths (absolute paths preferred) metadata: Metadata to apply merge: Whether to merge with existing metadata Returns: Dict with 'success' and 'notebooks_updated' or 'error' key |
| ipynb_extract_cellsA | Extract matching cells from multiple Jupyter Notebooks (.ipynb) into a new notebook. Args: output_ipynb_filepath: Path for output notebook (absolute path preferred) input_ipynb_filepaths: List of source notebook paths (absolute paths preferred) pattern: Optional regex pattern to match cell_type: Optional cell type filter Returns: Dict with 'success', 'cells_extracted', 'source_notebooks' or 'error' key |
| ipynb_clear_outputsA | Clear all outputs from code cells in one or more Jupyter Notebooks (.ipynb). Args: ipynb_filepaths: Single filepath or list of filepaths (absolute paths preferred) Returns: Dict with 'success' and 'notebooks_processed' or 'error' key |
| ipynb_validate_notebookA | Validate Jupyter Notebook (.ipynb) structure. Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) Returns: Dict with 'valid' boolean and optional 'errors' list |
| ipynb_get_notebook_infoA | Get summary information about a Jupyter Notebook (.ipynb). Args: ipynb_filepath: Path to Jupyter Notebook (.ipynb) file (absolute path preferred) Returns: Dict with cell_count, cell_types, kernel, format_version, file_size or 'error' key |
| ipynb_validate_notebooks_batchA | Validate multiple Jupyter Notebooks (.ipynb). Args: ipynb_filepaths: List of notebook paths (absolute paths preferred) Returns: Dict with 'results' mapping filepath to validation status |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 29 tools
Most tools have clear boundaries, but there is notable overlap: ipynb_read_notebook and ipynb_get_notebook_info both return nearly identical notebook summaries, and ipynb_apply_to_notebooks duplicates operations already available via dedicated tools (e.g., set_kernel, clear_outputs, update_metadata). Batch vs single versions are distinct but admirably named.
All tool names follow a consistent ipynb_ verb_noun pattern, with descriptive verbs like list, get, insert, delete, replace, merge, validate. Even compound verbs like str_replace and search_replace are clear and predictable, and batch variants consistently append '_batch'.
At 29 tools, this exceeds the 'too many (25+)' threshold. While the domain is rich, the count feels bloated due to the inclusion of both single and batch versions of many operations, plus near-duplicate read/info tools. A leaner set around 20 would be more appropriate.
The tool set covers cell CRUD, notebook metadata, kernel settings, validation, searching, and multi-notebook operations like merge, split, and batch processing. Minor gaps exist, such as no explicit 'create new notebook' tool, but agents can work around this via merge or extract flows.