Skip to main content
Glama
slurm-mcp

slurm-mcp

by Zhanyl-tech

slurm-mcp

Slurm 스케줄러 상태를 에이전트에게 노출하는 읽기 전용 MCP 서버입니다. 허용 목록은 프롬프트에 요청하는 것이 아니라 코드로 강제되며, 도구 표면은 점진적 공개(progressive disclosure)를 사용하므로 Slurm 형태의 질문이 Slurm 형태의 컨텍스트 창 비용을 소모하지 않습니다.

v0.1.0. 가드(guard), 주제 표면, 그리고 stdio 서버는 구현되어 테스트되었습니다. Slurm이 설치되지 않은 상태에서 실제 클러스터 또는 기록된 픽스처(fixtures)로 실행됩니다.


가드를 코드에 넣는 이유

*"읽기 전용 명령만 사용하라"*고 말하는 시스템 프롬프트는 요청이지 제어가 아닙니다. 실패하면 열린 상태로 동작합니다. 탈옥(jailbreak), 혼란스러운 도구 호출, 또는 평범한 환각만으로도 운영 컨트롤러에서 scontrol update에 도달할 수 있습니다.

노드를 드레인시킬 수 있는 행위는 단순히 권장되지 않는 정도가 아니라 표현 자체가 불가능해야 합니다. 그래서 허용 목록은 guard.py에 있고 모든 호출에서 실행됩니다.

  • 실행될 수 있는 읽기 전용 바이너리는 여덟 개뿐입니다.

  • scontrol은 show에만 허용되며 update, reconfigure, shutdown, reboot, requeue, hold, power 및 그 외 15개는 거부됩니다.

  • 인자 내 셸 메타문자는 거부되고, 명령은 어쨌든 shell=False로 실행됩니다 — 유일한 장애물이 아니라 심층 방어입니다.

위협 모델은 악의적인 사용자가 아닙니다. 새벽 3시에 혼란스러운 로그 줄 하나를 읽고 결정적인 행동을 하려는 에이전트입니다.

테스트는 프롬프트 문구를 단정하는 대신 실제 변경(mutating) 및 주입(injection) 시도 51건으로 이 동작을 검증합니다. 프롬프트 수준의 약속은 테스트할 수 없기 때문입니다.

make test

Related MCP server: mcp-slurm

점진적 공개

당연한 설계는 바이너리별 도구를 하나씩 — sinfo, squeue, sacct, sdiag, sprio, sshare, scontrol, sacctmgr — 노출하면서 각각의 플래그에 대한 스키마를 포함하는 것입니다. Slurm의 플래그 표면은 방대하고 대부분은 주어진 질문과 무관하지만, 모두 매 턴마다 컨텍스트에 존재합니다.

이 서버는 세 개 도구만 노출합니다.

도구

사용 시점

slurm_overview

대부분의 세션이 여는 스냅샷 — 노드, 큐, 진단을 한 번의 호출로 제공

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)

이는 품질 주장이 아니라 컨텍스트 비용 측정입니다. 세부 정보는 요청받기 전까지 상주하지 않음을 알리는 것이지, 에이전트가 더 나은 진단을 할 거라는 의미는 아닙니다. 여기 있는 어떤 것도 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-sre-agent — 이와 같은 도구 표면을 소비하는 에이전트. 설계는 이 에이전트 내부의 읽기 전용 도구 계층에서 시작됐고, 이 레포지지토리는 그 독립 실행형 서버입니다.

  • cluster-ops-skills — 클러스터를 읽을 수 있게 된 에이전트가 수행하는 런북입니다.

  • (https://github.com/Zhanyl-tech/slurm-rca-bench) — 진단 품질은 여기서 검증되야 합니다.

라이선스

MIT.

Related MCP Connectors

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
  • 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.
    4 npm
    4
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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