Skip to main content
Glama

af-jupyterlab-mcp

MCP-сервер, который позволяет пользователям AF создавать, просматривать и удалять свои собственные пользовательские серверы JupyterLab в кластере Kubernetes UChicago ATLAS Analysis Facility — те же ноутбуки, которые af-portal разворачивает сегодня, представленные как инструменты для LLM.

Архитектура

LLM <--MCP/HTTP--> af-jupyterlab-mcp <--k8s API--> notebook namespace (Pod/Service/Secret/Ingress)
                         ^
                         | Authorization: Bearer <broker-issued JWT>
                         |
              af-mcp-platform credential broker

Фаза 1 (этот репозиторий, сегодня) включает шесть инструментов, которые управляют четверкой Pod/Service/Secret/Ingress для ноутбука, перенесенных из portal/jupyterlab.py af-portal и его четырех шаблонов Jinja. Фаза 2 (отслеживается, еще не построена) добавляет типизированный прокси к Datalayer jupyter-mcp-server, работающему внутри самого ноутбука — см. maniaclab/af-mcp-platform#189.

Related MCP server: jlab-mcp

Структура проекта

src/af_jupyterlab_mcp/
├── cli.py               # argparse: `af-jupyterlab-mcp serve` (HTTP only)
├── config.py            # env-driven Settings: namespace, domain, image allowlist, quotas
├── server.py            # FastMCP setup, lifespan (k8s client + broker verifier), tool registration
├── auth/
│   └── broker.py        # extract_bearer(), get_broker_claims() -- broker-issued JWT verification
├── k8s/
│   ├── errors.py         # GuardrailError, NameConflictError, NotFoundOrNotYoursError, ...
│   ├── guardrails.py     # CPU/memory/duration range + image allowlist validation
│   ├── names.py          # sanitize_k8s_pod_name, name availability, name generation
│   ├── templates.py      # Jinja rendering of the four ported manifests
│   ├── notebooks.py      # create/get/list/delete notebook (ported portal logic)
│   ├── gpu.py            # get_gpu_availability (ported portal logic)
│   └── templates/        # pod.yaml.j2, service.yaml.j2, secret.yaml.j2, ingress.yaml.j2
│                          # (ported verbatim from af-portal/portal/templates/jupyterlab/)
└── tools/
    └── jupyterlab.py     # the six @mcp.tool() functions

Набор инструментов

  • create_jupyter_server

  • list_jupyter_servers

  • get_jupyter_server

  • delete_jupyter_server

  • get_gpu_availability

  • list_supported_images

Владелец каждого сервера всегда определяется как claims.unixname из проверенного JWT брокера — ни один инструмент не принимает аргумент владельца/имени пользователя.

Команды сборки и тестирования

pixi run test          # quick tests
pixi run lint          # pre-commit + pylint
pixi run helm-lint      # lint + smoke-render the Helm chart
A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
<1hResponse time
0dRelease cycle
6Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    A
    quality
    B
    maintenance
    An MCP server that enables LLMs to execute Python code on GPU-accelerated compute nodes within SLURM-managed HPC environments. It bridges local clients to remote clusters by launching JupyterLab sessions via SLURM jobs to facilitate high-performance notebook-based computation.
    7
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that exposes Rucio distributed data management operations as tools for LLMs. Designed for ATLAS physicists working with grid data on analysis facilities, but usable with any Rucio instance.
    5
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables code execution in isolated Docker containers with persistent IPython, Node.js, or R kernels, supporting file import/export and cross-session transfers via MCP tools.
    6
    MIT

View all related MCP servers

Related MCP Connectors

  • Massed Compute MCP — GPU inventory, VM lifecycle, billing, SSH keys, and setup recipes.

  • Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.

  • This MCP server enables users to perform scientific computations regarding linear algebra and vect…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/maniaclab/af-jupyterlab-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server