Hitachi raidcom command builder (Community) について
Hitachi `raidcom` コマンドやスクリプトの作成と検証を行うコミュニティ製 MCP サーバーです。ストレージ管理者向けに、ストレージへ接続・操作せず、確認用のコマンドテキストを生成します。
主な機能
- 01178件のコマンドカタログを検索
- 02検証済みコマンドとスクリプトの作成
- 0314種類のワークフローレシピ
- 04実行せずに貼り付けたコマンドを検査
- 05モデル別の制限値を提示
活用シーン
- 01ボリューム設定コマンドの作成
- 02実行前のコマンド確認
- 03反復操作用スクリプトの生成
MCP 対応
MCP クライアントに読み取り専用の検索、作成、検証、レシピ、モデル制限ツールを提供します。コマンドテキストを返すだけで、実行もストレージへの接続も行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
raidcom-mcp:自然言語のリクエストから Hitachi raidcom コマンドを作成
「プール 0 の 100 GB ボリュームを 4 つ、CL1-A と CL2-A 上でホスト esx01 に提示して」のようなリクエストを、検証済みの raidcom コマンドに変換するコミュニティ MCP サーバーです。作成のみに対応しており、ストレージシステムへの接続、コマンドの実行、認証情報の保持は一切行いません。コマンドテキスト(またはシェルスクリプト)を返し、CCI がインストールされたホスト上で確認して実行するのはユーザー自身です。そのため、誰でも使えるようオンラインで安全にホストできます。
これは独立したプロジェクトであり、Hitachi Vantara の公式製品ではありません。
できること
- 適切なコマンドを検索します。
raidcom_list_commandsは、質問に対してカタログ内の 178 個のコマンドを順位付けし(同義語と動詞の意図を用いた BM25)、確信度を示します。 - 1 つのコマンドを作成します。
raidcom_build_commandは、コマンド名とオプションを構造化データとして受け取り、マニュアルの構文およびストレージモデルの制限に照らして確認し、コマンドラインを返します。 - 複数のコマンドを作成します。
raidcom_build_scriptは、範囲(foreach、zip)にわたって手順を繰り返し、非同期コマンドの後にget command_statusを追加し、必要に応じてリソースグループをロックして、最初の失敗時に停止するスクリプトを返します。 - すぐに使えるワークフローを提供します。
raidcom_list_recipesとraidcom_build_recipeは、FC、iSCSI、NVMe/TCP のプロビジョニング、DP プール、メインフレーム(3390)プール、ボリュームの拡張と削除、コマンドデバイス、ゼロページの再利用、インベントリ、コピーグループなど、14 種類の一般的な作業に対応します。 - 既存のコマンドを確認します。
raidcom_check_commandは、貼り付けられたコマンドラインを解析し(実行はせず、シェル演算子は拒否します)、すべての問題を報告します。 - モデルの制限を把握しています。
raidcom_model_limitsは、VSP One Block 24/26/28、VSP 5000 series、VSP E series の LDEV、LUN、プール、シリアル番号、ポートの範囲を示します。
8 つのツールはすべて読み取り専用としてマークされています。何かを実行するツールはありません。
ホストされているサーバーを使う
公開インスタンスは https://raidcom-mcp.onrender.com/mcp で稼働しています。サインインは不要です。
- Claude(デスクトップまたはウェブ): Settings → Connectors → Add custom connector の順に開き、URL を貼り付けます。詳細設定(OAuth)は空欄のままにします。
- Claude Code:
claude mcp add --transport http raidcom https://raidcom-mcp.onrender.com/mcp - Microsoft 365 Copilot(Copilot Studio): エージェント → Tools → Add a tool → New tool → Model Context Protocol の順に開き、URL を貼り付けます。認証は None にします。
- GitHub Copilot(VS Code):
.vscode/mcp.jsonに{ "servers": { "raidcom": { "type": "http", "url": "https://raidcom-mcp.onrender.com/mcp" } } }を追加し、Copilot Chat を Agent モードで使用します。
自分で実行する場合は、セットアップを参照してください。
カタログの生成方法
spec/raidcom-catalog.json は、Command Control Interface Command Reference(MK-90RD7009)のテキストをもとに、scripts/generate-catalog.mjs で生成されます。各コマンドについて、名前、対応モデル、1 行の概要、各構文形式(小規模な文法として)、各オプションの値の形式と短い説明、マニュアルの例にあるコマンドラインを保持します。日立の説明文、表、出力サンプルはコピーしていません。マニュアル自体はこのリポジトリに含まれていません。お手持ちのコピーを使ってカタログを再生成するには、次のようにします。
pdftotext -layout CCI_Command_Reference.pdf cci-reference.txt
npm run generate-catalog -- cci-reference.txt
tests/unit/catalog.test.mjs は、マニュアルの各例をパーサーとバリデーターに通して再実行します(約 96% が合格します。残りは、マニュアルの構文行と例が一致しない箇所です)。
検証
- 不明なオプション、値の数の誤り、オプションで許可されていない値、必須オプションの不足(構文文法に基づいて確認)は、修正案とともにエラーになります。
- LDEV ID、LUN ID、プール ID、シリアル番号、ポート名(
CL1-A、CL3-B-12)は、指定したモデル、または任意のモデルのうち最も広い範囲に照らして確認されます。 - シェルが誤って解釈する可能性のある値(
; | & $ \> < ' "など)は拒否され、スペースまたは#を含む値は引用符で囲まれ、-で始まる値はオプションを追加できないよう拒否されます。グローバルオプション(instance、pair_type、serial` など)は、何かを書き込む前に確認されます。SECURITY.md を参照してください。 - LDEV ID は、10 進数、
0x形式の 16 進数、またはメインフレーム形式の CU:LDEV(dd:0f)で指定できます。レシピとスクリプトは、100-109やdd:00-dd:0fなどの範囲を展開します。 - マニュアルの構文行が不完全な場合があるため、
strict: falseにすると、必須オプション不足のエラーは警告になります。不明なオプションと範囲外の値は引き続きエラーになります。 - 対象外:Quick Reference の
pair*コマンド(paircreate、pairdisplay など)、および単独のコマンドとしてのraidcom -login/-logout行(スクリプトではlogin: trueを指定して追加でき、シェルから$RAIDCOM_USERと$RAIDCOM_PASSWORDを読み込みます)。
セットアップ
Node.js 22.19 以降が必要です。サーバーは npm で公開されているため、ほとんどのクライアントは npx で起動できます。
Claude Code
claude mcp add raidcom -- npx -y raidcom-mcp
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"raidcom": { "command": "npx", "args": ["-y", "raidcom-mcp"] }
}
}
ソースからのインストール
git clone https://github.com/visubramaniam/raidcom-mcp.git
cd raidcom-mcp
npm ci
npm run build
次に、上記の例でコマンドとして node /path/to/raidcom-mcp/dist/index.js を使用します。
Claude Desktop、スタンドアロンパッケージ
各リリースには、Claude Desktop 拡張機能(.mcpb)、Node.js をバンドルした macOS、Linux、Windows 向けのスタンドアロンパッケージ、npm パッケージ、スキルの zip ファイルが含まれています。INSTALL.md を参照してください。
Claude Code プラグイン
/plugin install raidcom-community --marketplace visubramaniam/raidcom-mcp
README.plugin.md を参照してください。
HTTP 経由でのホスティング
RAIDCOM_TRANSPORT=http RAIDCOM_HTTP_HOST=0.0.0.0 RAIDCOM_HTTP_TOKEN=$(openssl rand -hex 32) \
RAIDCOM_HTTP_BEHIND_TLS_PROXY=true RAIDCOM_HTTP_ALLOWED_HOSTS=raidcom.example.com node dist/index.js
エンドポイントは /mcp(ステートレスな Streamable HTTP)です。/healthz はバージョンと、プロキシ経由の場合はサーバーが呼び出し元のアドレスとして扱うアドレスを返します。これにより、プロキシ設定を確認できます。
サーバーをコネクターとして追加するクライアント(Claude、Microsoft 365 Copilot)は、固定のベアラートークンを送信できません。認証なし、またはこのサーバーが実装していない OAuth 経由で接続します。そのようなクライアントでは、トークンなしで RAIDCOM_HTTP_OPEN=true を設定して実行してください。公開インスタンスもこの設定を使用しています。Cloudflare の背後(たとえば Render)では、レート制限をユーザーごとに適用するため、RAIDCOM_HTTP_CLIENT_IP_HEADER=cf-connecting-ip を設定してください。INSTALL.md と README.docker.md を参照してください。
設定
| 変数 | デフォルト | 説明 |
|---|---|---|
RAIDCOM_TRANSPORT | stdio | stdio または http |
RAIDCOM_HTTP_HOST | 127.0.0.1 | リッスンするアドレス |
RAIDCOM_HTTP_PORT | 8361 | ポート(0 を指定すると空きポートが選ばれます) |
RAIDCOM_HTTP_TOKEN | なし | 32 文字以上のベアラートークン。RAIDCOM_HTTP_OPEN=true を指定しない場合は必須です |
RAIDCOM_HTTP_OPEN | false | トークンなしで、ポートに接続できるすべてのユーザーにサービスを提供します |
RAIDCOM_HTTP_TLS_CERT、RAIDCOM_HTTP_TLS_KEY | なし | PEM ファイル。指定するとサーバーは HTTPS で通信します |
RAIDCOM_HTTP_BEHIND_TLS_PROXY | false | プロキシまたはロードバランサーで TLS を終端します。TLS を使用せずにループバック以外のアドレスを使う場合に必要です |
RAIDCOM_HTTP_ALLOWED_HOSTS | なし | 受け入れる追加の Host 値(すべてを許可する場合は *) |
RAIDCOM_HTTP_ALLOWED_ORIGINS | なし | 受け入れる Origin 値(すべてを許可する場合は *) |
RAIDCOM_HTTP_RATE_LIMIT | 120 | クライアントごとの毎分リクエスト数(制限しない場合は 0) |
RAIDCOM_HTTP_CLIENT_IP_HEADER | なし | プロキシがクライアントのアドレスを設定するヘッダー。たとえば、Cloudflare の背後では cf-connecting-ip を指定します(Render は Cloudflare を使用します)。X-Forwarded-For より優先されます |
RAIDCOM_HTTP_DEBUG_CLIENT | true | /healthz に、受信した転送ヘッダー(呼び出し元自身のリクエスト)も表示します。上記 2 つの設定を選ぶ際に使用します。無効にするには false を指定します |
RAIDCOM_HTTP_TRUST_PROXY | false | X-Forwarded-For からクライアントのアドレスを取得します。前段にプロキシが 1 台ある場合は true、プロキシの台数が複数の場合はその台数を指定します(INSTALL.md を参照) |
MCPRUSH_TOKEN | なし | mcprush マーケットプレイスが発行するトークンです。x-mcprush-token にこのトークンを含むリクエストにのみ応答する 2 つ目のエンドポイント(下記)を追加します。/mcp は変更されません |
RAIDCOM_HTTP_MCPRUSH_PATH | /mcprush | このエンドポイントのパス |
RAIDCOM_CATALOG、RAIDCOM_LIMITS、RAIDCOM_RECIPES、RAIDCOM_EXAMPLES | 同梱 | 別の仕様ファイルを使用します(空の RAIDCOM_EXAMPLES を指定すると、質問例が無効になります) |
値の前後の空白は削除され、true/false の設定では大文字と小文字を区別しません。それ以外の値を指定すると、メッセージを表示してサーバーが停止します。起動時に、認識できない RAIDCOM_ 変数(名前のスペルミスや余分な空白など)について警告します。また、HTTP 経由の場合は、有効な設定を 1 行でログに記録します。
テスト
npm test
ユニットテスト(tests/unit)と検索評価(tests/search-eval.mjs)を実行します。検索評価では、調整用リクエスト 40 件とホールドアウトリクエスト 30 件を使用します。それぞれに最低限の top-1 および top-3 スコアが設定されており、スコアは下がらないようになっています。また、高信頼度と評価された結果の正解率が 85% 以上であることも確認します。npm run package はリリースパッケージをビルドし、npm run smoke はインストール済みの npm パッケージをテストします。
ドキュメント
Wiki には、クイックスタート、デプロイガイド、ツールとレシピのリファレンス、トラブルシューティングなどが掲載されています。
コントリビューション
CONTRIBUTING.md を参照してください。セキュリティ上の問題については SECURITY.md を、プライバシーについては PRIVACY.md を参照してください。
ライセンス
MIT ライセンスです。詳細は LICENSE を参照してください。「Hitachi」、「raidcom」、「VSP」は各所有者の商標です。このプロジェクトは Hitachi との提携関係になく、Hitachi から承認を受けたものでもありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。