Changes for version 0.001 - 2026-02-24

  • Initial release
  • RBAC-aware MCP server for Kubernetes
    • Dynamic tool discovery via SelfSubjectRulesReview
    • Dynamic tool descriptions reflecting actual permissions
    • Wildcard handling for verbs and resources
    • Permission check before every tool call
  • 10 MCP tools:
    • k8s_permissions — show RBAC permissions
    • k8s_list — list resources with label/field selectors
    • k8s_get — get resource in summary, JSON, or YAML format
    • k8s_create — create a resource from manifest
    • k8s_patch — strategic merge, JSON merge, or JSON patch
    • k8s_delete — delete a resource
    • k8s_logs — pod container logs via raw API endpoint
    • k8s_events — dedicated event listing with object/field filters
    • k8s_rollout_restart — rolling restart for Deployments, StatefulSets, DaemonSets (same as kubectl rollout restart)
    • k8s_apply — create-or-update semantics (like kubectl apply), tries create first, falls back to strategic merge patch on 409
  • Three authentication methods (tried in order):
    • Direct token via MCP_K8S_TOKEN + MCP_K8S_SERVER
    • In-cluster service account auto-detection
    • Kubeconfig fallback with MCP_K8S_CONTEXT support
  • Dynamic resource plural discovery via API server endpoints
    • 4-tier lookup: static map, IO::K8s class, API discovery, heuristic
    • Supports CRDs (e.g. Cilium) without configuration
  • Auto-namespace detection (single namespace auto-fill, in-cluster namespace from mounted service account)
  • Example RBAC manifests in examples/:
    • readonly-serviceaccount.yaml
    • deployer-serviceaccount.yaml
    • full-ops-serviceaccount.yaml
  • Live demo script examples/raider-configmap-demo.pl (Langertha::Raider + MCP::K8s)
  • MCP::Kubernetes alias module for CPAN discoverability

Documentation

MCP Server for Kubernetes with RBAC-aware dynamic tools

Modules

MCP Server for Kubernetes with RBAC-aware dynamic tools
RBAC discovery and permission checking for Kubernetes
MCP Server for Kubernetes (alias for MCP::K8s)