mcpField
M
Mcp K8s Go

Mcp K8s Go

ローカル
npmjs.comクラウド・インフラ38145 週間前に更新

Mcp K8s Go について

MCP K8s Go は Golang で実装された MCP サーバーで、Kubernetes クラスターに接続します。コンテキスト、名前空間、ノード、Pod の一覧表示や、任意のリソースの読み取り・変更に対応しています。読み取り専用モードや許可コンテキストの指定により、操作範囲を制限できます。

主な機能

  1. 01コンテキスト、名前空間、ノード、Pod の一覧表示
  2. 02任意の Kubernetes リソースの取得、作成、変更
  3. 03イベントと Pod ログの取得
  4. 04Pod 内でのコマンド実行
  5. 05読み取り専用モードによる書き込みツールの無効化
  6. 06許可コンテキストによるアクセス先の制限

活用シーン

  1. 01kube-system などの名前空間で Pod ログのエラーを確認
  2. 02AI アシスタントによるノードとクラスターイベントの確認
  3. 03書き込みツールを無効にした本番クラスターの調査

MCP 対応

本プロジェクトは MCP サーバーであり、Kubernetes のデータをリソース、プロンプト、ツールとして MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"k8s-go": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@modelcontextprotocol/inspector

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Kubernetes に接続する Golang ベースの MCP サーバー

README の画像
MCP K8S Go

機能 ⚙ Inspector で閲覧 ⚙ Claude で使用 ⚙ コントリビュート ↗ ⚙ MCP について ↗

README の画像 README の画像 README の画像
最新リリースバッジ Go リファレンス ライセンスバッジ

機能

MCP 💬 プロンプト 🗂️ リソース 🤖 ツール

  • 🗂️🤖 Kubernetes コンテキストの一覧表示
  • 💬🤖 Kubernetes 名前空間の一覧表示
  • 🤖 Kubernetes リソースの一覧表示、取得、作成、変更
    • ポッド、サービス、デプロイメントなどのリソースに対するカスタムマッピングを含みます
  • 🤖 Kubernetes ノードの一覧表示
  • 💬 Kubernetes ポッドの一覧表示
  • 🤖 Kubernetes イベントの取得
  • 🤖 Kubernetes ポッドログの取得
  • 🤖 Kubernetes ポッド内でコマンドを実行

Inspector で閲覧

Inspector で最新の公開バージョンを使用するには、次を実行します。

npx @modelcontextprotocol/inspector npx @strowk/mcp-k8s

Claude で使用

デモでの使用例

Claude Desktop との次のチャットでは、リソースとして特定のコンテキストを選択し、kube-system 名前空間のポッドログにエラーがないか確認するよう依頼した場合の様子を示しています。

Claude Desktop

この MCP サーバーを Claude Desktop(またはほかのクライアント)で使用するには、インストール方法を選択する必要があります。

次のオプションがあります。

Smitherymcp-getNPM からのビルド済みGithub でビルド済みソースからDocker を使用
Claude の設定自動自動手動手動手動手動
前提条件Node.jsNode.jsNode.jsなしGolangDocker
Smithery の使用

Smithery を介して Claude Desktop 用の MCP K8S Go を自動でインストールするには:

npx -y @smithery/cli install @strowk/mcp-k8s --client claude
mcp-get を使用する

mcp-get を使って、Claude Desktop 用の MCP K8S Go を自動的にインストールするには:

npx @michaellatman/mcp-get@latest install @strowk/mcp-k8s
ビルド済みバイナリを手動で使用する
npm からビルド済みバイナリを入手する

npm がインストールされており、ビルド済みバイナリを使用する場合は、こちらを使用してください:

npm install -g @strowk/mcp-k8s

次に、mcp-k8s --version を実行してバージョンを確認します。インストール済みのバージョンが表示されたら、claude_desktop_config.json ファイルに設定を追加できます:

{
  "mcpServers": {
    "mcp_k8s": {
      "command": "mcp-k8s",
      "args": []
    }
  }
}

または、任意のクライアントで npx を使用します:

npx @strowk/mcp-k8s

たとえば Claude の場合:

{
  "mcpServers": {
    "mcp_k8s": {
      "command": "npx",
      "args": [
        "@strowk/mcp-k8s"
      ]
    }
  }
}
GitHub リリースから入手する

GitHub releases にアクセスし、お使いのプラットフォーム向けの最新リリースをダウンロードしてください。

アーカイブを展開すると、mcp-k8s-go という名前のバイナリが含まれています。そのバイナリを PATH 上の任意の場所に配置し、claude_desktop_config.json ファイルに次の設定を追加してください:

{
  "mcpServers": {
    "mcp_k8s": {
      "command": "mcp-k8s-go",
      "args": []
    }
  }
}
ソースからビルドする

このプロジェクトをビルドするには、Golang がインストールされている必要があります:

go get github.com/strowk/mcp-k8s-go
go install github.com/strowk/mcp-k8s-go

次に、claude_desktop_config.json ファイルに次の設定を追加してください:

{
  "mcpServers": {
    "mcp_k8s_go": {
      "command": "mcp-k8s-go",
      "args": []
    }
  }
}
Docker を使用する

このサーバーは、0.3.1-beta.2 リリース以降、Docker Hub でビルドおよび公開されています。linux/amd64 と linux/arm64 アーキテクチャ向けのマルチアーキテクチャイメージを利用できます。

たとえば、latest タグは次のように使用できます:

docker run -i -v ~/.kube/config:/home/nonroot/.kube/config --rm mcpk8s/server:latest

Windows ユーザーは、少なくとも Git Bash では ~/.kube/config を //c/Users/<username>/.kube/config に置き換える必要がある場合があります。

Claude の場合:

{
  "mcpServers": {
    "mcp_k8s_go": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "-v",
        "~/.kube/config:/home/nonroot/.kube/config",
        "--rm",
        "mcpk8s/server:latest"
      ]
    }
  }
}
環境変数とコマンドラインオプション

MCP サーバーでは、次の環境変数を使用します:

  • KUBECONFIG:Kubernetes 設定ファイルへのパス(省略可能。デフォルトは ~/.kube/config)

次のコマンドラインオプションを使用できます:

  • --allowed-contexts=<ctx1,ctx2,...>:ユーザーがアクセスできる Kubernetes コンテキストをカンマ区切りで指定します。指定しない場合、すべてのコンテキストが許可されます。
  • --readonly:クラスターに変更を書き込めるツールを無効にします
  • --help:ヘルプ情報を表示します
  • --version:バージョン情報を表示します
  • --mask-secrets:出力内のシークレットをマスクします(デフォルト:true)。マスキングを無効にするには、--mask-secrets=false を使用してください

たとえば、Claude Desktop を設定する場合は、claude_desktop_config.json ファイルに次の設定を追加できます:

{
    "mcpServers": {
        "mcp_k8s": {
            "command": "mcp-k8s",
            "args": [
                "--allowed-contexts=dev,prod",
                "--readonly"
            ]
        }
    }
}

これにより、dev と prod コンテキストのみが使用可能になり、クラスターに変更を書き込めるツールが無効になります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。