jupyter-ml
| Version | 2026.144.1531 |
| Repo | superproject |
GPU JupyterLab serving notebooks plus a CRDT MCP endpoint, composing the llama.cpp + vLLM/unsloth ML stack. A Tier-2 GPU meta-layer that serves JupyterLab on port 8888 from the /workspace volume under supervisord and exposes a CRDT MCP endpoint at /mcp for agent-driven notebook editing. It composes the llama-cpp (llama.cpp CLI + GGUF tools), unsloth (vLLM inference + LoRA fine-tuning), and jupyter-mcp candies on top of the spaCy NLP model and the jupyterlab-quarto extension. Every composed piece lands a concrete, probeable artifact: the llama-cli binary, the vLLM wheel in the pixi env, the spaCy model, the quarto labextension, and the live notebook + MCP API — so being wrong is observable, not silent.
Services
Section titled “Services”jupyter-ml
Acceptance plan
Section titled “Acceptance plan”This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.
| Intent | Step |
|---|---|
check |
the spaCy en_core_web_sm model loads inside the pixi default environment |
check |
the jupyterlab-quarto extension is enabled in the labextension registry |
check |
the llama.cpp CLI binary is present from the composed llama-cpp candy |
check |
the vLLM inference engine wheel is installed in the pixi env from the composed unsloth candy |
check |
the workspace volume is mounted for notebooks |
check |
the JupyterLab service is running under supervisord |
check |
the JupyterLab REST API answers on the published port with a server version |
check |
the Jupyter CRDT MCP server responds to a protocol ping |
check |
the MCP tool catalog exposes the cell manipulation tools |
agent-check |
an agent can create a notebook and drive its cells through the MCP server end to end |
check |
command=${HOME}/.pixi/envs/default/bin/python -c “import spacy; spacy.load(‘en_core_web_sm’)” |
check |
command=${HOME}/.pixi/envs/default/bin/jupyter labextension list 2>&1 |
check |
mcp=call |