Does Jupyter MCP work with Claude Desktop?
Yes. Jupyter MCP passed every step of our test in Claude Desktop on Oct 20, 2026: it installed, connected, its tools were visible, and an agent used it to finish a real task.
Result
Steps
- install OK
- connect OK
- tools visible OK
- agent task: run cell OK
Test note: server wrapped in harness/scripts/mcp_tee.py to record JSON-RPC; prompts typed via xdotool; tool Allow pop-ups approved by the operator for test servers only; model = Haiku 5.5, picked in the app
From our own harness run, not the maker’s claims. How we test.
Versions tested
Claude Desktop 2.37337.1 (Linux beta, Electron 44.7.0) · jupyter_mcp_server 2.2.4 · connected in 2.1s · tested Oct 20, 2026
Server package tested: jupyter_mcp_server 2.2.4 (uv, Python 3.12.15; resolved 2026-10-20)
Direct and key dependencies as resolved: anyio 4.15.1 · code_sandboxes 1.10.0 · datalayer_reactor 1.3.1 · fastapi 0.153.0 · httpx 0.28.1 · jupyter-collaboration 5.0.4 · jupyter-server-client 0.1.1 · jupyter_nbmodel_client 1.5.1 · jupyter_server 2.21.1 · jupyter_server_nbmodel 0.2.9 · mcp 2.3.0 · opentelemetry-api 1.45.1 · opentelemetry-sdk 1.45.1 · pycrdt 0.14.10 · pydantic 2.14.1 · pydantic_core 2.50.1 · reactor_mcp_server 1.3.1 · sse-starlette 3.5.0 · starlette 1.9.0 · typer 0.27.3 · typing_extensions 4.16.0 · uvicorn 0.54.0
All 139 resolved dependencies
annotated-doc==0.0.5
annotated-types==0.8.0
anyio==4.15.1
argon2-cffi==25.1.0
argon2-cffi-bindings==26.1.0
arrow==1.4.0
asttokens==3.0.2
async-lru==2.4.0
attrs==26.1.0
babel==2.18.0
beautifulsoup4==4.15.0
bleach==6.4.0
certifi==2026.10.19
cffi==2.1.1
charset-normalizer==3.5.2
click==8.5.0
code_sandboxes==1.10.0
comm==0.2.3
cryptography==50.0.2
datalayer_reactor==1.3.1
debugpy==1.8.22
defusedxml==0.7.1
executing==2.3.0
Faker==40.43.0
fastapi==0.153.0
fastjsonschema==2.22.2
fqdn==1.6.0
h11==0.16.0
httpcore==1.0.9
httpcore2==2.15.1
httpx==0.28.1
httpx2==2.15.1
idna==3.20
ipykernel==7.4.0
ipython==9.17.1
ipython_pygments_lexers==1.1.1
isoduration==20.11.0
jedi==0.20.1
Jinja2==3.1.6
json5==0.17.3
jsonpointer==3.4
jsonschema==4.26.0
jsonschema-specifications==2025.9.1
jupyter-collaboration==5.0.4
jupyter-collaboration-ui==3.0.4
jupyter-docprovider==3.0.4
jupyter-events==0.12.1
jupyter-lsp==2.3.1
jupyter-mimetypes==0.2.0
jupyter-server-client==0.1.1
jupyter-server-ydoc==3.0.4
jupyter-ydoc==4.1.1
jupyter_builder==1.2.3
jupyter_client==8.10.0
jupyter_core==5.9.1
jupyter_kernel_client==1.0.2
jupyter_nbmodel_client==1.5.1
jupyter_server==2.21.1
jupyter_server_fileid==0.10.0
jupyter_server_nbmodel==0.2.9
jupyter_server_terminals==0.5.4
jupyterlab==4.6.4
jupyterlab_pygments==0.3.0
jupyterlab_server==2.28.1
lark==1.3.1
markdown-it-py==4.2.0
MarkupSafe==3.0.4
matplotlib-inline==0.2.2
mcp==2.3.0
mcp-types==2.3.0
mdurl==0.1.2
mistune==3.4.0
nbclient==0.11.0
nbconvert==7.17.2
nbformat==5.11.1
nest-asyncio2==1.7.4
notebook_shim==0.2.4
opentelemetry-api==1.45.1
opentelemetry-sdk==1.45.1
opentelemetry-semantic-conventions==0.66b1
packaging==26.3
pandocfilters==1.5.1
parso==0.8.7
pexpect==4.9.0
platformdirs==4.13.5
pluggy==1.7.0
prometheus_client==0.26.0
prompt_toolkit==3.0.53
psutil==7.2.2
ptyprocess==0.7.0
pure_eval==0.2.4
pyarrow==26.0.0
pycparser==3.11
pycrdt==0.14.10
pycrdt-store==0.1.5
pycrdt-websocket==0.16.5
pydantic==2.14.1
pydantic_core==2.50.1
Pygments==2.21.0
PyJWT==2.15.1
python-dateutil==2.9.0.post0
python-dotenv==1.2.4
python-json-logger==4.2.0
python-multipart==0.0.32
PyYAML==6.0.3
pyzmq==27.2.0
reactor_mcp_server==1.3.1
referencing==0.37.0
requests==2.34.2
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rfc3987-syntax==1.1.0
rich==15.0.0
rpds-py==2026.9.1
Send2Trash==2.1.0
shellingham==1.5.4
six==1.17.0
soupsieve==3.0.3
sqlite-anyio==0.2.10
sse-starlette==3.5.0
stack-data==0.6.3
starlette==1.9.0
terminado==0.18.1
tinycss2==1.5.1
tornado==6.5.10
traitlets==5.16.1
truststore==0.10.5
typer==0.27.3
typing-inspection==0.4.4
typing_extensions==4.16.0
tzdata==2026.5
uri-template==1.3.0
urllib3==2.8.0
uvicorn==0.54.0
wcwidth==0.9.2
webcolors==25.10.0
webencodings==0.6.1
websocket-client==1.9.2
websockets==17.3Captured with: uvx --from jupyter-mcp-server python (importlib.metadata in the same uvx env; equivalent to uv pip freeze).
What happened in this run
Install config we used
{
"command": "uvx",
"args": [
"jupyter-mcp-server"
]
}Connection check
initialize seen in tee log after app restartTools check
tools/list answered (tee log)
Agent task: run cell
- 1 calls reached the server
- Agent’s answer (excerpt):
The output is 42.
Raw details from our harness log for this run. Secrets redacted.
Set it up in Claude Desktop
Copy-paste config for every app is on the Jupyter MCP page. Not connecting? Claude Desktop MCP troubleshooting.
Other apps we tested it in: Claude Code (passed) · Cursor (passed) · ChatGPT (Codex) (failed).