slurm_MCP
Servidor MCP para Slurm HPC
Un servidor MCP basado en Python para conectar con clústeres de supercomputación Slurm a través de SSH y exponer capacidades del clúster a clientes como Claude Desktop, Claude Code, Cursor, MCP Inspector, entre otros.
La versión actual ha completado la validación del enlace real:
El servidor MCP se inicia correctamente
Claude/MCP Inspector se conecta correctamente
Se puede conectar a nodos de inicio de sesión remotos de Slurm mediante SSH
Se pueden enviar trabajos
sbatchrealesSe pueden leer los registros (logs) de los trabajos
Se puede realizar un diagnóstico estructurado de errores comunes de ejecución en HPC
Funcionalidades
Actualmente se ofrecen las siguientes capacidades MCP:
list_jobsVer la cola de trabajos actuallist_partitionsVer información de las particionesget_job_statusConsultar el estado, código de salida, motivo y ruta de registro de un trabajo específicosubmit_slurm_jobSubir y enviar un script de Slurmdiagnose_errorRealizar una clasificación estructurada de errores en los registrosjob_log://{job_id}Leer el registro de salida estándar del trabajo
Related MCP server: claude-ssh-mcp
Stack tecnológico
Python
MCP Python SDK (
mcp[cli])Paramiko
Slurm CLI (
squeue,sinfo,sacct,scontrol,sbatch)
Estructura de directorios
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.pyInstalación
Se recomienda utilizar un entorno virtual independiente.
pip install -r requirements.txtConfiguración
El servicio lee la configuración del clúster remoto a través de variables de entorno.
Obligatorias:
SLURM_SSH_HOSTSLURM_SSH_USERNAME
Opcionales:
SLURM_SSH_PORT, por defecto22SLURM_SSH_KEY_PATHSLURM_SSH_PASSWORDSLURM_SSH_ALLOW_UNKNOWN_HOSTS, por defectofalseSLURM_REMOTE_WORKDIR, por defecto/tmp/mcp-slurmSLURM_CONNECT_TIMEOUT, por defecto15SLURM_COMMAND_TIMEOUT, por defecto60SLURM_LOG_MAX_BYTES, por defecto200000MCP_TRANSPORT, por defectostdio
Ejecución local
Por defecto se ejecuta mediante stdio, adecuado para Claude Desktop, Claude Code, Cursor e Inspector:
python .\mcp_hpc_server.pySi desea cambiar a transporte HTTP:
$env:MCP_TRANSPORT="streamable-http"
python .\mcp_hpc_server.pyConfiguración de Claude Desktop
Por favor, consulte:
claude_desktop_config.example.json
Ejemplo:
{
"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"
}
}
}
}Ubicaciones comunes de configuración de Claude Desktop en Windows:
%APPDATA%\Claude\claude_desktop_config.jsonMCP Inspector
Por favor, consulte:
mcp.inspector.template.json
Si configura manualmente en el Inspector:
En
Commandintroduzca la ruta del intérprete de PythonEn
Argumentsintroduzca la ruta demcp_hpc_server.pyEn las variables de entorno, introduzca los elementos relacionados con
SLURM_SSH_*
Ejemplo de script de trabajo
Consulte:
examples/example_job.slurm
Al enviar, modifique según las condiciones reales de su clúster:
Nombre de la partición
Recursos GRES / GPU / DCU
Límite de tiempo
Ruta de salida
Descripción de herramientas
1. list_jobs
Ver los trabajos en la cola actual.
Entrada:
{
"user": "optional"
}2. list_partitions
Ver el estado de las particiones.
Entrada:
{}3. get_job_status
Consultar el estado de un trabajo específico.
Entrada:
{
"job_id": "37285107"
}4. submit_slurm_job
Enviar un script de Slurm.
El campo de entrada es script_content, introduzca directamente el cuerpo del script multilínea, sin añadir comillas adicionales.
5. diagnose_error
Realizar una clasificación estructurada de fallos en el texto del registro.
Entrada:
{
"log_content": "ModuleNotFoundError: No module named 'mpi4py'"
}6. job_log://{job_id}
Leer el registro de salida estándar del trabajo a través de la plantilla de recursos.
Mecanismos de seguridad
Antes del envío, se realiza una comprobación mediante ActionGuard, que bloquea por defecto comandos peligrosos típicos, tales como:
rm -rf /mkfsEscritura directa en
/dev/*shutdown/rebootsudo
Esta es solo la primera capa de protección. Para entornos de producción, se recomienda:
Utilizar una cuenta SSH con privilegios bajos
Limitar el directorio de trabajo remoto
Conservar los registros de operaciones
No subir claves privadas al repositorio
Pruebas
Ejecutar las pruebas mínimas:
python -m unittest tests.test_mcp_serverLas pruebas mínimas actuales cubren:
Validación de la primera línea del script
Normalización de scripts por lotes
Lógica de clasificación de errores
Análisis de particiones
Análisis de estado de trabajos
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-