ipynb-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IPYNB_ROOT | No | Root directory fence. The server fences all paths to this directory. Defaults to the process working directory. | |
| IPYNB_IMAGES | No | Image block policy (auto: images only on full-output reads and runs). Default is auto. | auto |
| IPYNB_PYTHON | No | Explicit interpreter (failure is final). Default is auto. | auto |
| IPYNB_LOG_LEVEL | No | stderr log level. Default is info. | info |
| IPYNB_READ_ONLY | No | Only notebook_read and kernel status allowed. Default is false. | false |
| IPYNB_BACKUP_KEEP | No | Rolling backups per notebook. Default is 10. | 10 |
| IPYNB_ARTIFACT_DIR | No | Where image artifacts are written. Default is platform cache. | |
| IPYNB_PREVIEW_LINES | No | Source preview lines. Default is 12. | 12 |
| IPYNB_MAX_IMAGE_BYTES | No | Max bytes per image. Default is 20971520. | 20971520 |
| IPYNB_INLINE_TEXT_CHARS | No | Text output truncation threshold. Default is 20000. | 20000 |
| IPYNB_ALLOW_OUTSIDE_ROOT | No | Allow paths outside the root. Default is false. | false |
| IPYNB_KERNEL_IDLE_SECONDS | No | Idle kernel reclamation. Default is 3600. | 3600 |
| IPYNB_MAX_IMAGES_PER_CALL | No | Image blocks per tool call. Default is 20. | 20 |
| IPYNB_EXEC_TIMEOUT_SECONDS | No | Per-cell timeout. Default is 300. | 300 |
| IPYNB_BACKGROUND_THRESHOLD_SECONDS | No | Runs whose estimated upper bound (timeout_seconds × target cells) exceeds 10× this go background. Default is 30. | 30 |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| notebook_readA | Read a Jupyter notebook: cell index, type, source and existing outputs. Set include_outputs='full' to get a cell's outputs including images. |
| notebook_editB | Edit notebook cells. Every source change requires a compare-and-swap anchor (expected_source_hash or expected_text); a mismatch fails the whole request without writing. |
| notebook_runA | Execute notebook cells. mode='resume' runs only the target cells in the live kernel; 'replay' silently rebuilds state from cell 0 first; 'full' re-runs everything. |
| notebook_run_statusA | Poll a background notebook run started by notebook_run. |
| notebook_run_cancelB | Cancel a background notebook run started by notebook_run. |
| notebook_kernelC | Inspect or manage the kernels held for notebooks: status, start, shutdown, restart. |
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 6 tools
Each tool targets a clearly distinct action on a notebook: read, edit, run, poll run status, cancel run, and manage kernels. The run_status/run_cancel pair are explicitly scoped to background runs started by notebook_run, so there is no real misselection risk.
All six tools use a uniform snake_case notebook_* prefix with a predictable verb/noun suffix (read, edit, run, run_status, run_cancel, kernel). The pattern is consistent throughout with no style deviations.
Six tools is well-scoped for a notebook server, covering the core read/edit/execute workflow plus async run lifecycle and kernel management. No tool feels redundant or padded.
Read, edit, run, and kernel lifecycle are covered, including async run polling and cancellation. Minor gaps remain, such as creating a brand-new notebook file or deleting cells/notebooks explicitly, but these are largely workable via edit.