一个MCP(模型上下文协议)服务器,使AI代理能够通过SSH与远程Slurm集互。
概览
一个MCP(模型上下文协议)服务器,使AI代理能够通过SSH与远程Slurm集互。该服务器提供作业管理、集群监控、交互式会话和文件操作的工具。 - : 通过SSH提交、监控和取消作业 - : 查询GPU可用性并分配GPU资源 - : 支持带有.sqsh镜像的容器化工作负载 - : 启动和管理持久交互会话 - : 保存并重用交互会话配置 - : 浏览、读取和写入集群文件 - : 有组织地访问数据集、模型、结果和日志 服务器通过带有SLURM_前缀的环境变量进行配置。 slurm-mcp-config 工具会自动将你的 .env 文件转换为mcp.json格式: 选项:- -o, --output FILE - 写入文件而非标准输出 - --merge FILE - 合并到现有的 MCP。
概述(AI 翻译)
一个MCP(模型上下文协议)服务器,使AI代理能够通过SSH与远程Slurm集互。该服务器提供作业管理、集群监控、交互式会话和文件操作的工具。
特色
- 远程Slurm管理:通过SSH提交、监控和取消作业
- GPU 支持:查询 GPU 可用性并分配 GPU 资源
- Pyxis/Enroot 容器:支持带有
.sqsh图像的容器化工作负载 - 交互式会话:启动和管理持久的交互式会话
- 会话配置文件:保存并重用交互式会话配置
- 文件操作:浏览、读取和写入集群上的文件
- 目录结构:有组织地访问数据集、模型、结果和日志
安装
快速启动
配置
服务器通过带有 SLURM_ 前缀的环境变量进行配置。
必要设置
| 变量 | 描述 |
|---|---|
SLURM_SSH_HOST |
远程Slurm登录节点主机名 |
SLURM_SSH_USER |
SSH用户名 |
SLURM_USER_ROOT |
用户在集群上的根目录 |
SSH 设置
|变量 |默认 |描述 |
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
Slurm MCP Server
An MCP (Model Context Protocol) server that enables AI agents to interact with remote Slurm clusters via SSH. This server provides tools for job management, cluster monitoring, interactive sessions, and file operations.
Features
- Remote Slurm Management: Submit, monitor, and cancel jobs via SSH
- GPU Support: Query GPU availability and allocate GPU resources
- Pyxis/Enroot Containers: Support for containerized workloads with
.sqshimages - Interactive Sessions: Launch and manage persistent interactive sessions
- Session Profiles: Save and reuse interactive session configurations
- File Operations: Browse, read, and write files on the cluster
- Directory Structure: Organized access to datasets, models, results, and logs
Installation
# Clone the repository
git clone https://github.com/yourusername/slurm-mcp.git
cd slurm-mcp
# Install with pip
pip install -e .
# Or install with development dependencies
pip install -e ".[dev]"
Quick Start
cd /path/to/slurm_mcp
pip install -e .
# Configure
cp .env.example .env
# Edit .env with your cluster details
# Generate mcp.json for Cursor/Claude Desktop
slurm-mcp-config .env -o mcp.json
# Or run directly
slurm-mcp
Configuration
The server is configured via environment variables with the SLURM_ prefix.
Required Settings
| Variable | Description |
|---|---|
SLURM_SSH_HOST |
Remote Slurm login node hostname |
SLURM_SSH_USER |
SSH username |
SLURM_USER_ROOT |
User’s root directory on cluster |
SSH Settings
| Variable | Default | Description |
|---|---|---|
SLURM_SSH_PORT |
22 | SSH port |
SLURM_SSH_KEY_PATH |
None | Path to SSH private key |
SLURM_SSH_PASSWORD |
None | SSH password or key passphrase |
SLURM_SSH_KNOWN_HOSTS |
None | Path to known_hosts file |
Slurm Settings
| Variable | Default | Description |
|---|---|---|
SLURM_DEFAULT_PARTITION |
None | Default partition for jobs |
SLURM_DEFAULT_ACCOUNT |
None | Default account/project |
SLURM_COMMAND_TIMEOUT |
60 | Command timeout in seconds |
SLURM_GPU_PARTITIONS |
None | Comma-separated GPU partition names |
SLURM_CPU_PARTITIONS |
None | Comma-separated CPU partition names |
Interactive Session Settings
| Variable | Default | Description |
|---|---|---|
SLURM_INTERACTIVE_PARTITION |
interactive | Partition for interactive jobs |
SLURM_INTERACTIVE_ACCOUNT |
None | Account for interactive jobs |
SLURM_INTERACTIVE_DEFAULT_TIME |
4:00:00 | Default time limit |
SLURM_INTERACTIVE_DEFAULT_GPUS |
8 | Default GPUs per node |
SLURM_INTERACTIVE_SESSION_TIMEOUT |
3600 | Idle timeout in seconds |
Directory Structure
| Variable | Default | Container Mount |
|---|---|---|
SLURM_USER_ROOT |
Required | - |
SLURM_DIR_DATASETS |
$USER_ROOT/data |
/datasets |
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"slurm": {
"command": "slurm-mcp",
"env": {
"SLURM_SSH_HOST": "login.cluster.example.com",
"SLURM_SSH_USER": "username",
"SLURM_SSH_KEY_PATH": "~/.ssh/id_rsa",
"SLURM_USER_ROOT": "/lustre/users/username",
"SLURM_GPFS_ROOT": "/lustre",
"SLURM_DEFAULT_ACCOUNT": "my_project",
"SLURM_DEFAULT_PARTITION": "batch",
"SLURM_INTERACTIVE_PARTITION": "interactive"
}
}
}
}