jupyter-mcp-server
🪐 ✨ Model Context Protocol (MCP) Server for Jupyter.
- • Basic MCP protocol features implemented (16/40)
- • GitHub community is not mature yet (14/20)
- • Optimal dependency management (20/20)
- • Moderate deployment maturity (5/10)
- • Documentation (8/8)
- • Archestra MCP Trust badge (2/2)
{
"datalayer-jupyter-mcp-server-docker-macos-windows": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DOCUMENT_URL",
"-e",
"DOCUMENT_TOKEN",
"-e",
"DOCUMENT_ID",
"-e",
"RUNTIME_URL",
"-e",
"RUNTIME_TOKEN",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"DOCUMENT_URL": "http://host.docker.internal:8888",
"DOCUMENT_TOKEN": "MY_TOKEN",
"DOCUMENT_ID": "notebook.ipynb",
"RUNTIME_URL": "http://host.docker.internal:8888",
"RUNTIME_TOKEN": "MY_TOKEN"
},
"docker_image": "datalayer/jupyter-mcp-server:latest"
},
"datalayer-jupyter-mcp-server-docker-linux": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DOCUMENT_URL",
"-e",
"DOCUMENT_TOKEN",
"-e",
"DOCUMENT_ID",
"-e",
"RUNTIME_URL",
"-e",
"RUNTIME_TOKEN",
"--network=host",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"DOCUMENT_URL": "http://localhost:8888",
"DOCUMENT_TOKEN": "MY_TOKEN",
"DOCUMENT_ID": "notebook.ipynb",
"RUNTIME_URL": "http://localhost:8888",
"RUNTIME_TOKEN": "MY_TOKEN"
},
"docker_image": "datalayer/jupyter-mcp-server:latest"
}
}🪐✨ Jupyter MCP Server
🚨 BREAKING CHANGE For version
0.11.0+,roomhas been renamed todocument. Read more in the release notes.
Jupyter MCP Server is a Model Context Protocol (MCP) server implementation that enables real-time interaction with 📓 Jupyter Notebooks, allowing AI to edit, document and execute code for data analysis, visualization etc.
Compatible with any Jupyter deployment (local, JupyterHub, ...) and with Datalayer hosted Notebooks.
🚀 Key Features
- ⚡ Real-time control: Instantly view notebook changes as they happen.
- 🔁 Smart execution: Automatically adjusts when a cell run fails thanks to cell output feedback.
- 🤝 MCP-Compatible: Works with any MCP client, such as Claude Desktop, Cursor, Windsurf, and more.

🛠️ This MCP offers multiple tools such as insert_execute_code_cell, append_markdown_cell, get_notebook_info, read_cell, and more, enabling advanced interactions with Jupyter notebooks. Explore our tools documentation to learn about all the tools powering Jupyter MCP Server.
🏁 Getting Started
For comprehensive setup instructions—including Streamable HTTP transport and advanced configuration—check out our documentation. Or, get started quickly with JupyterLab and stdio transport here below.
1. Set Up Your Environment
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 ipykernel
pip uninstall -y pycrdt datalayer_pycrdt
pip install datalayer_pycrdt==0.12.17
2. Start JupyterLab
# make jupyterlab
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0
3. Configure Your Preferred MCP Client
[!NOTE]
Ensure the
portof theDOCUMENT_URLandRUNTIME_URLmatch those used in thejupyter labcommand.The
DOCUMENT_IDwhich is the path to the notebook you want to connect to, should be relative to the directory where JupyterLab was started.In a basic setup,
DOCUMENT_URLandRUNTIME_URLare the same.DOCUMENT_TOKEN, andRUNTIME_TOKENare also the same and is actually the Jupyter Token.
MacOS and Windows
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DOCUMENT_URL",
"-e",
"DOCUMENT_TOKEN",
"-e",
"DOCUMENT_ID",
"-e",
"RUNTIME_URL",
"-e",
"RUNTIME_TOKEN",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"DOCUMENT_URL": "http://host.docker.internal:8888",
"DOCUMENT_TOKEN": "MY_TOKEN",
"DOCUMENT_ID": "notebook.ipynb",
"RUNTIME_URL": "http://host.docker.internal:8888",
"RUNTIME_TOKEN": "MY_TOKEN"
}
}
}
}
Linux
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DOCUMENT_URL",
"-e",
"DOCUMENT_TOKEN",
"-e",
"DOCUMENT_ID",
"-e",
"RUNTIME_URL",
"-e",
"RUNTIME_TOKEN",
"--network=host",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"DOCUMENT_URL": "http://localhost:8888",
"DOCUMENT_TOKEN": "MY_TOKEN",
"DOCUMENT_ID": "notebook.ipynb",
"RUNTIME_URL": "http://localhost:8888",
"RUNTIME_TOKEN": "MY_TOKEN"
}
}
}
}
For detailed instructions on configuring various MCP clients—including Claude Desktop, VS Code, Cursor, Cline, and Windsurf — see the Clients documentation.
📚 Resources
Looking for blog posts, videos, or other materials about Jupyter MCP Server?
👉 Visit the Resources section.
[](https://archestra.ai/mcp-catalog/datalayer__jupyter-mcp-server)🪐✨ Jupyter MCP Server
🚨 BREAKING CHANGE For version
0.11.0+,roomhas been renamed todocument. Read more in the release notes.
Jupyter MCP Server is a Model Context Protocol (MCP) server implementation that enables real-time interaction with 📓 Jupyter Notebooks, allowing AI to edit, document and execute code for data analysis, visualization etc.
Compatible with any Jupyter deployment (local, JupyterHub, ...) and with Datalayer hosted Notebooks.
🚀 Key Features
- ⚡ Real-time control: Instantly view notebook changes as they happen.
- 🔁 Smart execution: Automatically adjusts when a cell run fails thanks to cell output feedback.
- 🤝 MCP-Compatible: Works with any MCP client, such as Claude Desktop, Cursor, Windsurf, and more.

🛠️ This MCP offers multiple tools such as insert_execute_code_cell, append_markdown_cell, get_notebook_info, read_cell, and more, enabling advanced interactions with Jupyter notebooks. Explore our tools documentation to learn about all the tools powering Jupyter MCP Server.
🏁 Getting Started
For comprehensive setup instructions—including Streamable HTTP transport and advanced configuration—check out our documentation. Or, get started quickly with JupyterLab and stdio transport here below.
1. Set Up Your Environment
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 ipykernel
pip uninstall -y pycrdt datalayer_pycrdt
pip install datalayer_pycrdt==0.12.17
2. Start JupyterLab
# make jupyterlab
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0
3. Configure Your Preferred MCP Client
[!NOTE]
Ensure the
portof theDOCUMENT_URLandRUNTIME_URLmatch those used in thejupyter labcommand.The
DOCUMENT_IDwhich is the path to the notebook you want to connect to, should be relative to the directory where JupyterLab was started.In a basic setup,
DOCUMENT_URLandRUNTIME_URLare the same.DOCUMENT_TOKEN, andRUNTIME_TOKENare also the same and is actually the Jupyter Token.
MacOS and Windows
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DOCUMENT_URL",
"-e",
"DOCUMENT_TOKEN",
"-e",
"DOCUMENT_ID",
"-e",
"RUNTIME_URL",
"-e",
"RUNTIME_TOKEN",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"DOCUMENT_URL": "http://host.docker.internal:8888",
"DOCUMENT_TOKEN": "MY_TOKEN",
"DOCUMENT_ID": "notebook.ipynb",
"RUNTIME_URL": "http://host.docker.internal:8888",
"RUNTIME_TOKEN": "MY_TOKEN"
}
}
}
}
Linux
{
"mcpServers": {
"jupyter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DOCUMENT_URL",
"-e",
"DOCUMENT_TOKEN",
"-e",
"DOCUMENT_ID",
"-e",
"RUNTIME_URL",
"-e",
"RUNTIME_TOKEN",
"--network=host",
"datalayer/jupyter-mcp-server:latest"
],
"env": {
"DOCUMENT_URL": "http://localhost:8888",
"DOCUMENT_TOKEN": "MY_TOKEN",
"DOCUMENT_ID": "notebook.ipynb",
"RUNTIME_URL": "http://localhost:8888",
"RUNTIME_TOKEN": "MY_TOKEN"
}
}
}
}
For detailed instructions on configuring various MCP clients—including Claude Desktop, VS Code, Cursor, Cline, and Windsurf — see the Clients documentation.
📚 Resources
Looking for blog posts, videos, or other materials about Jupyter MCP Server?
👉 Visit the Resources section.
Related MCP Servers
mcp-shrimp-task-manager
88/100Shrimp Task Manager is a task tool built for AI Agents, emphasizing chain-of-thought, reflection, and style consistency. It converts natural language into structured dev tasks with dependency tracking and iterative refinement, enabling agent-like developer behavior in reasoning AI systems.
cognee-mcp
86/100Memory for AI Agents in 5 lines of code
shadcn-ui-mcp-server
82/100A mcp server to allow LLMS gain context about shadcn ui component structure,usage and installation,compaitable with react,svelte 5,and vue
mobile-mcp
81/100Model Context Protocol Server for Mobile Automation and Scraping (iOS, Android, Emulators, Simulators and Real Devices)
HuggingFace
80/100Remote MCP server for HuggingFace services - access models, datasets, and spaces
markitdown-mcp
80/100Python tool for converting files and office documents to Markdown.

