slurm_MCP
MCP-сервер для Slurm HPC
MCP-сервер на базе Python, предназначенный для подключения к суперкомпьютерным кластерам Slurm через SSH и предоставления вызываемых возможностей кластера таким клиентам, как Claude Desktop, Claude Code, Cursor, MCP Inspector и другим.
Текущая версия прошла проверку реальной цепочки взаимодействия:
MCP-сервер успешно запускается
Claude/MCP Inspector успешно подключаются
Возможно подключение к удаленным узлам входа Slurm по SSH
Возможно выполнение реальных заданий
sbatchВозможно чтение логов заданий
Возможно проведение структурированной диагностики типичных ошибок HPC
Функциональность
В настоящее время предоставляются следующие возможности MCP:
list_jobsПросмотр текущей очереди заданийlist_partitionsПросмотр информации о разделахget_job_statusЗапрос статуса, кода выхода, причины и пути к логам указанного заданияsubmit_slurm_jobЗагрузка и отправка скрипта Slurmdiagnose_errorСтруктурированная классификация ошибок на основе логовjob_log://{job_id}Чтение лога стандартного вывода задания
Related MCP server: claude-ssh-mcp
Технологический стек
Python
MCP Python SDK (
mcp[cli])Paramiko
Slurm CLI (
squeue,sinfo,sacct,scontrol,sbatch)
Структура каталогов
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.pyУстановка
Рекомендуется использовать отдельное виртуальное окружение.
pip install -r requirements.txtСпособ настройки
Сервис считывает конфигурацию удаленного кластера через переменные окружения.
Обязательные:
SLURM_SSH_HOSTSLURM_SSH_USERNAME
Опциональные:
SLURM_SSH_PORT, по умолчанию22SLURM_SSH_KEY_PATHSLURM_SSH_PASSWORDSLURM_SSH_ALLOW_UNKNOWN_HOSTS, по умолчаниюfalseSLURM_REMOTE_WORKDIR, по умолчанию/tmp/mcp-slurmSLURM_CONNECT_TIMEOUT, по умолчанию15SLURM_COMMAND_TIMEOUT, по умолчанию60SLURM_LOG_MAX_BYTES, по умолчанию200000MCP_TRANSPORT, по умолчаниюstdio
Локальный запуск
По умолчанию запускается через stdio, что подходит для Claude Desktop, Claude Code, Cursor, Inspector:
python .\mcp_hpc_server.pyЕсли необходимо переключиться на HTTP-транспорт:
$env:MCP_TRANSPORT="streamable-http"
python .\mcp_hpc_server.pyНастройка Claude Desktop
Пожалуйста, обратитесь к:
claude_desktop_config.example.json
Пример:
{
"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"
}
}
}
}Типичное расположение конфигурации Claude Desktop в Windows:
%APPDATA%\Claude\claude_desktop_config.jsonMCP Inspector
Пожалуйста, обратитесь к:
mcp.inspector.template.json
Если вы настраиваете вручную прямо в Inspector:
В поле
Commandукажите путь к интерпретатору PythonВ поле
Argumentsукажите путь кmcp_hpc_server.pyВ переменных окружения укажите соответствующие параметры
SLURM_SSH_*
Пример скрипта задания
См.:
examples/example_job.slurm
При отправке, пожалуйста, измените параметры в соответствии с реальными условиями вашего кластера:
Имя раздела
Ресурсы GRES / GPU / DCU
Ограничение по времени
Путь вывода
Описание инструментов
1. list_jobs
Просмотр заданий в текущей очереди.
Ввод:
{
"user": "optional"
}2. list_partitions
Просмотр состояния разделов.
Ввод:
{}3. get_job_status
Запрос статуса указанного задания.
Ввод:
{
"job_id": "37285107"
}4. submit_slurm_job
Отправка скрипта Slurm.
Поле ввода — script_content, просто вставьте текст многострочного скрипта, не добавляя дополнительных кавычек.
5. diagnose_error
Структурированная классификация ошибок на основе текста лога.
Ввод:
{
"log_content": "ModuleNotFoundError: No module named 'mpi4py'"
}6. job_log://{job_id}
Чтение лога стандартного вывода задания через шаблон ресурса.
Механизмы безопасности
Перед отправкой выполняется проверка через ActionGuard, которая по умолчанию блокирует типичные опасные команды, например:
rm -rf /mkfsПрямая запись в
/dev/*shutdown/rebootsudo
Это лишь первый уровень защиты. В производственной среде все равно рекомендуется:
Использовать SSH-аккаунт с низкими привилегиями
Ограничивать удаленную рабочую директорию
Сохранять логи операций
Не добавлять приватные ключи в репозиторий
Тестирование
Запуск минимального теста:
python -m unittest tests.test_mcp_serverТекущее минимальное тестирование охватывает:
Проверку первой строки скрипта
Нормализацию пакетных скриптов
Логику классификации ошибок
Парсинг разделов
Парсинг статуса заданий
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-