0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCPサーバーを使ってWindows上のIBM BobがOpenShiftを操作できるようにした

0
Posted at

Blog banner with simple Bob intro (header) - Computer - Blue.png

IBM Bob (以降、Bob) に、直接OpenShift環境にアクセスして調査等を手伝ってほしいと思い、必要なセットアップをした記録です。Bobにやり方を聞いたところ、BobがOpenShift環境を操作する方法は大きく3つあるとのことでした。今回、その中でMCPを使った方法を選びました。

検証環境

  • Windows 11
  • IBM Bob 2.0.1

接続先OpenShift環境

  • OpenShift 4.18

1. 前提ツールのインストール

  • Bob (IBM Bob) をインストール
  • Node.js をインストール
  • oc CLI をインストール
    1. OpenShift CLI ダウンロード
    2. oc CLIのPATH設定
      PowerShellで実行(管理者不要):
    # 例: C:\tools\oc にoc.exeを置いた場合
    [Environment]::SetEnvironmentVariable(
        "PATH",
        $env:PATH + ";C:\tools\oc",
        [EnvironmentVariableTarget]::User
    )
    
    Bobの再起動後、ocコマンドが使用できればOK
    > oc version
    Client Version: 4.18.0-202606090213.p2.g6febe61.assembly.stream.el9-6febe61
    Kustomize Version: v5.4.2
    error: You must be logged in to the server (Unauthorized)
    

2. OpenShift にログイン

oc login で接続したときに ~/.kube/config が生成され、kubernetes-mcp-server は起動時にその ~/.kube/config を自動的に読み込みます。

oc login --token=xxxxxxxxxxxxxxxx --server=https://OCP_URL

これで ~/.kube/config が生成されます。
トークンの期限切れなどにより、このログインが無効になるとMCPサーバーを使ったアクセスもできなくなります。再度ログインし直すことでアクセスを回復できます。

3. openshift-mcp-server をセットアップ

このステップは不要でした。当初Bobが示した手順では、バイナリをダウンロードするステップがありましたが、実際にはopenshift-mcp-server の実体は kubernetes-mcp-server という名前でnpmに公開されているため、必要ありませんでした。

openshift/openshift-mcp-server は実際には containers/kubernetes-mcp-server のフォークまたはミラーで、本体は別リポジトリです。しかもnpmパッケージとして配布されています。npx で直接使えるので、バイナリのダウンロードは不要です!

4. BobのMCP設定に追加

BobのMCP設定ファイルに書き込み、MCP Server として登録します。

当初Bobが提案したコマンドでは、mcp.jsonファイルがBOMつきになってしまい、設定が正常に読み取られない状況が発生しました。以下はPowerShell 5.1でもうまくいくコマンドです。
注)PowerShell 5.1の-Encoding utf8はBOMつきになります。

$config = @'
{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": ["-y", "kubernetes-mcp-server@latest"]
    }
  }
}
'@
[System.IO.File]::WriteAllText(
    "$env:USERPROFILE\.bob\settings\mcp.json",
    $config,
    [System.Text.Encoding]::UTF8
)
参考)当初提案されたコマンド (PowerShell 5.1だとうまくいかない)
$config = @'
{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": ["-y", "kubernetes-mcp-server@latest"]
    }
  }
}
'@
$config | Set-Content "$env:USERPROFILE\.bob\settings\mcp.json" -Encoding UTF8

Bobを再起動します。初回に npx が kubernetes-mcp-server パッケージをダウンロードします。
Bob Settings のMCPパネルで kubernetes-mcp-server が Connected になれば完了です。

image.png

以上のセットアップで、Bobのチャットから直接OpenShift環境を操作できるようになります。
Bobにできることを聞くと、できる操作の一覧表とともに「Pod・Deployment・Service・Route などほぼすべてのリソースの読み取り・作成・更新・削除ができます。」と答えました。以下は実行例です。

image.png

補足)openshift-mcp-server と kubernetes-mcp-server

openshift-mcp-serverとkubernetes-mcp-serverの違いが気になり、Bobに質問してみました。

結論:openshift-mcp-server と kubernetes-mcp-server は同じものです

openshift/openshift-mcp-server リポジトリのREADMEを開くと、タイトルが 「Kubernetes MCP Server」 で、バッジもすべて containers/kubernetes-mcp-server を指しています。

つまり:

  • openshift/openshift-mcp-server は containers/kubernetes-mcp-server のミラーリポジトリ
  • 実体・npm パッケージ・バイナリはすべて containers/kubernetes-mcp-server に存在する
  • 今回使っている npx kubernetes-mcp-server@latest がまさに openshift-mcp-server の本体

OpenShift固有の機能も含まれているか

READMEのToolsets一覧を見ると、openshift という専用ツールセットが存在しています:

Toolset 内容
openshift OpenShift固有のクラスター管理・トラブルシューティングツール
ossm OpenShift Service Mesh (OSSM) 管理ツール

デフォルトでは無効なので、有効にしたい場合は mcp.json に --toolsets を追加できます:

{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": ["-y", "kubernetes-mcp-server@latest", "--toolsets", "core,config,openshift,helm,tekton"]
    }
  }
}

デフォルトで有効なツールセット

Toolset 内容
core Pod操作、リソースCRUD、Events、Node情報、Pod exec/logs
config kubeconfig の表示・管理

追加できるツールセット(OpenShift環境で特に有用なもの)

Toolset 内容
openshift ・plan_mustgather — クラスターのトラブルシューティングデータ(must-gather)の収集計画を立てる
・cluster-health-check — クラスター全体の包括的な健全性チェック
cluster-diagnostics ・nodes_debug_exec — Nodeに特権デバッグPodを立ち上げてコマンド実行(journalctl、systemctl、ss、chroot /host など)
helm ・Helm チャートのインストール、一覧、アンインストール
tekton ・Tekton Pipeline/Task の起動、再起動、ログ取得
ossm(OpenShift Service Mesh使用時) ・サービス間トラフィックのトポロジー可視化
・Istio設定の読み書き
・分散トレースの一覧、詳細
・メッシュ全体の健全性チェック
oadp(バックアップ/リストア使用時) ・Veleroバックアップ・リストアのトラブルシューティングガイド生成
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?