slurm-mcp
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 testRelated MCP server: systemd-mcp
Прогрессивное раскрытие
Очевидное решение — один инструмент на каждый бинарник: scontrol, sinfo, squeue, sacct, sdiag, sprio, sshare, sacctmgr, — каждый со своей схемой флагов. Поверхность флагов Slurm огромна, и почти всё в ней не относится к конкретному вопросу, но на каждом ходе диалога она целиком лежит в контексте.
Этот сервер предоставляет три инструмента:
инструмент | когда |
| снимок, с которого начинается большинство сессий: узлы, queue, диагностика — одним вызовом |
| одна тема и нопциональные фильтры. Темы — замкнутый словарь, а не командная строка |
| значения колонок и фильтры для одной темы, подтягиваются только при необходимости |
Измерено и воспроизводится командой 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.
This server cannot be installed
Maintenance
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
- AlicenseAqualityDmaintenanceEnables 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.8MIT
- AlicenseNot gradedqualityNot gradedmaintenanceProvides 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
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Slurm HPC clusters via SSH, allowing job submission, monitoring, and error diagnosis through MCP clients like Claude Desktop.6MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage SLURM HPC clusters via SSH. Supports job submission, resource monitoring, queue management, and file operations.104
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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