af-jupyterlab-mcp
MCP server that lets AF users create, inspect, and delete their own per-user JupyterLab servers on the UChicago ATLAS Analysis Facility Kubernetes cluster — the same notebooks af-portal deploys today, exposed as tools for LLMs.
Architecture
LLM <--MCP/HTTP--> af-jupyterlab-mcp <--k8s API--> notebook namespace (Pod/Service/Secret/Ingress)
^
| Authorization: Bearer <broker-issued JWT>
|
af-mcp-platform credential broker
Phase 1 (this repo, today) ships six tools that manage the Pod/Service/
Secret/Ingress quadruple for a notebook, ported from af-portal's
portal/jupyterlab.py and its four Jinja templates. Phase 2 (tracked, not yet
built) adds a typed proxy to the Datalayer jupyter-mcp-server running inside
the notebook itself — see
maniaclab/af-mcp-platform#189.
Tool surface
create_jupyter_serverlist_jupyter_serversget_jupyter_serverdelete_jupyter_serverget_gpu_availabilitylist_supported_images
The owner of every server is always claims.unixname from the verified broker
JWT — no tool takes an owner/username argument.
See Contributing for development setup.