プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

K8scortex MCP

作者:apatilgtnバージョン 1.1.3i★ –iパソコンで動く
レジストリ名io.github.apatilgtn/k8scortex-mcp

インストール

概要

作者による説明(英語の原文)

Kubernetes MCP server: 75 tools for GKE, AKS, EKS, RBAC, audit logging, GitOps, multi-cluster.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: 開発者ツール

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: KUBECONFIG, CLUSTERS_CONFIG, K8SCORTEX_STDIO_ROLES

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

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で開く

または、設定を自分でコピーする

プロジェクトの .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"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .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 env
    Path to your kubeconfig file. Each context becomes a cluster. Defaults to ~/.kube/config.
  • CLUSTERS_CONFIG env
    Optional path to a cluster registry JSON file mixing kubeconfig, EKS, GKE and Key Vault clusters.
  • K8SCORTEX_STDIO_ROLES env
    Roles for the local session, e.g. 'developer' for read-only tools. Defaults to platform-engineer.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント apatilgtn で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

開発者ツールのほかのサーバーとの比較i

  • このカテゴリのほかの1396件のうち0%よりスターが多い
  • このカテゴリのほかの1396件のうち80%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1396件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

K8scortex MCPは安全ですか?

当てはまる基本チェック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

GitHub

作者:github

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

パソコンでもクラウドでも★ 34,245MIT4 日前更新
インストール

Desktop Commander

作者:wonderwhy-er

MCP server for terminal commands, file operations, and process management

パソコンで動く★ 10,225MIT16 日前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

K8sCortex — Kubernetes MCP Server

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.


Features

  • Curated multi-domain toolset across workload, deployment, configuration, observability, jobs, networking, GitOps, cluster admin, and generic read paths
  • Multi-cloud cluster providers — kubeconfig contexts, Amazon EKS (IAM/IRSA), Google GKE (Workload Identity) and Azure Key Vault, mixed in one registry
  • Multi-cluster routing — target any registered cluster with a single cluster parameter; writes require an explicit cluster when several are registered
  • Any OIDC identity provider (Entra ID, Okta, Cognito, Keycloak, Google) with per-tool RBAC (5-tier role hierarchy) and per-cluster policies
  • Structured audit logging — every tool call recorded with caller identity, arguments, and outcome
  • Dual transport — SSE/HTTP for programmatic clients + stdio for Claude Desktop
  • Short-lived credentials — EKS and GKE tokens are minted on demand and cached only until they expire
  • Dry-run safety — destructive tools default to simulation mode
  • Generic read coverage — list/get support for resources outside curated write paths to avoid troubleshooting dead-ends

Install

Claude Desktop, Claude Code, Cursor and other MCP clients (stdio)

Requires 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.

As a shared service for a team (HTTP + OIDC)

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.

Develop

Prerequisites
  • Node.js ≥ 22 (the GKE provider's google-auth-library and the jose dependency of jwks-rsa need it)
  • A Kubernetes cluster (minikube, kind, GKE, EKS, AKS or OpenShift)
  • kubectl configured with a valid context
Install & Run
# Clone

git clone https://github.com/apatilgtn/k8scortex-mcp.git cd k8scortex-mcp

Install

npm install

Build

npm run build

Run (local dev mode — auth bypassed)

DISABLE_AUTH=true PORT=3001 npm run dev

Connect with MCP Inspector
npx @modelcontextprotocol/inspector sse http://localhost:3001/mcp
Connect Claude Desktop to a local build

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.


Multi-cloud setup

K8sCortex picks its cluster source from the environment:

SourceWhenClusters
CLUSTERS_CONFIG=/path/clusters.jsonSetClusters listed in the file, across any providers
Azure Key VaultAZURE_KEYVAULT_URI setThe Key Vault cluster index
kubeconfigOtherwise (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.

Cluster registry file
{

"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"] } ] }

ProviderCredentialsFields
kubeconfigWhatever the context uses, including exec plugins (aws eks get-token, gke-gcloud-auth-plugin, kubelogin)context, kubeconfigPath
eksDefault AWS chain (IRSA, EKS Pod Identity, instance profile, env, SSO), optionally assuming roleArn; tokens are presigned STS URLs refreshed every 14 minutesregion, eksClusterName, roleArn
gkeApplication Default Credentials (GKE Workload Identity, service account, gcloud auth application-default login)project, location, gkeClusterName, usePrivateEndpoint
azure-keyvaultManaged 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.

Per-cluster policies

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 clusters

compare_clusters is checked against both clusters it reads.

Authentication

HTTP mode refuses to start unless an identity provider is configured (or DISABLE_AUTH=true):

VariableDescription
OIDC_ISSUERIssuer URL(s), comma-separated; JWKS is discovered from /.well-known/openid-configuration
OIDC_AUDIENCEExpected audience(s), comma-separated
OIDC_JWKS_URIOptional JWKS URL override
OIDC_ROLES_CLAIMClaim holding roles/groups (default roles; e.g. groups, cognito:groups, realm_access.roles)
OIDC_ROLE_MAPJSON map from IdP group names to K8sCortex roles, e.g. {"k8s-admins":"platform-engineer"}
ENTRA_TENANT_ID / ENTRA_CLIENT_IDShorthand for Entra ID (sets issuer, audience and JWKS)

Tools

K8sCortex intentionally keeps writes curated and governed, while allowing flexible read access for diagnostics.

DomainToolDescription
Workloadlist_podsList pods with status and IP
Workloadget_pod_logsFetch container logs
Workloaddescribe_deploymentFull deployment spec
Workloadlist_statefulsetsList StatefulSets with rollout status
Workloaddescribe_statefulsetDetailed StatefulSet spec/status
Workloadlist_daemonsetsList DaemonSets with scheduling status
Workloaddescribe_daemonsetDetailed DaemonSet spec/status
Workloadlist_nodesCluster nodes with Ready status
Deployscale_deploymentScale replicas (dry-run default)
Deployrestart_podDelete pod to trigger restart
Configget_configmapRead ConfigMap data
Configdescribe_namespace_quotaResource quota usage
Configlist_eventsRecent namespace events
Configlist_persistent_volume_claimsPVC status, bound volume, storage class, capacity
Configget_effective_permissionsServiceAccount SubjectAccessReview matrix
Generic Readlist_k8s_resourcesGeneric list for arbitrary resource kinds
Generic Readget_k8s_resourceGeneric get for arbitrary resource kinds
Observeget_hpa_statusHPA metrics and scaling
Observelist_warning_eventsWarning events for triage
Observeget_node_pressureNode memory/disk/PID pressure
Multilist_clustersAll registered clusters
Multiget_cluster_infoNode count, versions, architecture

For the evolving full catalog, see docs/developer-guide.md.


Managed Risk

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:

  • Governed writes: high-impact operations remain explicit, role-gated, and often dry-run by default.
  • Flexible reads: generic read tools cover arbitrary resource kinds for diagnostics.

This keeps the governance posture strong while preserving practical troubleshooting coverage.


Scope Boundaries (v1)

K8sCortex is designed as a governed platform interface, not an unrestricted Kubernetes super-client.

  • Generic write for any resource: intentionally out of scope in v1. Writes are curated and role-gated by design.
  • Pod exec interactive sessions: intentionally out of scope in v1. This requires stronger session controls and command-level auditing that are planned for a later version.

Architecture

Claude / IDE agents / CI-CD

│ ▼ ┌───────────────────────────

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く