slurm-mcp
slurm-mcp
Un servidor MCP de solo lectura que expone el estado del planificador Slurm a los agentes. La lista de permitidos se aplica en el código, no se solicita en un prompt, y la superficie de herramientas usa divulgación progresiva para que una pregunta con forma de Slurm no cueste una ventana de contexto con forma de Slurm.
v0.1.0. La salvaguarda, la superficie de temas y el servidor stdio están construidos y probados. Se ejecuta contra un clúster real o contra registros de prueba (fixtures) sin tener Slurm instalado.
Por qué la salvaguarda está en el código
Un prompt de sistema que diga «usa solo comandos de solo lectura» es una petición, no un control. En caso de fallo, queda abierto (fail open). Un jailbreak, una llamada a herramienta confusa o una alucinación corriente es suficiente para llegar a scontrol update en un controlador de producción.
Cualquier cosa que pudiera drenar un nodo tiene que ser imposible de expresar, no solo desaconsejada. Por eso la lista de permitidos vive en guard.py y se ejecuta en cada invocación:
solo ocho binarios de lectura pueden ejecutarse en absoluto;
scontrolestá permitido parashowy denegado paraupdate,reconfigure,shutdown,reboot,requeue,hold,powery otros quince;los metacaracteres de shell en los argumentos se rechazan, y de todos modos los comandos se ejecutan con
shell=False— defensa en profundidad, no la única barrera.
El modelo de amenaza no es un usuario malintencionado. Es un agente que a las 3 de la madrugada ha leído una línea de log confusa y está a punto de hacer algo decisivo.
Las pruebas lo demuestran con 51 intentos reales de mutación e inyección, en lugar de comprobar el texto de un prompt, porque una promesa a nivel de prompt no se puede probar:
make testRelated MCP server: mcp-slurm
Divulgación progresiva
El diseño evidente expone una herramienta por binario — sinfo, squeue, sacct, sdiag, sprio, sshare, scontrol, sacctmgr — cada una con un esquema para sus opciones. La superficie de opciones de Slurm es enorme y la mayor parte es irrelevante para una pregunta concreta, pero toda ello queda en el contexto en cada turno.
Este servidor expone tres herramientas:
herramienta | cuándo |
| la instantánea con la que se abre la mayoría de las sesiones — nodos, cola y diagnósticos en una sola llamada |
| un tema más filtros opcionales. Los temas son un vocabulario cerrado, no una línea de comandos |
| los significados de las columnas y filtros de un tema, que se recuperan solo cuando se necesitan |
Medido y reproducible con make footprint:
resident, three tools 1088 chars
detail, fetched on request 3029 chars
flat one-tool-per-binary 4441 chars (4.1x resident)Esa es una medición del coste de contexto, no una afirmación de calidad. Dice que el detalle no está en el contexto hasta que se solicita; no dice que el agente vaya a diagnosticar mejor nada. Nada de esto se ha evaluado con slurm-rca-bench.
Temas: queue, nodes, accounting, priority, fairshare, diagnostics, config.
Inicio rápido
No se necesita un clúster.
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, pytestContra un clúster real, elimina la opción --fixtures:
slurm-mcp overview
slurm-mcp query queue --filter user=alice
slurm-mcp describe accountingComo servidor MCP
pip install -e ".[server]"
slurm-mcp serve # stdio; add --fixtures to serve recorded dataApunte cualquier cliente MCP a ese comando. Cada respuesta está etiquetada como [live] o [fixture], así los datos grabados nunca se pueden confundir con una lectura real del clúster.
Limitaciones
El modo de solo lectura se aplica únicamente a la superficie de este servidor. No aísla el host, y no dice nada sobre qué otras herramientas se han dado a un agente.
Los fixtures son ilustrativos, no un benchmark. Tienen una forma plausible de clúster para que la superficie sea ejecutable; no se debe citar ningún resultado obtenido de ellos.
Sin puntuación. La afirmación aquí es sobre la superficie de centrales, no sobre la exactitud del diagnóstico. Medir si la divulgación progresiva cambia el diagnóstico de un agente es tarea de
cluster-sre-agent, y aún no se ha hecho.Un solo dialecto de Slurm. Los formatos de salida se prueban contra los diseños de columnas de Slurm 25.x. Las versiones antiguas pueden diferir.
sacctpuede bloquearse. Un sistema de contabilidad degradado hace que se cuelgue en lugar de devolver error; las llamadas se abortan a los 20 segundos y así lo indican, porque un agente que espera para siempre es peor que un agente al que se le dice que la lectura falló.
Relacionados
cluster-sre-agent — el agente que consume una superficie como esta. Esa capa interna de herramientas de solo lectura es de donde surgió este diseño; este repositorio es el servidor independiente.
cluster-ops-skills — los runbooks que sigue un agente una vez que puede leer el clúster.
slurm-rca-bench — donde debería demostrarse una afirmación sobre la calidad del diagnóstico.
Licencia
MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Discover Frontier inference capabilities and read sanitized usage through read-only tools.
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.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
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
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage SLURM HPC clusters via SSH. Supports job submission, resource monitoring, queue management, and file operations.4 npm4-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage SLURM cluster jobs with safety guardrails, including file transfer, job submission, log reading, and remote command execution.1MIT
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to OpenClaw and Codex operational data like status, tasks, sessions, logs, and Git changes. Ensures safety via redaction, allowlists, and bounded outputs.MIT