KubernetesのMCPサーバーを使ってみた

KubernetesのMCPサーバーを使ってみた

Clock Icon2025.04.25

はじめに

皆様こんにちは、あかいけです。

日々様々なMCPサーバーが生まれていますが、
先日KubernetesのMCPサーバーを見つけました。

https://github.com/Flux159/mcp-server-kubernetes

そんなわけで、
今回は MCP Server Kubernetes を試してみました。

筆者の環境

クライアントはWindows上のClaude Desktop を利用します。
またクラスターは検証用途で利用している、お家の子達です。

  • クライアント
    • OS:Windows11
  • クラスター
    • OS:Ubuntu 24.04
    • Kubernetes:v1.30.4

事前準備

事前に以下の準備が必要となります。
実行環境に合わせて準備してください。

Kubernetes クラスター

当然ですが接続先の Kubernetes クラスターが必要となります。
EKSでもGKEでもAKSでもMinikubeでもDocker Desktopでもなんでも、お好みのものをご用意ください。

またクライアントのkubeconfigファイルを設定して、クラスターと疎通ができる状態にしてください。

https://kubernetes.io/ja/docs/concepts/configuration/organize-cluster-access-kubeconfig/

kubectl

kubectl を利用してKubernetes クラスターとやりとりするため、必要となります。
インストール方法は何でもいいですが、個人的にはmiseがおすすめです。

Windowsでは以下コマンドでmiseをセットアップできます。

mise インストール
winget install jdx.mise
mise activate pwsh >> $PROFILE 
kubectl インストール
mise use kubectl@latest;

Node.js / Bun

MCP Server Kubernetes はNode.js と Bunで実装されているため、
ローカル環境でサーバーを立ち上げる場合はインストールが必要です。

こちらもmiseでインストールするのがおすすめです。

Node.js / Bun インストール
mise use node@latest;
mise use bun@latest;

Helm v3

MCP Server Kubernetes で Helm を利用する場合に必要となります。
必須ではないですが、便利なのでとりあえず入れておきましょう。

こちらもmiseでインストールするのがおすすめです。

helm インストール
mise use helm@latest;

設定方法

MCPサーバー

ローカル環境は以下コマンドでセットアップできます。
めちゃくちゃ簡単ですね。

git clone https://github.com/Flux159/mcp-server-kubernetes.git;
cd mcp-server-kubernetes;
bun install;

MCPクライアント

公式ドキュメントでは Claude Desktop のみ記述がありますが、
その他もMCPクライアントとして利用できたため、記載します。

Claude Desktop

先ほどセットアップしたMCPサーバーのパスを設定します。
なお args のパスは実際のファイルパスに合わせる必要があるため、
実行環境に合わせて設定してください。

\Users\UserName\AppData\Roaming\Claude\claude_desktop_config.json
{
    "mcpServers": {
        "k8s-mcp": {
            "command": "node",
            "args": ["/Users/UserName/github/mcp-server-kubernetes/dist/index.js"]
        }
    }
}

Cursor

Cursor も Claude Desktop と同様に設定できます。

\Users\UserName\.cursor\mcp.json
{
    "mcpServers": {
        "k8s-mcp": {
            "command": "node",
            "args": ["/Users/UserName/github/mcp-server-kubernetes/dist/index.js"]
        }
    }
}

Cline

Cline の場合は Marketplace で用意されているので、こちらを利用できます。

スクリーンショット 2025-04-23 233931

使ってみた

さて実際に使ってみましょう、今回は Claude Desktop で確認を進めます。

NameSpaceの参照

手始めにNameSpaceの一覧を取得してみます。

まずMCPサーバーを設定していない場合は、
以下のようにコマンドの提案はしてくれますが、Claude Desktop 上では実行できません。

スクリーンショット 2025-04-23 234726

次にMCPサーバーを設定している場合は、ローカルMCPサーバーでの実行許可を聞かれます。
これを承認してあげると、コマンドを実行します。

スクリーンショット 2025-04-23 234907

結果は以下の通りで、
MCPサーバーを利用して情報を取得できていますね。

スクリーンショット 2025-04-23 234935

Nginxのデプロイ

次はNginxのデプロイをお願いしてみます。

Pasted image 20250424213423

実行後に以下のリソースが作成されていました。

$ kubectl get all -n nginx-demo

NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-6775ffbf7b-clsgz   1/1     Running   0          115s

NAME                    TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)        AGE
service/nginx-service   LoadBalancer   10.233.52.235   192.168.10.200   80:32457/TCP   108s

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx   1/1     1            1           115s

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-6775ffbf7b   1         1         1       115s

Windows上のWSLからアクセスは正常にアクセスでき、

$ curl 192.168.10.200:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

要件通りブラウザからもアクセスできます、いい感じですね。

スクリーンショット 2025-04-24 213224

helmを利用したデプロイ

最後にhelmを利用したデプロイも試してみます。
HashiCorp の Vault のデプロイをお願いしてみます。

スクリーンショット 2025-04-24 215305

ちゃんと helm でデプロイされており、

$ helm list -n vault

NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
vault   vault           1               2025-04-24 21:46:55.1024695 +0900 JST   deployed        vault-0.30.0    1.19.0     
mol@ThinkBook-14-G3:~/github/home-kubernetes$ kubectl get all -n vault
NAME                                        READY   STATUS    RESTARTS   AGE
pod/vault-0                                 1/1     Running   0          8m25s
pod/vault-agent-injector-7594d5f8bb-x67xq   1/1     Running   0          8m25s

NAME                               TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                         AGE
service/vault                      LoadBalancer   10.233.16.139   192.168.10.202   8200:30346/TCP,8201:30792/TCP   8m25s
service/vault-agent-injector-svc   ClusterIP      10.233.59.64    <none>           443/TCP                         8m25s
service/vault-internal             ClusterIP      None            <none>           8200/TCP,8201/TCP               8m25s
service/vault-ui                   ClusterIP      10.233.7.199    <none>           8200/TCP                        8m25s

NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/vault-agent-injector   1/1     1            1           8m25s

NAME                                              DESIRED   CURRENT   READY   AGE
replicaset.apps/vault-agent-injector-7594d5f8bb   1         1         1       8m25s

NAME                     READY   AGE
statefulset.apps/vault   1/1     8m25s

WebUIからも正常にログインできます!
単純なインストール手順ではありますが、一発でデプロイできて若干感動しました。

スクリーンショット 2025-04-24 214952

スクリーンショット 2025-04-24 215135

さいごに

以上、KubernetesのMCPサーバーについてご紹介しました。

MCPサーバーを通じてお手軽に触ることができるので、Kubernetesを使う敷居がグッと低くなると感じました。
特に自然言語でKubernetesと対話する体験は非常に新鮮で、日々の学習や業務の合間にちょっとした気分転換としても楽しめそうです。

もしかしたら将来的には、Kubernetesと会話しながらトラブルシューティングをするような時代が来るかもしれませんね。
その第一歩として、ぜひ試してみてはいかがでしょうか。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.