KubeCraft MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KUBECONFIG | No | Path to kubeconfig file | |
| ARGOCD_TOKEN | No | ArgoCD API token for authenticated REST operations | |
| ARGOCD_SERVER | No | ArgoCD server URL for sync/rollback actions | |
| KUBECRAFT_MODE | No | stdio (default — MCP) or http (web UI on port 8080) | |
| OPENAI_API_KEY | No | API key for OpenAI provider | |
| KUBECRAFT_EMAIL | No | Email address for license registration | |
| OPENAI_BASE_URL | No | Optional OpenAI base URL | |
| AZURE_OPENAI_KEY | No | Azure OpenAI key | |
| ANTHROPIC_API_KEY | No | API key for Anthropic Claude provider | |
| ANTHROPIC_BASE_URL | No | Optional Anthropic API base URL | |
| KUBECRAFT_LOKI_URL | No | Loki base URL for loki_query | |
| KUBECRAFT_HTTP_HOST | No | Bind address for web mode (default 0.0.0.0) | |
| KUBECRAFT_HTTP_PORT | No | Port for web mode (default 8080) | |
| KUBECRAFT_LLM_MODEL | No | Override the default model for the active provider | |
| KUBECRAFT_LOKI_USER | No | Optional Loki basic auth username | |
| KUBECRAFT_LOKI_TOKEN | No | Optional Bearer token for Loki | |
| KUBECRAFT_OUTPUT_DIR | No | Directory for saving diagrams and 3D HTML files | |
| AZURE_OPENAI_ENDPOINT | No | Azure OpenAI endpoint | |
| KUBECRAFT_LICENSE_KEY | No | License key (overrides file-based license) | |
| KUBECRAFT_LOKI_ORG_ID | No | Optional X-Scope-OrgID header for multi-tenant Loki | |
| KUBECRAFT_VIEWER_BIND | No | Optional bind for built-in 3D viewer URL | |
| KUBECRAFT_CORS_ORIGINS | No | Comma-separated CORS allow-list for web mode | |
| KUBECRAFT_LLM_PROVIDER | No | anthropic (default), openai, or azure-openai | |
| AZURE_OPENAI_DEPLOYMENT | No | Azure OpenAI deployment | |
| KUBECRAFT_CPU_HOUR_RATE | No | Cost analysis CPU rate (default: $0.031/vCPU-hr) | |
| KUBECRAFT_INSTANCE_NAME | No | Optional label shown in the UI header | |
| KUBECRAFT_LOKI_PASSWORD | No | Optional Loki basic auth password | |
| KUBECRAFT_VIEWER_EXPOSE | No | Set to '1' to allow binding 0.0.0.0 so Docker port publishing works | |
| AZURE_OPENAI_API_VERSION | No | Azure OpenAI API version | |
| KUBECRAFT_PROMETHEUS_URL | No | Prometheus base URL for prometheus_query, visualize_gpu_metrics, render_gpu_metrics, render_gpu_sparkline | |
| KUBECRAFT_PROMETHEUS_USER | No | Optional Prometheus basic auth username | |
| KUBECRAFT_PROMETHEUS_TOKEN | No | Optional Bearer token for Prometheus | |
| KUBECRAFT_MEM_GIB_HOUR_RATE | No | Cost analysis memory rate (default: $0.004/GiB-hr) | |
| OTEL_EXPORTER_OTLP_ENDPOINT | No | OpenTelemetry OTLP endpoint for trace export | |
| KUBECRAFT_PROMETHEUS_PASSWORD | No | Optional Prometheus basic auth password |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_cluster_infoA | Return cluster version, node count, API server URL, and overall health status. |
| list_namespacesA | List all namespaces with status, age, and labels. |
| list_nodesA | List cluster nodes with roles, status, capacity, and allocatable resources. |
| get_node_healthA | Structured node conditions (Ready, memory/disk/PID/network pressure) with unhealthy nodes first and short remediation hints. Read-only. |
| list_podsA | List pods in a namespace with status, restarts, age, and container images. |
| list_deploymentsA | List deployments in a namespace with replica counts, strategy, and age. |
| list_servicesA | List services in a namespace with type, cluster IP, ports, and selectors. |
| list_ingressesA | List ingress resources in a namespace with hosts, paths, and TLS config. |
| list_gateway_apiA | If gateway.networking.k8s.io is installed, list Gateways, HTTPRoutes, and GRPCRoutes. Omit namespace for all namespaces. Read-only. |
| list_hpasA | List HorizontalPodAutoscalers with scaling target, min/max/current replicas, metrics, and current utilization. |
| list_resource_quotasB | List ResourceQuotas showing used vs hard limits, and LimitRanges showing min/max/default resource constraints per namespace. |
| list_pod_disruption_budgetsA | List PDBs with minAvailable/maxUnavailable and current vs desired healthy pods. Omit namespace for all namespaces. Read-only. |
| inspect_rbacA | Read-only RBAC review: heuristics for risky ClusterRole/Role rules (wildcards, escalate/bind/impersonate) and a sample of ClusterRoleBindings. |
| list_storage_overviewA | StorageClasses, PVCs, PVs, and VolumeAttachments with phase flags (Pending/Lost, Released/Unbound). Omit namespace to list PVCs in all namespaces. Read-only. |
| summarize_network_policiesA | List NetworkPolicies with pod selector summary, ingress/egress rule counts, and a possible default-deny ingress heuristic. Omit namespace for all namespaces. Read-only. |
| summarize_policy_enginesA | Read-only summary: Kyverno PolicyReports / ClusterPolicyReports and Gatekeeper constraint violation counts when those API groups exist. |
| get_gpu_promql_referenceA | Markdown reference for DCGM and common GPU-related PromQL examples (no live query). Pair with prometheus_query for execution. |
| list_resourcesB | Generic resource lister — fetches any Kubernetes resource by kind and API version. |
| get_pod_logsB | Fetch logs for a specific pod/container. |
| describe_resourceA | Return the full spec of a Kubernetes resource as YAML or JSON. Supported kinds: pod, service, deployment, replicaset, statefulset, daemonset, configmap, secret, ingress, namespace, node, persistentvolumeclaim. |
| get_eventsB | Fetch recent Kubernetes events, optionally filtered by namespace, resource, or type. |
| get_resource_usageA | Fetch CPU/memory usage for pods via the metrics API (requires metrics-server). |
| diagnose_podA | Comprehensive pod diagnosis: status, conditions, container states, events, and recent logs in one call. |
| visualize_namespaceA | Generate a Mermaid diagram showing deployments, services, and pods within a namespace and their connections via selectors. |
| visualize_networkB | Generate a Mermaid diagram mapping services to their backend pods via label selectors. |
| visualize_cluster_topologyB | Generate a high-level Mermaid diagram of nodes, namespaces, and pod distribution across the cluster. |
| visualize_app_architectureA | Full KubeOrch-style architecture diagram showing ALL resource types in a namespace: Ingress → Service → Deployment → Pod, plus ConfigMaps, Secrets, PVCs, and how they wire together via selectors, env refs, and volume mounts. |
| render_cluster_topologyA | Render the cluster topology diagram as a PNG image. Shows nodes, namespaces, and pod distribution as a visual image. |
| render_namespaceA | Render a namespace diagram as a PNG image. Shows deployments, services, pods, and their connections. |
| render_app_architectureA | Render the full KubeOrch-style app architecture as a PNG image. Shows Ingress → Service → Deployment → Pod plus ConfigMaps, Secrets, PVCs. |
| render_networkA | Render the service-to-pod network map as a PNG image. Shows how services route to backend pods via label selectors. |
| render_gpu_dashboardA | Render a PNG dashboard of GPU extended resources per node (allocatable) vs sum of pod requests. Requires nodes with GPU resources or workloads requesting GPUs. |
| render_gpu_metricsA | Render a PNG bar chart from Prometheus DCGM metric DCGM_FI_DEV_GPU_UTIL. Requires KUBECRAFT_PROMETHEUS_URL and DCGM exporter. |
| render_gpu_sparklineA | PNG sparkline from a Prometheus range query (default DCGM_FI_DEV_GPU_UTIL, last hour). Requires KUBECRAFT_PROMETHEUS_URL. |
| list_contextsA | List all kubeconfig contexts with cluster, user, namespace, and which is active. |
| switch_contextA | Switch the active kubeconfig context. All subsequent tool calls will use this cluster. |
| helm_listB | List Helm releases with status, chart, app version, and revision number. |
| helm_get_valuesB | Show user-supplied values for a specific Helm release. |
| get_server_statsA | Return KubeCraft MCP server stats: total calls, errors, average latency per tool, and uptime. |
| openshift_detectA | Detect whether the cluster is OpenShift and return OCP version, console URL, and registered OpenShift API groups. Works on any cluster. |
| openshift_list_routesA | List OpenShift Routes with host, path, TLS termination, and target service. Returns a compatibility notice on non-OpenShift clusters. |
| openshift_list_projectsA | List OpenShift Projects with status, requester, and display name. Returns a compatibility notice on non-OpenShift clusters. |
| openshift_list_buildsA | List OpenShift BuildConfigs with build strategy, source type, git URI, and build count. Returns a compatibility notice on non-OpenShift clusters. |
| argocd_detectA | Detect whether ArgoCD is installed and report application/project counts and REST API config status. |
| argocd_list_appsB | List ArgoCD Applications with sync status, health, source repo, revision, and target namespace. |
| argocd_list_projectsA | List ArgoCD AppProjects with allowed source repos, destination namespaces, and role count. |
| flux_detectA | Detect whether Flux CD is installed and report source/kustomization/helmrelease counts. |
| flux_list_sourcesA | List Flux GitRepositories and HelmRepositories with ready status, URL, and artifact revision. |
| flux_list_kustomizationsA | List Flux Kustomizations with ready status, source reference, path, and last applied revision. |
| flux_list_helmreleasesB | List Flux HelmReleases with ready status, chart name, version, release name, and values summary. |
| visualize_fluxA | Generate a Mermaid diagram of Flux sources flowing into Kustomizations and HelmReleases with ready status colors. |
| tekton_detectA | Detect whether Tekton is installed and report pipeline/task/run counts. |
| tekton_list_pipelinesB | List Tekton Pipelines with task count and last PipelineRun status. |
| tekton_list_runsA | List recent Tekton PipelineRuns with status, duration, start time, and task run count. |
| tekton_list_tasksA | List Tekton Tasks with step count and parameter count. |
| list_gpu_workloadsA | List pods that request or limit GPU extended resources (e.g. nvidia.com/gpu) with node, phase, requests, and limits. |
| gpu_cluster_readinessC | Heuristic scan for GPU device plugins, GPU operator workloads, and GPU-related CRDs. |
| get_license_infoA | Show current KubeCraft license status, type, expiry, hardware ID, email, and purchase/renewal instructions. |
| register_licenseA | Register or update your email address and optionally apply a new license key. Binds the license to the current machine's hardware fingerprint. Works even when the license is expired. |
| list_daemonsetsA | List DaemonSets with desired/ready/available/updated counts, node selector, and update strategy. Omit namespace for all namespaces. Read-only. |
| list_statefulsetsA | List StatefulSets with ready/updated/current counts, update strategy, and headless service name. Omit namespace for all namespaces. Read-only. |
| list_cronjobsA | List CronJobs with schedule, suspend status, active job count, and last schedule time. Omit namespace for all namespaces. Read-only. |
| list_jobsA | List Jobs with completion status, duration, and succeeded/failed counts. Omit namespace for all namespaces. Read-only. |
| list_csi_driversA | List installed CSI drivers with their capabilities (attach, capacity tracking, pod info, fsGroup policy) and per-node registration status from CSINode objects. |
| list_ingress_classesA | List IngressClass resources with controller, default status, and parameter references. Identifies which IngressClass is the cluster default. |
| detect_service_meshA | Detect installed service meshes (Istio, Linkerd, Cilium, Contour, Kuma, Consul Connect) by API groups. For Istio/Linkerd: shows namespace injection labels and sidecar container counts from a pod sample. |
| detect_cniA | Detect the cluster CNI plugin from node annotations, known DaemonSets (Calico, Cilium, Flannel, AWS VPC CNI, Azure CNI, Weave, Antrea, etc.), and pod CIDRs. |
| diagnose_corednsA | Check CoreDNS deployment health: replica readiness, Corefile configuration (plugins, forwarding), kube-dns Service ClusterIP and endpoint count. Flags single-replica or degraded states. |
| dns_lookupA | Resolve a hostname from inside the cluster by execing nslookup/getent/python in a running pod. Compares cluster-DNS view to external DNS to detect split-horizon issues. |
| list_crdsA | Inventory every CRD with group, kind, scope, served versions, stored version, age, and an owner hint (Helm release / OLM CSV / known operator). Optional |
| describe_crdA | Detail on a single CRD: full version list, conversion strategy, printer columns, subresources, validation summary, instance count per version, and risk flags (no schema, preserveUnknownFields, multi-version with no conversion webhook). |
| count_custom_resourcesA | Cluster-wide CR census: count instances of every CRD. Catches operator bloat — thousands of abandoned CronJobs, sprawling VirtualServices, stale ApplicationSets. Returns top N by count. |
| detect_operatorsA | Detect operators running on the cluster by combining signals: known API groups, OLM ClusterServiceVersions, Deployment naming patterns (*-operator, *-controller, *-manager), and operator-style labels. Reports each operator's source, managed CRDs, ServiceAccount, deployment health. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/cloudcrafttech/kubecraft-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server