slurm_MCP
Slurm HPC MCP Server
Ein Python-basierter MCP-Server, der dazu dient, über SSH eine Verbindung zu Slurm-HPC-Clustern herzustellen und aufrufbare Cluster-Funktionen für Clients wie Claude Desktop, Claude Code, Cursor und den MCP Inspector bereitzustellen.
Die aktuelle Version hat die Validierung der echten Kette abgeschlossen:
MCP-Server kann normal gestartet werden
Claude/MCP Inspector kann normal eine Verbindung herstellen
Verbindung zu entfernten Slurm-Login-Knoten via SSH möglich
Echte
sbatch-Jobs können eingereicht werdenJob-Logs können gelesen werden
Strukturierte Diagnose für häufige HPC-Laufzeitfehler möglich
Funktionen
Derzeit werden folgende MCP-Fähigkeiten bereitgestellt:
list_jobsAnzeigen der aktuellen Job-Warteschlangelist_partitionsAnzeigen von Partitionsinformationenget_job_statusAbfragen von Status, Exit-Code, Grund und Log-Pfad eines bestimmten Jobssubmit_slurm_jobHochladen und Einreichen von Slurm-Skriptendiagnose_errorStrukturierte Fehlerklassifizierung für Logsjob_log://{job_id}Lesen des Standard-Ausgabe-Logs eines Jobs
Related MCP server: claude-ssh-mcp
Technischer Stack
Python
MCP Python SDK (
mcp[cli])Paramiko
Slurm CLI (
squeue,sinfo,sacct,scontrol,sbatch)
Verzeichnisstruktur
slurm-hpc-mcp/
├─ mcp_hpc_server.py
├─ README.md
├─ requirements.txt
├─ claude_desktop_config.example.json
├─ mcp.inspector.template.json
├─ examples/
│ └─ example_job.slurm
└─ tests/
└─ test_mcp_server.pyInstallation
Es wird empfohlen, eine separate virtuelle Umgebung zu verwenden.
pip install -r requirements.txtKonfiguration
Der Dienst liest die Konfiguration des entfernten Clusters über Umgebungsvariablen.
Erforderlich:
SLURM_SSH_HOSTSLURM_SSH_USERNAME
Optional:
SLURM_SSH_PORT, Standard22SLURM_SSH_KEY_PATHSLURM_SSH_PASSWORDSLURM_SSH_ALLOW_UNKNOWN_HOSTS, StandardfalseSLURM_REMOTE_WORKDIR, Standard/tmp/mcp-slurmSLURM_CONNECT_TIMEOUT, Standard15SLURM_COMMAND_TIMEOUT, Standard60SLURM_LOG_MAX_BYTES, Standard200000MCP_TRANSPORT, Standardstdio
Lokale Ausführung
Standardmäßig erfolgt die Ausführung über stdio, was für Claude Desktop, Claude Code, Cursor und den Inspector geeignet ist:
python .\mcp_hpc_server.pyFür den Wechsel auf HTTP-Transport:
$env:MCP_TRANSPORT="streamable-http"
python .\mcp_hpc_server.pyClaude Desktop Konfiguration
Bitte beachten Sie:
claude_desktop_config.example.json
Beispiel:
{
"mcpServers": {
"slurm-hpc": {
"type": "stdio",
"command": "<your-python-executable>",
"args": ["<your-project-dir>/mcp_hpc_server.py"],
"env": {
"SLURM_SSH_HOST": "your-login-host",
"SLURM_SSH_PORT": "22",
"SLURM_SSH_USERNAME": "your-username",
"SLURM_SSH_KEY_PATH": "<your-ssh-private-key-path>",
"SLURM_SSH_ALLOW_UNKNOWN_HOSTS": "true"
}
}
}
}Typische Konfigurationspfade für Claude Desktop unter Windows:
%APPDATA%\Claude\claude_desktop_config.jsonMCP Inspector
Bitte beachten Sie:
mcp.inspector.template.json
Wenn Sie die Konfiguration direkt im Inspector manuell vornehmen:
Command: Pfad zum Python-InterpreterArguments: Pfad zumcp_hpc_server.pyUmgebungsvariablen:
SLURM_SSH_*relevante Einträge
Beispiel-Job-Skript
Siehe:
examples/example_job.slurm
Bitte passen Sie beim Einreichen die Werte an Ihre tatsächliche Cluster-Umgebung an:
Partitionsname
GRES / GPU / DCU Ressourcen
Zeitlimit
Ausgabepfad
Tool-Beschreibung
1. list_jobs
Anzeigen der Jobs in der aktuellen Warteschlange.
Eingabe:
{
"user": "optional"
}2. list_partitions
Anzeigen des Partitionsstatus.
Eingabe:
{}3. get_job_status
Abfragen des Status eines bestimmten Jobs.
Eingabe:
{
"job_id": "37285107"
}4. submit_slurm_job
Einreichen eines Slurm-Skripts.
Das Eingabefeld ist script_content; geben Sie den Inhalt des mehrzeiligen Skripts direkt ein, ohne zusätzliche Anführungszeichen.
5. diagnose_error
Strukturierte Fehlerklassifizierung für Log-Texte.
Eingabe:
{
"log_content": "ModuleNotFoundError: No module named 'mpi4py'"
}6. job_log://{job_id}
Lesen des Standard-Ausgabe-Logs eines Jobs über eine Ressourcen-Vorlage.
Sicherheitsmechanismen
Vor dem Einreichen erfolgt eine Prüfung durch ActionGuard, die standardmäßig typische gefährliche Befehle blockiert, wie zum Beispiel:
rm -rf /mkfsDirektes Schreiben auf
/dev/*shutdown/rebootsudo
Dies ist nur die erste Schutzschicht. Für Produktionsumgebungen wird weiterhin empfohlen:
Verwendung eines SSH-Kontos mit niedrigen Berechtigungen
Einschränkung des entfernten Arbeitsverzeichnisses
Aufbewahrung von Betriebsprotokollen
Keine privaten Schlüssel in Repositories hochladen
Testen
Minimalen Test ausführen:
python -m unittest tests.test_mcp_serverAktuelle Abdeckung der minimalen Tests:
Validierung der ersten Skriptzeile
Normalisierung von Batch-Skripten
Fehlerklassifizierungslogik
Partitionsanalyse
Job-Status-Analyse
This server cannot be deployed
Maintenance
Related MCP Connectors
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Customer support for MCP servers: work your tickets from Claude or any MCP client. Service key auth.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables SSH remote access to servers through Claude, allowing users to execute commands, transfer files via SFTP, and manage multiple remote connections using natural language.128MIT
- AlicenseAqualityCmaintenanceEnables Claude to connect to servers via SSH, execute commands, transfer files, and manage connections through natural language.911 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables Claude Code to interact with a TACC or SLURM HPC cluster for bioinformatics pipelines, allowing job management, log reading, file browsing, remote script execution, and job submission through natural language.-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage SLURM HPC clusters via SSH. Supports job submission, resource monitoring, queue management, and file operations.7 npm4-