
KubernetesのMCPサーバーを使ってみた
はじめに
皆様こんにちは、あかいけです。
日々様々なMCPサーバーが生まれていますが、
先日KubernetesのMCPサーバーを見つけました。
そんなわけで、
今回は 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ファイルを設定して、クラスターと疎通ができる状態にしてください。
kubectl
kubectl を利用してKubernetes クラスターとやりとりするため、必要となります。
インストール方法は何でもいいですが、個人的にはmiseがおすすめです。
Windowsでは以下コマンドでmiseをセットアップできます。
winget install jdx.mise
mise activate pwsh >> $PROFILE
mise use kubectl@latest;
Node.js / Bun
MCP Server Kubernetes はNode.js と Bunで実装されているため、
ローカル環境でサーバーを立ち上げる場合はインストールが必要です。
こちらもmiseでインストールするのがおすすめです。
mise use node@latest;
mise use bun@latest;
Helm v3
MCP Server Kubernetes で Helm を利用する場合に必要となります。
必須ではないですが、便利なのでとりあえず入れておきましょう。
こちらもmiseでインストールするのがおすすめです。
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 のパスは実際のファイルパスに合わせる必要があるため、
実行環境に合わせて設定してください。
{
"mcpServers": {
"k8s-mcp": {
"command": "node",
"args": ["/Users/UserName/github/mcp-server-kubernetes/dist/index.js"]
}
}
}
Cursor
Cursor も Claude Desktop と同様に設定できます。
{
"mcpServers": {
"k8s-mcp": {
"command": "node",
"args": ["/Users/UserName/github/mcp-server-kubernetes/dist/index.js"]
}
}
}
Cline
Cline の場合は Marketplace で用意されているので、こちらを利用できます。
使ってみた
さて実際に使ってみましょう、今回は Claude Desktop で確認を進めます。
NameSpaceの参照
手始めにNameSpaceの一覧を取得してみます。
まずMCPサーバーを設定していない場合は、
以下のようにコマンドの提案はしてくれますが、Claude Desktop 上では実行できません。
次にMCPサーバーを設定している場合は、ローカルMCPサーバーでの実行許可を聞かれます。
これを承認してあげると、コマンドを実行します。
結果は以下の通りで、
MCPサーバーを利用して情報を取得できていますね。
Nginxのデプロイ
次はNginxのデプロイをお願いしてみます。
実行後に以下のリソースが作成されていました。
$ 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>
要件通りブラウザからもアクセスできます、いい感じですね。
helmを利用したデプロイ
最後にhelmを利用したデプロイも試してみます。
HashiCorp の Vault のデプロイをお願いしてみます。
ちゃんと 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からも正常にログインできます!
単純なインストール手順ではありますが、一発でデプロイできて若干感動しました。
さいごに
以上、KubernetesのMCPサーバーについてご紹介しました。
MCPサーバーを通じてお手軽に触ることができるので、Kubernetesを使う敷居がグッと低くなると感じました。
特に自然言語でKubernetesと対話する体験は非常に新鮮で、日々の学習や業務の合間にちょっとした気分転換としても楽しめそうです。
もしかしたら将来的には、Kubernetesと会話しながらトラブルシューティングをするような時代が来るかもしれませんね。
その第一歩として、ぜひ試してみてはいかがでしょうか。