by datalayer
🪐 🔧 Model Context Protocol (MCP) Server for Jupyter.
# Add to your Claude Code skills
git clone https://github.com/datalayer/jupyter-mcp-serverGuides for using mcp servers skills like jupyter-mcp-server.
Last scanned: 5/1/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-01T06:40:05.142Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}jupyter-mcp-server is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by datalayer. 🪐 🔧 Model Context Protocol (MCP) Server for Jupyter. It has 1,206 GitHub stars.
Yes. jupyter-mcp-server passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/datalayer/jupyter-mcp-server" and add it to your Claude Code skills directory (see the Installation section above).
jupyter-mcp-server is primarily written in Python. It is open-source under datalayer on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh jupyter-mcp-server against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
An MCP server developed for AI to connect and manage Jupyter Notebooks in real-time
Developed by Datalayer

[!IMPORTANT] Breaking change in v1.0.0: You must configure
MCP_TOKENin your MCP client setup.For setup details, see: https://jupyter-mcp-server.datalayer.tech/providers/jupyter-streamable-http-standalone/#3-configure-your-mcp-client
Update in v1.0.2:
pycrdtis now supported, so installingdatalayer_pycrdtis no longer required.
[!NOTE] We Need Your Feedback!
We're actively developing support for JupyterHub and Google Colab deployments. If you're using or planning to use Jupyter MCP Server with these platforms, we'd love to hear from you!
- 🏢 JupyterHub users: Share your deployment setup and requirements
- 🌐 Google Colab users: Help us understand your use cases and workflows
Join the conversation in our Community page - your feedback will help us prioritize features and ensure these integrations work seamlessly for your needs.
Compatible with any Jupyter deployment (local, JupyterHub, ...) and with Datalayer hosted Notebooks.
The server provides a rich set of tools for interacting with Jupyter notebooks, categorized as follows. For more details on each tool, their parameters, and return values, please refer to the official Tools documentation.
| Name | Description |
|---|---|
list_files |
List files and directories in the Jupyter server's file system. |
list_kernels |
List all available and running kernel sessions on the Jupyter server. |
connect_to_jupyter |
Connect to a Jupyter server dynamically without restarting the MCP server. Not available when running as Jupyter extension. Useful for switching servers dynamically or avoiding hardcoded configuration. Read more |
| Name | Description |
|---|---|
use_notebook |
Connect to a notebook file, create a new one, or switch between notebooks. |
list_notebooks |
List all notebooks available on the Jupyter server and their status |
restart_notebook |
Restart the kernel for a specific managed notebook. |
unuse_notebook |
Disconnect from a specific notebook and release its resources. |
read_notebook |
Read notebook cells source content with brief or detailed format options. |
| Name | Description |
|---|---|
read_cell |
Read the full content (Metadata, Source and Outputs) of a single cell. |
insert_cell |
Insert a new code or markdown cell at a specified position. |
delete_cell |
Delete a cell at a specified index. |
move_cell |
Move a cell from one position to another within a notebook. |
overwrite_cell_source |
Overwrite the source code of an existing cell. |
edit_cell_source |
Apply surgical find-and-replace edits to a cell's source without full rewrite. |
execute_cell |
Execute a cell with timeout, supports multimodal output including images. |
insert_execute_code_cell |
Insert a new code cell and execute it in one step. |
execute_code |
Execute code directly in the kernel, supports magic commands and shell commands. |
Available only when JupyterLab mode is enabled. It is enabled by default.
When running in JupyterLab mode, Jupyter MCP Server integrates with jupyter-mcp-tools to expose additional JupyterLab commands as MCP tools. By default, the following tools are enabled:
| Name | Description |
|---|---|
notebook_run-all-cells |
Execute all cells in the current notebook sequentially |
notebook_get-selected-cell |
Get information about the currently selected cell |
You can now customize which tools from jupyter-mcp-tools are available using the allowed_jupyter_mcp_tools configuration parameter. This allows you to enable additional notebook operations, console commands, file management tools, and more.
# Example: Enable additional tools via command-line
jupyter lab --port 4040 --IdentityProvider.token MY_TOKEN --JupyterMCPServerExtensionApp.allowed_jupyter_mcp_tools="notebook_run-all-cells,notebook_get-selected-cell,notebook_append-execute,console_create"
For the complete list of available tools and detailed configuration instructions, please refer to the Additional Tools documentation.
The server also supports prompt feature of MCP, providing a easy way for user to interact with Jupyter notebooks.
| Name | Description |
|---|---|
jupyter-cite |
Cite specific cells from specified notebook (like @ in Coding IDE or CLI) |
For more details on each prompt, their input parameters, and return content, please refer to the official Prompt documentation.
For comprehensive setup instructions—including Streamable HTTP transport, running as a Jupyter Server extension and advanced configuration—check out our documentation. Or, get started quickly with JupyterLab and STDIO transport here below.
pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 jupyter-mcp-tools>=0.1.4 ipykernel pycrdt
[!TIP] To confirm your environment is correctly configured:
- Open a notebook in JupyterLab
- Type some content in any cell (code or markdown)
- Observe the tab indicator: you should see an "×" appear next to the notebook name, indicating unsaved changes
- Wait a few seconds—the "×" should automatically change to