YS

yidong72/slurm_mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

20 stars 3 forks 质量 63 趋势 10

一个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 .sqsh images
  • 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
在 GitHub 查看完整 README

安装

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" } } } }