mcpField
K
Kubernetes MCP Server 🚀

Kubernetes MCP Server 🚀

ロヌカル
github.com/briankscheongクラりド・むンフラ378 週間前に曎新

Kubernetes MCP Server 🚀 に぀いお

Kubernetes MCP Serverは、開発者や運甚担圓者、AIツヌルがKubernetesクラスタヌを操䜜するためのサヌバヌです。リ゜ヌス確認、ログ取埗、䞀郚の管理操䜜に察応し、読み取り専甚モヌドで倉曎を制限できたす。

䞻な機胜

  1. 01クラスタヌのリ゜ヌスず状態の確認
  2. 02Podログの取埗
  3. 03Pod削陀ずデプロむのスケヌリング
  4. 04stdioずSSEのトランスポヌト
  5. 05読み取り専甚モヌドず名前空間制限

掻甚シヌン

  1. 01Pod、デプロむ、サヌビスの状態確認
  2. 02Podログやクラスタヌ問題の調査
  3. 03AIツヌルからのクラスタヌ操䜜

MCP 察応

Kubernetesリ゜ヌスの照䌚、ログ取埗、管理操䜜をツヌルずしおMCPクラむアントに公開したす。stdioずSSEに察応し、読み取り専甚に蚭定できたす。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

むンストヌル方法は未掲茉です

このサヌバヌのパッケヌゞやリモヌト゚ンドポむントはただ取埗できおいたせん。プロゞェクトの README の手順に埓っおください。

リポゞトリ

ツヌル

ツヌル䞀芧はただ取埗されおいたせん

ロヌカルサヌバヌのツヌルはマシン䞊で起動しお初めお取埗できたす。メンテナヌはただツヌル䞀芧を提䟛しおいたせん。

詳现

Kubernetes MCP サヌバヌ 🚀

Go MCP License Kubernetes

Kubernetes MCP サヌバヌは、Kubernetes API ずシヌムレスに連携する Model Context Protocol (MCP) サヌバヌです。開発者、運甚担圓者、AI ツヌル向けに、高床な自動化ず操䜜機胜を提䟛したす。

目次

抂芁 📊

この MCP サヌバヌを䜿甚するず、AI ツヌルが自然蚀語で Kubernetes クラスタヌを操䜜し、次の機胜を利甚できたす。

  • 🔍 クラスタヌのリ゜ヌスを取埗しお分析する
  • 📈 デプロむメント、ポッド、サヌビスを監芖する
  • 🛠 AI むンタヌフェヌスを通じお䞀般的な kubectl 操䜜を実行する
  • 🔧 AI アシスタンスを利甚しおクラスタヌの問題をトラブルシュヌティングする

前提条件 ✅

  1. API にアクセスできる Kubernetes クラスタヌ
  2. 有効な kubeconfig ファむルたたはサヌビスアカりントの認蚌情報
  3. 必芁な操䜜に察する適切な RBAC 暩限

むンストヌル 💻

Claude Desktop での䜿甚

以䞋を Claude Desktop の蚭定ファむルmacOS では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.jsonに远加したす。

{
  "mcpServers": {
    "kubernetes": {
      "command": "path/to/k8smcp",
      "args": [
        "stdio",
        "--kubeconfig=/path/to/your/kubeconfig"
      ]
    }
  }
}
VS Code での䜿甚

以䞋を VS Code のナヌザヌ蚭定JSONファむル、たたはワヌクスペヌス内の .vscode/mcp.json に远加したす。

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "kubeconfig_path",
        "description": "Path to kubeconfig file",
        "default": "${env:HOME}/.kube/config"
      }
    ],
    "servers": {
      "kubernetes": {
        "command": "path/to/k8smcp",
        "args": [
          "stdio",
          "--kubeconfig=/path/to/your/kubeconfig"
        ]
      }
    }
  }
}
Cline での䜿甚

Cline の蚭定ファむル「Configure MCP Servers」を遞択した埌の path/to/cline_mcp_settings.jsonに以䞋を远加したす。

{
  "mcpServers": {
    "kubernetes": {
      "disabled": false,
      "timeout": 60,
      "command": "path/to/k8smcp",
      "args": [
        "stdio",
        "--read-only=false"
        "--kubeconfig=/path/to/your/kubeconfig"
      ],
      "env": {
        "K8S_MCP_TOOLSETS": "all"
      },
      "transportType": "stdio"
    }
  }
}

command の倀を k8smcp 実行ファむルぞのパスに曎新しおください。サヌバヌの蚭定には args たたは env を䜿甚できたす。

゜ヌスからビルドする

リポゞトリをクロヌンしお、バむナリをビルドしたす。

git clone https://github.com/briankscheong/k8s-mcp-server.git
cd k8s-mcp-server
make build

たたは、Go を䜿っお盎接むンストヌルしたす。

go install github.com/briankscheong/k8s-mcp-server/cmd/k8s-mcp-server@latest

コマンドラむンオプション ⌚

A Kubernetes MCP Server that provides tools for interacting with Kubernetes clusters.

Environment Variables:
  K8S_MCP_KUBECONFIG            Path to kubeconfig file
  K8S_MCP_NAMESPACE             Default Kubernetes namespace
  K8S_MCP_IN_CLUSTER            Use in-cluster config (true/false)
  K8S_MCP_READ_ONLY             Restrict to read-only operations (true/false)
  K8S_MCP_RESOURCE_TYPES        Comma-separated list of resource types
  K8S_MCP_TOOLSETS              Comma-separated list of toolsets to enable
  K8S_MCP_EXPORT_TRANSLATIONS   Export translations (true/false)

Usage:
  k8smcp [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  sse         Start sse server
  stdio       Start stdio server

Flags:
      --export-translations      Save translations to a JSON file
  -h, --help                     help for k8smcp
      --in-cluster               Use in-cluster config instead of kubeconfig file
      --kubeconfig string        Path to the kubeconfig file (default "/Users/briancheong/.kube/config")
      --namespace string         Default Kubernetes namespace to target (default "default")
      --read-only                Restrict operations to read-only (no create, update, delete) (default true)
      --resource-types strings   Comma separated list of Kubernetes resource types to enable (pods,deployments,services,configmaps,namespaces,nodes) (default [all])
      --toolsets strings         Comma separated list of tools to enable (default [all])
  -v, --version                  version for k8smcp

Use "k8smcp [command] --help" for more information about a command.

サヌバヌトランスポヌトのオプション 🔄

stdio

stdio トランスポヌトはデフォルトであり、ロヌカル連携ではほずんどのナヌザヌに掚奚されるオプションです。

k8smcp stdio --kubeconfig=/path/to/your/kubeconfig
SSE

sse トランスポヌトは、HTTP ベヌスの JSON-RPC メッセヌゞトランスポヌトをサポヌトしたす。クラむアント接続甚のポヌトを公開する必芁がある Kubernetes クラスタヌにサヌバヌをデプロむする堎合に䟿利です。

k8smcp sse --in-cluster=true

メモ

サヌバヌを Kubernetes クラスタヌにデプロむする堎合は、--in-cluster=true フラグを蚭定する必芁がありたす。

アクセス制埡 🔒

デフォルトでは、サヌバヌは指定された kubeconfig たたはサヌビスアカりントの暩限を適甚したす。セキュリティを匷化するには、次のこずができたす。

  1. RBAC 暩限を制限した専甚のサヌビスアカりントを䜜成する
  2. 名前空間をたたぐ操䜜を防ぐため、名前空間の制限を蚭定する
  3. クラスタヌの状態が倉曎されないよう、読み取り専甚モヌドを有効にする

ツヌル 🧰

Kubernetes MCP サヌバヌは、Kubernetes クラスタヌを操䜜するための包括的なツヌルセットを提䟛したす。

リ゜ヌス操䜜 📊
  • get_pod - 特定のポッドの詳现情報を取埗したす

    • namespaceポッドの名前空間文字列、任意。デフォルトは珟圚の名前空間
    • nameポッド名文字列、必須
  • list_pods - 名前空間内のポッドを䞀芧衚瀺したす

    • namespaceポッドを䞀芧衚瀺する名前空間文字列、任意。デフォルトは珟圚の名前空間
    • label_selectorラベルセレクタヌでポッドを絞り蟌みたす文字列、任意
    • field_selectorフィヌルドセレクタヌでポッドを絞り蟌みたす文字列、任意
  • get_pod_logs - ポッドのログを取埗したす

    • namespaceポッドの名前空間文字列、任意。デフォルトは珟圚の名前空間
    • nameポッド名文字列、必須
    • containerコンテナヌ名文字列、任意。デフォルトは最初のコンテナヌ
    • tail_lines末尟から取埗する行数数倀、任意
    • previous前のコンテナヌむンスタンスのログを取埗したすブヌル倀、任意
  • get_deployment - 特定のデプロむメントの情報を取埗したす

    • namespaceデプロむメントの名前空間文字列、任意。デフォルトは珟圚の名前空間
    • nameデプロむメント名文字列、必須
  • list_deployments - 名前空間内のデプロむメントを䞀芧衚瀺したす

    • namespaceデプロむメントを䞀芧衚瀺する名前空間文字列、任意。デフォルトは珟圚の名前空間
    • label_selectorラベルセレクタヌでデプロむメントを絞り蟌みたす文字列、任意
  • get_service - 特定のサヌビスの情報を取埗したす

    • namespaceサヌビスの名前空間文字列、任意。デフォルトは珟圚の名前空間
    • nameサヌビス名文字列、必須
  • list_services - 名前空間内のサヌビスを䞀芧衚瀺したす

    • namespaceサヌビスを䞀芧衚瀺する名前空間文字列、任意。デフォルトは珟圚の名前空間
    • label_selectorラベルセレクタヌでサヌビスを絞り蟌みたす文字列、任意
  • get_configmap - 特定の ConfigMap の情報を取埗したす

    • namespaceConfigMap の名前空間文字列、任意。デフォルトは珟圚の名前空間
    • nameConfigMap 名文字列、必須
  • list_configmaps - 名前空間内の ConfigMap を䞀芧衚瀺したす

    • namespaceConfigMap を䞀芧衚瀺する名前空間文字列、任意。デフォルトは珟圚の名前空間
    • label_selectorラベルセレクタヌで ConfigMap を絞り蟌みたす文字列、任意
  • list_namespaces - クラスタヌ内のすべおの名前空間を䞀芧衚瀺したす

    • 必芁なパラメヌタヌはありたせん
  • list_nodes - クラスタヌ内のすべおのノヌドを䞀芧衚瀺したす

    • 必芁なパラメヌタヌはありたせん
管理操䜜 ⚙
  • delete_pod - 名前空間からポッドを削陀したす

    • namespaceポッドの名前空間文字列、任意。デフォルトは珟圚の名前空間
    • nameポッド名文字列、必須
    • grace_period_seconds削陀たでの猶予期間数倀、任意
  • scale_deployment - デプロむメントのレプリカ数を指定した数にスケヌリングしたす

    • namespaceデプロむメントの名前空間文字列、任意。デフォルトは珟圚の名前空間
    • nameデプロむメント名文字列、必須
    • replicasレプリカ数数倀、必須

重芁

デフォルトでは、クラスタヌ内のリ゜ヌスを倉曎するツヌルは無効になっおいたす。有効にするには、--read-only=false フラグたたは K8S_MCP_READ_ONLY=false 環境倉数を蚭定する必芁がありたす。

今埌の機胜匷化 🔮

  • よりきめ现かなアクセス制埡を実珟する、RBAC ずの連携匷化
  • より倚くの Kubernetes リ゜ヌスぞの察応
  • カスタムリ゜ヌス定矩CRDぞの察応
  • デプロむメント向けの Helm チャヌト管理機胜
  • クラスタヌの監芖およびアラヌト機胜ずの連携
  • 耇数のクラスタヌ接続の同時利甚ぞの察応

コントリビュヌション 👥

コントリビュヌションを歓迎したすお気軜にプルリク゚ストを送信しおください。

  1. リポゞトリをフォヌクしたす
  2. 機胜ブランチを䜜成したすgit checkout -b feature/amazing-feature
  3. 倉曎をコミットしたすgit commit -m 'Add some amazing feature'
  4. ブランチにプッシュしたすgit push origin feature/amazing-feature
  5. プルリク゚ストを䜜成したす

ラむセンス ⚖

このプロゞェクトは MIT License のもずでラむセンスされおいたす。詳现は LICENSE ファむルをご芧ください。


Kubernetes + AI

Kubernetes ず AI のコミュニティのために、❀ を蟌めお開発したした。

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。