Jupyter MCP Server
Let AI agents read, edit and run Jupyter notebooks in real time, locally or in hosted sandboxes.
Sources and review
Checked against public documentation on . Suitability guidance is our editorial judgment; this is not a performance benchmark or an endorsement.
Data work where an agent should run code and inspect results in a notebook you can watch.
About Jupyter MCP Server
Datalayer's Jupyter MCP Server connects agents to Jupyter notebooks so they can add, edit and execute cells and read outputs in real time, against any Jupyter server you run, from a laptop to JupyterHub, or remote sandboxes. It is BSD-licensed and needs no account; Datalayer also offers a hosted endpoint and a Claude Code plugin.
Jupyter MCP Server is listed in this index written primarily in Python, with 1.3k stars on GitHub. Its latest recorded repository push was in November 2026; that is not an ASE editorial review date.
Before connecting: access and data
This record's specific permissions have not been reviewed by ASE. Read the publisher's documentation before copying setup or connecting.
- List the accounts, files and services the enabled tools can read, change or execute. Check your actual credentials and discovered tools.
- Use narrowly scoped credentials and read-only mode where supported. Review proposed writes before approving them; a generated configuration does not apply these limits for you.
- Local launch is not local-only data processing. External services receive requests, and your client may pass tool results to its model provider. Check both destinations before sharing private data.
- Keep keys and browser session files out of shared config, repositories and screenshots. Know how to disconnect the server and separately revoke its credentials or account sessions.
Add Jupyter MCP Server to your MCP client
Generated from the launch command in the project's README. Your client starts the server on demand. Replace <your-token> with your own value first.
Claude Code
claude mcp add jupyter-mcp-server -e JUPYTER_URL=http://localhost:8888 -e 'JUPYTER_TOKEN=<your-token>' -- uvx jupyter-mcp-server@latestCursor
{
"mcpServers": {
"jupyter-mcp-server": {
"command": "uvx",
"args": ["jupyter-mcp-server@latest"],
"env": {
"JUPYTER_URL": "http://localhost:8888",
"JUPYTER_TOKEN": "<your-token>"
}
}
}
}VS Code
{
"servers": {
"jupyter-mcp-server": {
"type": "stdio",
"command": "uvx",
"args": ["jupyter-mcp-server@latest"],
"env": {
"JUPYTER_URL": "http://localhost:8888",
"JUPYTER_TOKEN": "<your-token>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"jupyter-mcp-server": {
"command": "uvx",
"args": ["jupyter-mcp-server@latest"],
"env": {
"JUPYTER_URL": "http://localhost:8888",
"JUPYTER_TOKEN": "<your-token>"
}
}
}
}Codex
[mcp_servers.jupyter-mcp-server]
command = "uvx"
args = ["jupyter-mcp-server@latest"]
env = { JUPYTER_URL = "http://localhost:8888", JUPYTER_TOKEN = "<your-token>" }