原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 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 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 开发者工具

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: KUBECONFIG, CLUSTERS_CONFIG, K8SCORTEX_STDIO_ROLES

你需要

  • npm已安装 Node.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月8日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 apatilgtn 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“开发者工具”中的其他服务器比较i

  • 星标数多于此分类中其他 4910 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 4910 个服务器的 76% 更新
  • 基础检查结果等于或优于此分类中其他 4910 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

K8scortex MCP 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.1.3)于12天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js, Docker。

有什么可以替代它?

同一分类中有:GitHub, Desktop Commander, Cloudflare MCP

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况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天前更新
安装

Cloudflare MCP

作者:cloudflare

Cloudflare MCP servers

在云端运行★ 4,446Apache-2.014个月前更新
安装

作者的 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