Skip to content

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_server
  • list_jupyter_servers
  • get_jupyter_server
  • delete_jupyter_server
  • get_gpu_availability
  • list_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.