slurm_MCP

slurm_MCP

Enables interaction with Slurm HPC clusters via SSH, allowing job submission, monitoring, and error diagnosis through MCP clients like Claude Desktop.

Category
访问服务器

README

Slurm HPC MCP Server

一个基于 Python 的 MCP Server,用于通过 SSH 连接 Slurm 超算集群,并向 Claude Desktop、Claude Code、Cursor、MCP Inspector 等客户端暴露可调用的集群能力。

当前版本已经完成真实链路验证:

  • MCP Server 可正常启动
  • Claude/MCP Inspector 可正常连接
  • 可通过 SSH 连接远程 Slurm 登录节点
  • 可提交真实 sbatch 作业
  • 可读取作业日志
  • 可对常见 HPC 运行错误做结构化诊断

功能

当前提供以下 MCP 能力:

  • list_jobs 查看当前作业队列
  • list_partitions 查看分区信息
  • get_job_status 查询指定作业状态、退出码、原因、日志路径
  • submit_slurm_job 上传并提交 Slurm 脚本
  • diagnose_error 对日志做结构化错误分类
  • job_log://{job_id} 读取作业标准输出日志

技术栈

  • 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_HOST
  • SLURM_SSH_USERNAME

可选:

  • SLURM_SSH_PORT,默认 22
  • SLURM_SSH_KEY_PATH
  • SLURM_SSH_PASSWORD
  • SLURM_SSH_ALLOW_UNKNOWN_HOSTS,默认 false
  • SLURM_REMOTE_WORKDIR,默认 /tmp/mcp-slurm
  • SLURM_CONNECT_TIMEOUT,默认 15
  • SLURM_COMMAND_TIMEOUT,默认 60
  • SLURM_LOG_MAX_BYTES,默认 200000
  • MCP_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"
      }
    }
  }
}

Windows 下 Claude Desktop 常见配置位置:

%APPDATA%\Claude\claude_desktop_config.json

MCP Inspector

请参考:

  • mcp.inspector.template.json

如果你直接在 Inspector 里手工配置:

  • Command 填 Python 解释器路径
  • Argumentsmcp_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 / reboot
  • sudo

这只是第一层防护。生产环境仍建议:

  • 使用低权限 SSH 账号
  • 限制远程工作目录
  • 保留操作日志
  • 不要把私钥提交到仓库

测试

运行最小测试:

python -m unittest tests.test_mcp_server

当前最小测试覆盖:

  • 脚本首行校验
  • 批处理脚本规范化
  • 错误分类逻辑
  • 分区解析
  • 作业状态解析

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选