Skip to main content
Glama
Zhanyl-tech

slurm-mcp

by Zhanyl-tech

slurm-mcp

MCP-сервер с доступом только на чтение, который отдаёт агентам состояние планировщика Slurm. Список разрешённых действий (allowlist) зашит в код, а не формулируется в промпте; инструментальная поверхность построена на принципе прогрессивного раскрытия, и поэтому вопрос про Slurm не требует контекстного окна на весь Slurm.

v0.1.0. Защитный слой, набор тем и stdio-сервер реализованы и покрыты тестами. Сервер работает с настоящим кластером или с записанными фикстурами — даже без установленного Slurm.


Почему защита в коде

Системный промпт, говорящий «используйте только read-only команды», — это просьба, а не механизм контроля. В сбое он остаётся открытым (fail-open). Джейлбрейка, перепутанного вызова инструмента или обычной галлюцинации достаточно, чтобы добраться до scontrol update на боевом контроллере.

Всё, что может перевести узел в режим drain, должно быть невозможно выразить, а не просто считаться нежелательным. Поэтому список разрешений живёт в guard.py и проверяется при каждом обращении:

  • выполняться могут только восемь read-бинарников;

  • scontrol разрешён для show и запрещён для update, reconfigure, shutdown, reboot, requeue, hold, power и ещё пятнадцати команд;

  • метасимволы шелла в аргументах отклоняются, а команды и так запускаются с shell=False — это защита в глубину, а не единственный рубеж.

Модель угрозы здесь — не злонамеренный пользователь. Это агент, который в три часа ночи прочитал сбивающую с толку строку лога и вот-вот сделает решительный шаг.

Тесты проверяют это на 51 реальной попытке изменения состояния и внедрения кода, а не на тексте промпта, потому что обещание на уровне промпта невозможно проверить:

make test

Related MCP server: systemd-mcp

Прогрессивное раскрытие

Очевидное решение — один инструмент на каждый бинарник: scontrol, sinfo, squeue, sacct, sdiag, sprio, sshare, sacctmgr, — каждый со своей схемой флагов. Поверхность флагов Slurm огромна, и почти всё в ней не относится к конкретному вопросу, но на каждом ходе диалога она целиком лежит в контексте.

Этот сервер предоставляет три инструмента:

инструмент

когда

slurm_overview

снимок, с которого начинается большинство сессий: узлы, queue, диагностика — одним вызовом

slurm_query

одна тема и нопциональные фильтры. Темы — замкнутый словарь, а не командная строка

slurm_describe

значения колонок и фильтры для одной темы, подтягиваются только при необходимости

Измерено и воспроизводится командой make footprint:

  resident, three tools            1088 chars
  detail, fetched on request       3029 chars
  flat one-tool-per-binary         4441 chars  (4.1x resident)

Это измерение стоимости контекста, а не утверждение о качестве. Оно говорит, что детали подгружаются только по запросу; оно не говорит, что агент станет диагностировать лучше. Ничего здесь nowadays not evaluated на slurm-rca-bench.

Темы: queue, nodes, accounting, priority, fairshare, diagnostics, config.

Быстрый старт

Кластер не потребуется.

make install
make surface      # the read-only allowlist, and what is denied
make demo         # a full overview against recorded fixtures
make footprint    # reproduce the context measurement above
make check        # ruff, ruff format, mypy --strict, pytest

Для работы против реального кластера уберите --fixtures:

slurm-mcp overview
slurm-mcp query queue --filter user=alice
slurm-mcp describe accounting

Как MCP-сервер

pip install -e ".[server]"
slurm-mcp serve              # stdio; add --fixtures to serve recorded data

Направьте на эту команду любой MCP-клиент. Каждый ответ помечен [live] или [fixture], так что записанная запись никогда не будет принята за чтение настоящего кластера.

Ограничения

  • Режим только чтение обеспечен только в пределах собственного этой сервера поверхности. Он не песочница для хостовой системы и ничего не говорит о том, какие ещё инструменты переданы агенту.

  • Фикстуры иллюстративны, а не бенчмарк. Это правдоподобная форма кластера, которая делает поверхность исполнимой; никаких результатов на её основе нельзя цитировать.

  • Никакого скоринга. Утверждение здесь относится к инструментальной поверхности, а не к точности диагностики. Измерение того, влияет ли прогрессивное раскрытие на диагноз агента, — задача cluster-sre-agent, и она пока не выполнена.

  • Один диалект Slurm. Форматы вывода проверены на разметке колонок Slurm 25.x; в старее версиях они могут отличаться.

  • sacct может блокироваться. Деградировавший учётный тракт заставляет его зависать, а не возвращать ошибку; вызовы заверяются через 20 секунд тайм-аутом с явным сообщением, потому что агент, ждущий бесконечно, хуже агента, которому сказано, что чтение не удалось.

Связанное

  • cluster-srustifyer — агент, которому потребляется инструментальная поверхность этого вида. Внутренний слой его инструментов только для чтения и есть источник этого подхода; этот репозиторий — самостоятельный сервер, вынесенный из него.

  • cluster-ops-skills — runbook-и, которым следует агент после того, как он смог прочитать с кластера.

  • slurm-rca-бench — место, где пришлось бы будущее доказывать любое утверждение о качестве диагностики.

Лицензия

MIT.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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

  • A
    license
    A
    quality
    D
    maintenance
    Enables read-only interaction with Proxmox homelab VMs and containers, allowing LLM agents to list VMs, monitor status and performance metrics, view snapshots, and check cluster health through natural language queries.
    8
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides AI assistants with safe, read-only access to Linux systemd services, including status monitoring, log querying, and dependency analysis, with optional granular permissions for service management actions.
    2
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage SLURM HPC clusters via SSH. Supports job submission, resource monitoring, queue management, and file operations.
    10
    4

View all related MCP servers

Related MCP Connectors

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Runtime permission, approval, and audit layer for AI agent tool execution.

  • See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.

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/Zhanyl-tech/slurm-mcp'

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