Jupyter Server Provider
The Jupyter Server provider is the default. Code executes through
the code-sandboxes jupyter variant against a local or remote Jupyter Server
(SANDBOX_VARIANT=jupyter), giving you a full Jupyter kernel with process
isolation, persistent state, and rich outputs (images, plots, HTML).
This engine uses the code-sandboxes Jupyter engine. For other
SANDBOX_VARIANT values (kaggle, colab, monty, modal, ...), see the
code-sandboxes documentation for
engine-level parameters and credential setup. Non-jupyter engines also
require the optional jupyter_mcp_sandboxes extension (pip install jupyter_mcp_sandboxes).
Requirements
pip install jupyter-mcp-server
Start a Jupyter Server (or JupyterLab):
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0
Configuration
| Variable | Description | Default |
|---|---|---|
JUPYTER_URL | Jupyter Server URL (used for both document and code sandbox) | http://localhost:8888 |
JUPYTER_TOKEN | Jupyter Server authentication token | None |
DOCUMENT_ID | Default notebook path (optional) | None |
MCP client configuration:
{
"mcpServers": {
"jupyter": {
"command": "uvx",
"args": ["jupyter-mcp-server@latest"],
"env": {
"JUPYTER_URL": "http://localhost:8888",
"JUPYTER_TOKEN": "MY_TOKEN"
}
}
}
}
For advanced deployments that separate notebook storage from kernel execution,
use DOCUMENT_URL / DOCUMENT_TOKEN and CODE_SANDBOX_URL / CODE_SANDBOX_TOKEN
individually. See the Configuration reference for the
full list of variables.