Skip to main content
Glama

K8s クラスタ運用 MCP Server

FastMCP ベースの Kubernetes 運用クエリ用 MCP サービス。kubectl get / describe / logs / events --watch などの日常的なトラブルシューティング操作を、LLM が呼び出せる読み取り専用ツールとしてカプセル化し、Claude などのクライアントが直接クラスタ状態を読み取り、障害の現場を特定できるようにします。

⚠️ 本プロジェクトは読み取り専用ツールのみを公開しています(create/update/delete なし)。ただし、後述の「セキュリティ推奨事項」に従い、読み取り専用 ServiceAccount の RBAC と組み合わせて使用することを推奨します。

ツール一覧

ツール

説明

対応する kubectl

list_nodes

ノード一覧の概要

kubectl get nodes -o wide

get_node_detail

ノード詳細

kubectl describe node

get_node_resource_usage

ノードのリソース要求/制限の集計と過載評価

describe node の Allocated resources

find_problem_nodes

問題ノードのスキャン(NotReady / 各種 Pressure)

list_pods

Pod 一覧(namespace / label / field フィルタ対応)

kubectl get pods -o wide

get_pod_detail

Pod 詳細(label / workload / 名称プレフィックスで特定)

kubectl describe pod

read_pod_log

Pod コンテナログの読み取り

kubectl logs

query_events

イベントのクエリ(重複排除 + ソート)

kubectl get events

watch_events

イベントストリームのリアルタイム監視

kubectl get events --watch

watch_nodes

ノード状態変化のリアルタイム監視

kubectl get nodes --watch

watch_pods

Pod 状態変化のリアルタイム監視

kubectl get pods --watch

さらに、@mcp.prompt(ノード調査 / クラスタ巡回ガイド)と @mcp.resourcek8s://cluster/summary クラスタサマリー)の追加機能があります。

Related MCP server: Kubernetes MCP Server

ディレクトリ構造

├── app.py              # FastMCP 实例(叶子模块,破循环导入)
├── k8s_server.py       # 入口:导入 Tools 即自动注册全部工具
├── k8s_client.py       # K8s 客户端懒加载 + 单一配置真源
├── config.py           # 12-Factor 环境变量配置
├── prompts.py          # @mcp.prompt 引导
├── resources.py        # @mcp.resource 资源
├── Tools/              # 每个工具一个文件,导入即注册
├── utils/              # 纯解析/辅助模块(无 K8s/MCP 依赖)
└── tests/              # 单元测试

インストールと実行

# 1. 创建虚拟环境并安装依赖
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux / macOS
source .venv/bin/activate

pip install -r requirements.txt

# 2. 运行(HTTP transport,默认 127.0.0.1:8081)
python k8s_server.py

テストの実行

pip install -r requirements-dev.txt
python -m pytest -q

設定

すべて環境変数で設定し、デフォルト値があります(config.py 参照):

変数

デフォルト値

説明

KUBECONFIG_PATH

""

kubeconfig パスを明示指定。空の場合は公式の解決チェーン($KUBECONFIG~/.kube/config)を使用

K8S_VERIFY_SSL

true

TLS 証明書を検証するかどうか。デバッグで自己署名かつリスクが明確な場合のみ false に設定

MCP_SERVER_NAME

k8s-node-server

MCP サービス名

MCP_TRANSPORT

http

トランスポート方式。http または stdio

MCP_HOST

127.0.0.1

リッスンアドレス

MCP_PORT

8081

リッスンポート

K8s 接続設定の読み込み優先順位: in-cluster(Pod 内の SA)→ 明示的な KUBECONFIG_PATH → 公式 kubeconfig 解決チェーン。単一の真実源であり、複数ファイルから合成しません。

MCP クライアントへの接続

Claude Code を例にします(HTTP トランスポートが 127.0.0.1:8081 で実行中の場合):

{
  "mcpServers": {
    "k8s-node-server": {
      "url": "http://127.0.0.1:8081/mcp"
    }
  }
}

セキュリティ推奨事項

  1. 読み取り専用 RBAC を使用:本サービスを実行する Pod / ユーザーには読み取り専用の ClusterRole を設定し、高権限の資格情報を借用しないようにします。

  2. デフォルトでローカルのみにバインドMCP_HOST はデフォルトで 127.0.0.1。外部に公開する場合は、必ずリバースプロキシ層で認証(TLS + Token / OIDC)を追加してください。HTTP トランスポート自体には認証とレート制限がありません

  3. 証明書検証を無効にしないK8S_VERIFY_SSL=false は自己署名証明書の一時的なデバッグのみに使用し、本番環境では true のままにしてください。

  4. 認証情報をリポジトリに入れない:kubeconfig には秘密鍵が含まれます。.gitignorekubeconfig* を除外済みです。強制的にコミットしないでください。

既知の制限

  • すべてのツールは読み取り専用であり、変更操作は含まれません(これは意図的な設計です)。

  • watch_* シリーズはグローバルな排他ロックに制限されます。同時に実行できる watch は 1 つのみで、API Server への負荷を避けます。

  • イベント / ログ出力には長さ上限があります。巨大な内容は切り詰められます(read_pod_log の切り詰めロジックと query_eventsmax_count を参照)。

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zj-hub-coder/k8s-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server