GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
Kubernetes MCP server: 75 tools for GKE, AKS, EKS, RBAC, audit logging, GitOps, multi-cluster.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
KUBECONFIG, CLUSTERS_CONFIG, K8SCORTEX_STDIO_ROLES必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"k8scortex": {
"command": "npx",
"args": [
"-y",
"k8scortex-mcp"
],
"env": {
"KUBECONFIG": "your-value",
"CLUSTERS_CONFIG": "your-value",
"K8SCORTEX_STDIO_ROLES": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add k8scortex --env KUBECONFIG=your-value --env CLUSTERS_CONFIG=your-value --env K8SCORTEX_STDIO_ROLES=your-value -- npx -y k8scortex-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"k8scortex": {
"command": "npx",
"args": [
"-y",
"k8scortex-mcp"
],
"env": {
"KUBECONFIG": "your-value",
"CLUSTERS_CONFIG": "your-value",
"K8SCORTEX_STDIO_ROLES": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"k8scortex": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"k8scortex-mcp"
],
"env": {
"KUBECONFIG": "your-value",
"CLUSTERS_CONFIG": "your-value",
"K8SCORTEX_STDIO_ROLES": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
KUBECONFIG envCLUSTERS_CONFIG envK8SCORTEX_STDIO_ROLES envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント apatilgtn で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.1.3)がレジストリに届いたのは11 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.js, Dockerも必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Give your AI agents Kubernetes access your security team will sign off on. K8sCortex is one governed MCP gateway for GKE, EKS, AKS, OpenShift and local clusters: SSO on every request, role tiers, per-cluster policies, dry-run by default, and an audit log of who asked for what.
Most Kubernetes MCP servers hand an agent your kubeconfig. K8sCortex sits in between: it decides, per person and per cluster, which of its 75 tools may run, and records every call. Clusters from different clouds live in one registry, with credentials minted on demand.
A real Claude Code session with K8sCortex as its only tool, on a throwaway prod cluster: the developer is denied the rollback, the release manager is blocked by the prod policy, the SRE fixes it. [Watch all five scenarios (97 s)](docs/demo/claude/claude-demo.mp4): incident, release drift, flash-sale scaling, password rotation, node maintenance. How it was recorded.
cluster parameter; writes require an explicit cluster when several are registeredRequires Node.js 22+ and a working kubeconfig. Add to your client's MCP configuration (Claude Desktop: claude_desktop_config.json):
{
"mcpServers": { "k8scortex": { "command": "npx", "args": ["-y", "k8scortex-mcp"], "env": { "K8SCORTEX_STDIO_ROLES": "developer" } } } }
developer gives a read-only session; remove it for the full toolset. With Claude Code: claude mcp add k8scortex -- npx -y k8scortex-mcp.
With the Helm chart (read-only RBAC by default; see the chart README for writes and more clouds):
helm install k8scortex ./charts/k8scortex -n platform-mcp --create-namespace \
--set auth.oidc.issuer=https://login.example.com --set auth.oidc.audience=k8scortex
Plain manifests rendered from the chart are in kubernetes/. Or run the image directly:
docker run -p 3000:3000 \
-e OIDC_ISSUER=https://login.example.com -e OIDC_AUDIENCE=k8scortex \ -e CLUSTERS_CONFIG=/config/clusters.json -v "$PWD/clusters.json:/config/clusters.json:ro" \ ghcr.io/apatilgtn/k8scortex-mcp:latest
Run it in a management cluster with Workload Identity / IRSA / managed identity for the cloud providers, expose /mcp internally, and ship the audit log to your SIEM. See Multi-cloud setup and Authentication.
google-auth-library and the jose dependency of jwks-rsa need it)kubectl configured with a valid context# Clone
git clone https://github.com/apatilgtn/k8scortex-mcp.git cd k8scortex-mcp
npm install
npm run build
DISABLE_AUTH=true PORT=3001 npm run dev
npx @modelcontextprotocol/inspector sse http://localhost:3001/mcp
Point the client at your build instead of the npm package:
{
"mcpServers": { "k8scortex": { "command": "node", "args": [" /k8scortex-mcp/dist/stdio.js"] } } }
Restart Claude Desktop. Ask: *"List all pods in the default namespace"*.
Every context in your kubeconfig is available as a cluster, so you can ask *"Compare the web app's ArgoCD revision between kind-dev and prod-eks"*. Set K8SCORTEX_STDIO_ROLES=developer to give the local session read-only tools.
K8sCortex picks its cluster source from the environment:
| Source | When | Clusters |
|---|---|---|
CLUSTERS_CONFIG=/path/clusters.json | Set | Clusters listed in the file, across any providers |
| Azure Key Vault | AZURE_KEYVAULT_URI set | The Key Vault cluster index |
| kubeconfig | Otherwise (or USE_LOCAL_KUBECONFIG=true) | Every context in KUBECONFIG / ~/.kube/config, or the in-cluster service account |
DEFAULT_CLUSTER chooses the cluster used when a tool call names none. Read-only tools fall back to it; mutating tools require an explicit cluster whenever more than one cluster is registered.
{
"defaultCluster": "dev", "clusters": [ { "name": "dev", "provider": "kubeconfig", "context": "kind-dev", "labels": { "env": "dev" } }, { "name": "prod-eks", "provider": "eks", "region": "us-east-1", "eksClusterName": "prod", "roleArn": "arn:aws:iam::111122223333:role/k8scortex", "labels": { "env": "prod" } }, { "name": "prod-gke", "provider": "gke", "project": "my-project", "location": "us-central1", "gkeClusterName": "prod", "labels": { "env": "prod" } }, { "name": "prod-aks", "provider": "azure-keyvault", "cloud": "aks", "region": "australiaeast", "keyVaultUri": "https://my-vault.vault.azure.net", "labels": { "env": "prod" } } ], "policies": [ { "labels": { "env": "prod" }, "minRole": "sre", "appliesTo": "mutating" }, { "match": "prod-*", "denyTools": ["drain_node", "delete_namespace"] } ] }
| Provider | Credentials | Fields |
|---|---|---|
kubeconfig | Whatever the context uses, including exec plugins (aws eks get-token, gke-gcloud-auth-plugin, kubelogin) | context, kubeconfigPath |
eks | Default AWS chain (IRSA, EKS Pod Identity, instance profile, env, SSO), optionally assuming roleArn; tokens are presigned STS URLs refreshed every 14 minutes | region, eksClusterName, roleArn |
gke | Application Default Credentials (GKE Workload Identity, service account, gcloud auth application-default login) | project, location, gkeClusterName, usePrivateEndpoint |
azure-keyvault | Managed identity; base64 kubeconfig in secret kubeconfig- (or secretName) | keyVaultUri, secretName |
The EKS and GKE providers use optional dependencies (@aws-sdk/client-eks, @aws-sdk/credential-providers, @smithy/signature-v4, @aws-crypto/sha256-js, google-auth-library) that npm installs by default. The identity needs eks:DescribeCluster plus an EKS access entry, or container.clusters.get plus Kubernetes RBAC on GKE.
Policies match clusters by name glob (match) and/or labels, and can only tighten the global role table:
minRole raises the role required on matching clusters (appliesTo: "mutating" limits it to write tools)denyTools disables tools for everyone on matching clusterscompare_clusters is checked against both clusters it reads.
HTTP mode refuses to start unless an identity provider is configured (or DISABLE_AUTH=true):
| Variable | Description |
|---|---|
OIDC_ISSUER | Issuer URL(s), comma-separated; JWKS is discovered from /.well-known/openid-configuration |
OIDC_AUDIENCE | Expected audience(s), comma-separated |
OIDC_JWKS_URI | Optional JWKS URL override |
OIDC_ROLES_CLAIM | Claim holding roles/groups (default roles; e.g. groups, cognito:groups, realm_access.roles) |
OIDC_ROLE_MAP | JSON map from IdP group names to K8sCortex roles, e.g. {"k8s-admins":"platform-engineer"} |
ENTRA_TENANT_ID / ENTRA_CLIENT_ID | Shorthand for Entra ID (sets issuer, audience and JWKS) |
K8sCortex intentionally keeps writes curated and governed, while allowing flexible read access for diagnostics.
| Domain | Tool | Description |
|---|---|---|
| Workload | list_pods | List pods with status and IP |
| Workload | get_pod_logs | Fetch container logs |
| Workload | describe_deployment | Full deployment spec |
| Workload | list_statefulsets | List StatefulSets with rollout status |
| Workload | describe_statefulset | Detailed StatefulSet spec/status |
| Workload | list_daemonsets | List DaemonSets with scheduling status |
| Workload | describe_daemonset | Detailed DaemonSet spec/status |
| Workload | list_nodes | Cluster nodes with Ready status |
| Deploy | scale_deployment | Scale replicas (dry-run default) |
| Deploy | restart_pod | Delete pod to trigger restart |
| Config | get_configmap | Read ConfigMap data |
| Config | describe_namespace_quota | Resource quota usage |
| Config | list_events | Recent namespace events |
| Config | list_persistent_volume_claims | PVC status, bound volume, storage class, capacity |
| Config | get_effective_permissions | ServiceAccount SubjectAccessReview matrix |
| Generic Read | list_k8s_resources | Generic list for arbitrary resource kinds |
| Generic Read | get_k8s_resource | Generic get for arbitrary resource kinds |
| Observe | get_hpa_status | HPA metrics and scaling |
| Observe | list_warning_events | Warning events for triage |
| Observe | get_node_pressure | Node memory/disk/PID pressure |
| Multi | list_clusters | All registered clusters |
| Multi | get_cluster_info | Node count, versions, architecture |
For the evolving full catalog, see docs/developer-guide.md.
The largest functional risk in Kubernetes MCP is dead-end visibility on non-curated resources (for example StatefulSets, DaemonSets, PVCs, or CRDs). K8sCortex addresses this by combining:
This keeps the governance posture strong while preserving practical troubleshooting coverage.
K8sCortex is designed as a governed platform interface, not an unrestricted Kubernetes super-client.
Claude / IDE agents / CI-CD
│ ▼ ┌───────────────────────────
冒頭だけを表示しています。続きはリポジトリで読めます