Header image

OpenShift LightspeedにMCPサーバーを追加して、AIエージェント機能を強化する

執筆日:

更新日:

こんにちは、もーすけです。 この記事は、OpenShift Advent Calendar 2025 の記事です。

OpenShift LightspeedにMCP (Model Context Protocol) をインストールできる(まだDeveloper Previewですが)と知ったので、さっそく試してみました。

MCPについては、以下のRed Hatの記事でも紹介されています。

今回は、記事のまま試すだけでは面白くないので、違うMCPサーバーを入れてみたいと思います。 利用するのは kubernetes-mcp-server です。

まずは普通にMCPを試してみる

OpenShift Lightspeedに組み込む前に、まずは手元の環境でMCPサーバーの動作を確認してみます。 環境は OpenShift 4.19 に対して、Claude Code (claude cli) から実行します。

インストールは以下のコマンドで行います。

$ claude mcp add kubernetes -- npx -y kubernetes-mcp-server@latest
$ claude mcp list
Checking MCP server health...

kubernetes: npx -y kubernetes-mcp-server@latest - ✓ Connected

npx は、Node.jsのパッケージをインストールせずに一時的にダウンロードして実行するためのコマンドです。 MCPサーバーがコンテナやバックグラウンドサービスとして常駐するのではなく、必要なときにローカルマシン上のプロセスとして直接起動されることを意味します。手元でサクッと動作確認したい場合に非常に便利です。

実行は claude CLIから行います。 プロンプトから明示的にMCPを指定する必要はありません。文脈から利用するMCPを推測してくれます。

例えば、「openshift-lightspeed namespaceにあるPodを一覧表示して。そのときに、Pod名とステータス、起動しているノードの3つを表示して」と依頼すれば、自動的に kubernetes-mcp-server のツールを呼び出して実行してくれます。

$ claude
> openshift-lightspeed namespaceにあるPodを一覧表示して。そのときに、Pod名とステータス、起動しているノードの3つを表示して 
openshift-lightspeed namespaceのPod一覧です:

  | Pod名                                                  | ステータス  | ノード                     |
  |--------------------------------------------------------|-----------|---------------------------|
  | kubernetes-mcp-server-1-build                          | Completed | worker3.ocp.mosuke5.local |
  | kubernetes-mcp-server-6dd44bd84c-glrd6                 | Running   | worker3.ocp.mosuke5.local |
  | lightspeed-app-server-76f7578674-wkl6n                 | Running   | worker2.ocp.mosuke5.local |
  | lightspeed-console-plugin-67df8f7675-fv8xh             | Running   | worker2.ocp.mosuke5.local |
  | lightspeed-operator-controller-manager-5fb96b455-vxnwl | Running   | worker1.ocp.mosuke5.local |
  | lightspeed-postgres-server-6d59f9b488-79mb7            | Running   | worker2.ocp.mosuke5.local |

  計6つのPodがあり、1つはビルド完了状態(Completed)、残り5つは実行中(Running)です。ワークロードは worker1, worker2, worker3 の3つのノードに分散配置されています。

OpenShift Lightspeedから実行する

動作確認ができたので、次は本題のOpenShift Lightspeedからの実行です。

MCPサーバーのデプロイ

まずは、kubernetes-mcp-server をコンテナとしてOpenShift上にデプロイします。 Dockerfileが用意されているので、oc new-app で簡単に立ち上げることができます。

$ oc project openshift-lightspeed
$ oc new-app https://github.com/containers/kubernetes-mcp-server
...
$ oc get pod,service
NAME                                                         READY   STATUS      RESTARTS       AGE
pod/kubernetes-mcp-server-1-build                            0/1     Completed   0              103m
pod/kubernetes-mcp-server-6dd44bd84c-glrd6                   1/1     Running     0              92m
...

NAME                                                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
service/kubernetes-mcp-server                            ClusterIP   172.30.96.169    <none>        8080/TCP   92m
...

権限の付与

MCPサーバーがOpenShiftのリソース情報を読み取るために、Service Accountに適切な権限を付与する必要があります。 今回は cluster-reader 権限を付与します。

$ oc adm policy add-cluster-role-to-user cluster-reader -z default -n openshift-lightspeed

OpenShift Lightspeedの設定

次に、OpenShift Lightspeed側でMCPサーバーを利用するための設定を入れます。 OLSConfig リソース(または適切な設定リソース)に以下のような設定を追加します。

apiVersion: ols.openshift.io/v1alpha1
kind: OLSConfig
metadata:
  name: cluster
spec:
  # まだPreview機能
  featureGates:
  - MCPServer

  # MCPサーバの設定
  mcpServers:
  - name: kubernetes-mcp-server
    streamableHTTP:
      enableSSE: true
      headers:
        kubernetes-authorization: kubernetes
      sseReadTimeout: 10
      timeout: 5
      url: http://kubernetes-mcp-server.openshift-lightspeed.svc.cluster.local:8080/sse
  #...

ここで、設定項目にある SSE (Server-Sent Events) について少し触れておきます。 SSEは、サーバーからクライアントへプッシュ型でデータを送信するための仕組みです。MCPにおいては、サーバー側で発生したイベントやログ、長い処理の経過などを、クライアント(この場合はOpenShift Lightspeed)に対してリアルタイムに通知するために利用されます。今回の設定では enableSSE: true としています。kubernetes-mcp-server はSSEをサポートしており、これを有効にすることで、実行状況のリアルタイムなフィードバックなど、よりインタラクティブな体験が可能になります。

実際に利用したユースケース

設定が完了したので、実際にOpenShift Lightspeedのチャット画面から利用してみました。

「openshift-lightspeed namespaceにあるPodを一覧表示して。そのときに、Pod名とステータス、起動しているノードの3つを表示して 」

Podを出力するだけなら、正直 oc コマンドを直接うったほうが速いですが、そのデータの加工までするとなると、MCPサーバーを利用することで、より便利な体験が可能になります。 日頃から使っていないと、細かいオプション忘れちゃいますので。。。

openshift-lightspeed のPod一覧(名前 / ステータス / ノード):

kubernetes-mcp-server-1-build / Completed / worker3.ocp.mosuke5.local
kubernetes-mcp-server-6dd44bd84c-glrd6 / Running / worker3.ocp.mosuke5.local
lightspeed-app-server-56bbbbf5f5-bth4v / Running / worker2.ocp.mosuke5.local
lightspeed-console-plugin-67df8f7675-fv8xh / Running / worker2.ocp.mosuke5.local
lightspeed-operator-controller-manager-5fb96b455-vxnwl / Running / worker1.ocp.mosuke5.local
lightspeed-postgres-server-6d59f9b488-79mb7 / Running / worker2.ocp.mosuke5.local

削除のユースケースとHuman in the loop

次のユースケースとして、リソースの削除をやってみます。 「openshift-lightspeed namespaceにあるLabelがapp=testのPodを削除して」 というプロンプトを利用します。

注意点として、先ほど付与した cluster-reader 権限では削除はできません。試す場合は、一時的に cluster-admin などの強い権限を付与する必要があります(権限を広く与えると怖いですが…)。

プロンプトに打ち込むと削除してくれたのですが、デフォルトだと削除に人間の確認がありませんでした。 AIエージェントに強い権限を与えている場合、これは非常に危険です。

そこで、事前に 「なにかリソースを削除したり変更する場合には必ず人に確認を求めてください」 と指示しておくと、次のように確認をしてくれるようになりました。

わたし)「openshift-lightspeed namespaceにあるLabelがapp=testのPodを削除して」
AI)
削除系は要確認のため、実行前に確認します。

対象Pod(1件、label app=test):

test-676c79db58-qd62f / Running / worker3.ocp.mosuke5.local 所有者: ReplicaSet test-676c79db58(配下のため削除しても再作成される可能性あり)
どうしますか?

1. このPodを削除する
2. 先に Deployment test を replicas=0 にスケールダウンしてから Pod を削除する
3. 中止する

このように、危険な操作の前にワンクッション置く(Human in the loop)ことで、AIエージェントをより安全に利用できるようになります。

まとめ

OpenShift LightspeedにMCPサーバーを追加することで、標準の機能だけでは手が届かない操作や、独自のツールとの連携が可能になることがわかりました。 今回は kubernetes-mcp-server を使いましたが、他にも様々なMCPサーバーを組み合わせることで、運用の自動化や効率化がさらに進みそうです。

ぜひみなさんも試してみてください。

おまけ:この記事の執筆について

最後におまけですが、実はこの記事、Google DeepmindのAIエージェント「Antigravity」と、その裏側にある「Gemini 3 Pro」モデルを使って書いています。 文体についても、私の過去の記事を学習させることで、いつもの「もーすけらしさ」が出るように調整してもらいました。違和感ありましたでしょうか?(笑)

もちろん、記事内の検証作業やコマンドの実行結果の確認は、私自身の手でしっかりと行っていますのでご安心ください。 AIエージェントと共にブログを書く、そんな新しい体験もまた面白いですね。

記事の内容に関連した相談、仕事依頼したい

記事の内容やクラウドネイティブ技術に関する相談、仕事依頼。※OpenShiftなどRed Hat製品など本業と競合する内容はお断りすることがあります。
仕事依頼、相談をしてみる

フィードバック

本記事に対して、フィードバックあればこちらのフォームからご記入ください。
記事の内容にフィードバックしてみる

このエントリーをはてなブックマークに追加

最新の記事

カテゴリー

アーカイブ