
MCP Jupyter
https://github.com/block/mcp-jupyter- Category
- AI Agents
- Rank
- No. 995Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- block
- GitHub
- 45 stars
- Latest release
- v2.0.2
- Date
About
MCP server that gives AI agents the ability to control and execute code in Jupyter notebooks.
What it does
MCP Jupyter bridges compatible assistants with a running JupyterLab environment. It edits notebook cells through Jupyter’s REST interface, executes code against an existing kernel, and preserves variables between human and agent turns. Optional real-time collaboration keeps browser edits synchronized automatically.
Why it's ranked here
A strong choice for collaborative notebook work because it combines explicit REST-based saves, persistent kernel state, and focused notebook operations. Its value is narrower than general automation: it assumes an existing Jupyter setup, and its evolving interface may break between releases.
What's good
Four consolidated tools cover reading, setup, cell changes, execution, and package installation without exposing a sprawling command set. State hashing detects notebook changes before dependent edits. It supports local standard input communication plus stateful or stateless HTTP, and includes unit, integration, and language-model tool-call testing.
Tradeoffs
You must install UV, run an accessible JupyterLab server, and configure an MCP-compatible client. Automatic browser synchronization needs the collaboration extension; without it, users must save their edits and reload agent changes manually. The project explicitly offers no compatibility guarantees between versions, so upgrades may require client adjustments.
How to use it well
Use it for iterative data exploration, modeling, debugging, and reports where a person and assistant alternate inside one live notebook. Give specific, incremental requests and distinguish code cells from markdown cells. It does not replace JupyterLab setup, provide a hosted notebook environment, or serve as a general-purpose automation layer beyond notebooks.
Technical notes+
pyproject.toml defines a Python 3.10+ Hatchling package and the mcp-jupyter console entry point. src/mcp_jupyter/__init__.py selects stdio or streamable HTTP and supports host, port, and stateless HTTP options. src/mcp_jupyter/server.py builds the FastMCP server, routes four consolidated tools, and connects execution to existing kernels. src/mcp_jupyter/rest_client.py performs notebook reads and explicit saves through Jupyter REST endpoints. src/mcp_jupyter/state.py stores a class-level SHA-256 content hash, waits 1.5 seconds before fetching content, and rejects state-dependent work after detected changes. src/mcp_jupyter/utils.py removes base64 image payloads from returned outputs while retaining text indicators.
Observed
- Primary language
- Python
- Runtime requirement
- Python 3.10 or newer
- Packaging
- Hatchling build backend with a console entry point
- Installation surface
- Runs as uvx mcp-jupyter; UV is required
- Interfaces
- MCP server using stdio or streamable HTTP transport
- HTTP modes
- Supports session-based and stateless HTTP operation
- Testing structure
- Documented unit, integration, and LLM tool-call tests under tests/
Read from README.md, pyproject.toml, src/mcp_jupyter/state.py, src/mcp_jupyter/utils.py, src/mcp_jupyter/server.py, src/mcp_jupyter/__init__.py, src/mcp_jupyter/__main__.py, src/mcp_jupyter/notebook.py, src/mcp_jupyter/rest_client.py, docs/README.md, docs/docs/intro.md, docs/docs/usage.md, docs/docs/quickstart.md, docs/docs/development.md, docs/docs/architecture.md.
What it can do
Execute Python code in Jupyter notebooks
Python code snippets or scripts → Code execution results and outputs
Create new Jupyter notebook cells
Code or markdown content → New notebook cells with specified content
Read and analyze existing notebook content
Jupyter notebook files → Notebook structure, cells, and content data
Modify existing notebook cells
Cell identifiers and new content → Updated notebook cells with modified content
Run data analysis workflows
Datasets and analysis instructions → Analysis results, visualizations, and insights
Generate and execute machine learning code
ML requirements and data specifications → Trained models, predictions, and evaluation metrics
Create data visualizations and plots
Data and visualization specifications → Charts, graphs, and visual representations
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.