Skip to main content
Glama

Slurm HPC MCP Server

SSH経由でSlurmスーパーコンピューティングクラスターに接続し、Claude Desktop、Claude Code、Cursor、MCP Inspectorなどのクライアントに対してクラスター操作機能を提供するPythonベースのMCPサーバーです。

現在のバージョンでは、以下の実環境での検証が完了しています:

  • MCPサーバーの正常起動

  • 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} ジョブの標準出力ログを読み取り

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_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インタープリタのパスを入力

  • 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 / reboot

  • sudo

これは第一層の防御に過ぎません。本番環境では以下を推奨します:

  • 低権限のSSHアカウントを使用する

  • リモート作業ディレクトリを制限する

  • 操作ログを保持する

  • プライベートキーをリポジトリにコミットしない

テスト

最小限のテストを実行:

python -m unittest tests.test_mcp_server

現在の最小テスト範囲:

  • スクリプトの先頭行の検証

  • バッチスクリプトの正規化

  • エラー分類ロジック

  • パーティション解析

  • ジョブ状態解析

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables SSH remote access to servers through Claude, allowing users to execute commands, transfer files via SFTP, and manage multiple remote connections using natural language.
    12
    8
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage SLURM HPC clusters via SSH. Supports job submission, resource monitoring, queue management, and file operations.
    7 npm
    4
    -