Data as of
Jupyter MCP Server for Cursor: Setup & Config
Jupyter MCP Server lets Cursor inspect, edit, and execute notebooks with live output feedback.
What you can do with Jupyter in Cursor
A live notebook interface combining precise cell edits, execution feedback, and multimodal results.
- Switch between several notebooks during a data-science workflow.
- Trace tool calls and kernel execution with observability hooks.
Before you start: Jupyter in Cursor
- Python
- uv 0.6.14 or later
- A running authenticated Jupyter service
- JupyterLab collaboration setup as documented
- An MCP-compatible client
The environment setup includes ipykernel, pycrdt, and jupyter-mcp-tools, with JupyterLab pinned to 4.4.1 and jupyter-collaboration to 4.0.2. It separately warns that MCP_TOKEN is required from v1.0.0; consult its linked provider setup for that token's configuration. Image output needs compatible clients and models.
Jupyter Cursor configuration
Choose Cursor configuration scope
For Jupyter MCP Server, open Project: .cursor/mcp.json User: ~/.cursor/mcp.json. Merge into mcpServers at project or user scope.
Add Jupyter MCP Server to Cursor
Use the jupyter-mcp-server entry below in mcpServers. Keep Jupyter MCP Server's documented stdio connection fields and your other Cursor entries.
Check Jupyter MCP Server in Cursor
Jupyter MCP Server: Enable in Cursor’s MCP settings; inspect tools.
Config file · Project: .cursor/mcp.json
User: ~/.cursor/mcp.json
{
"mcpServers": {
"jupyter-mcp-server": {
"command": "uvx",
"args": [
"jupyter-mcp-server@latest"
],
"env": {
"JUPYTER_URL": "<URL of the running Jupyter service>",
"JUPYTER_TOKEN": "<Jupyter authentication token>",
"ALLOW_IMG_OUTPUT": "<true for image-capable clients, otherwise false>",
"MCP_TOKEN": "<MCP authentication token required by the README's version 1.0.0 notice>"
}
}
}
}Jupyter tools available to Cursor
Jupyter's stored tool list documents 19 tools; compare it with Cursor's connected tool list, because the stored list is not a live check.
- list_files
Find list_files under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
Enumerate directories and files exposed by the Jupyter service.
- list_kernels
Find list_kernels under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
- connect_to_jupyter
Find connect_to_jupyter under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
- use_notebook
Find use_notebook under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
- list_notebooks
Find list_notebooks under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
- restart_notebook
Find restart_notebook under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
- unuse_notebook
Find unuse_notebook under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
- read_notebook
Find read_notebook under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
- read_cell
Find read_cell under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
- insert_cell
Find insert_cell under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
- delete_cell
Find delete_cell under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
Remove a cell by index.
- move_cell
Find move_cell under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
Reposition a cell within its notebook.
- overwrite_cell_source
Find overwrite_cell_source under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
Replace an existing cell's source content.
- edit_cell_source
Find edit_cell_source under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
Apply targeted find-and-replace changes to cell source.
- execute_cell
Find execute_cell under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
Run a cell with timeout control and multimodal results.
- insert_execute_code_cell
Find insert_execute_code_cell under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
Create a code cell and run it in one operation.
- execute_code
Find execute_code under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
Run code directly in the kernel, including magic and shell commands.
- notebook_run-all-cells
Find notebook_run-all-cells under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
Run current notebook cells in sequence when JupyterLab mode is enabled.
- notebook_get-selected-cell
Find notebook_get-selected-cell under Jupyter in Cursor's MCP settings; inspect its arguments when the agent requests a call.
Inspect the selected notebook cell in JupyterLab mode.
Troubleshooting Jupyter in Cursor
- Cursor must find uvx jupyter-mcp-server@latest (from uv, for Python tools) for Jupyter MCP Server. Enable the project/user entry in MCP settings and inspect its tools.
- Review ALLOW_IMG_OUTPUT, JUPYTER_TOKEN, JUPYTER_URL, MCP_TOKEN for Jupyter MCP Server before sharing project .cursor/mcp.json; project scope travels with the repository.
- Jupyter MCP Server uses stdio here: Cursor must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
- Known limitation: Requires a configured Jupyter environment and authentication tokens.
- Known limitation: Image handling depends on client and model capabilities.
- Known limitation: Dynamic server connection is unavailable in Jupyter extension mode.
- General Cursor troubleshooting lives in the /clients/cursor guide.
Jupyter MCP Server — details. Cursor guide