Mcp K8s Go について
MCP K8s Go は Golang で実装された MCP サーバーで、Kubernetes クラスターに接続します。コンテキスト、名前空間、ノード、Pod の一覧表示や、任意のリソースの読み取り・変更に対応しています。読み取り専用モードや許可コンテキストの指定により、操作範囲を制限できます。
主な機能
- 01コンテキスト、名前空間、ノード、Pod の一覧表示
- 02任意の Kubernetes リソースの取得、作成、変更
- 03イベントと Pod ログの取得
- 04Pod 内でのコマンド実行
- 05読み取り専用モードによる書き込みツールの無効化
- 06許可コンテキストによるアクセス先の制限
活用シーン
- 01kube-system などの名前空間で Pod ログのエラーを確認
- 02AI アシスタントによるノードとクラスターイベントの確認
- 03書き込みツールを無効にした本番クラスターの調査
MCP 対応
本プロジェクトは MCP サーバーであり、Kubernetes のデータをリソース、プロンプト、ツールとして MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kubernetes に接続する Golang ベースの MCP サーバー
MCP K8S Go
機能 ⚙ Inspector で閲覧 ⚙ Claude で使用 ⚙ コントリビュート ↗ ⚙ MCP について ↗
機能
MCP 💬 プロンプト 🗂️ リソース 🤖 ツール
- 🗂️🤖 Kubernetes コンテキストの一覧表示
- 💬🤖 Kubernetes 名前空間の一覧表示
- 🤖 Kubernetes リソースの一覧表示、取得、作成、変更
- ポッド、サービス、デプロイメントなどのリソースに対するカスタムマッピングを含みます
- 🤖 Kubernetes ノードの一覧表示
- 💬 Kubernetes ポッドの一覧表示
- 🤖 Kubernetes イベントの取得
- 🤖 Kubernetes ポッドログの取得
- 🤖 Kubernetes ポッド内でコマンドを実行
Inspector で閲覧
Inspector で最新の公開バージョンを使用するには、次を実行します。
npx @modelcontextprotocol/inspector npx @strowk/mcp-k8s
Claude で使用
デモでの使用例
Claude Desktop との次のチャットでは、リソースとして特定のコンテキストを選択し、kube-system 名前空間のポッドログにエラーがないか確認するよう依頼した場合の様子を示しています。

この MCP サーバーを Claude Desktop(またはほかのクライアント)で使用するには、インストール方法を選択する必要があります。
次のオプションがあります。
| Smithery | mcp-get | NPM からのビルド済み | Github でビルド済み | ソースから | Docker を使用 | |
|---|---|---|---|---|---|---|
| Claude の設定 | 自動 | 自動 | 手動 | 手動 | 手動 | 手動 |
| 前提条件 | Node.js | Node.js | Node.js | なし | Golang | Docker |
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 コンテキストのみが使用可能になり、クラスターに変更を書き込めるツールが無効になります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。