issues | ”What’s broken right now?” - a ranked, curated stream of live operational failures: failing workloads/pods, active native Helm release failures or stuck pending operations (kind=HelmRelease, group=helm.sh), dangling references, pod-startup blockers (unschedulable / admission-rejected / stuck post-bind), and False CRD conditions. No source filter; each row carries a source label sliceable via filter. Recovered Helm rollbacks are deploy history, not live issues; use get_changes for Helm deployment history and get_helm_release for native Helm full revision/history/hook diagnostics. Flux HelmRelease rows (group=helm.toolkit.fluxcd.io) are GitOps reconcilers and should use diagnose. For static posture use get_cluster_audit; for raw events use get_events. | namespace (optional), severity (optional: critical,warning), kind (optional), filter (optional CEL), limit (optional, default 200, max 1000) | |
diagnose | Root-cause one workload or GitOps reconciler in a single call. Pod/Deployment/StatefulSet/DaemonSet get minified resource + resourceContext + current AND previous container logs across pods + filtered events + startupBlockers; Application/Kustomization/Flux HelmRelease get reconciler status + related parsed issues. | kind (required: workload or GitOps reconciler), namespace (required), name (required) | |
get_dashboard | Cluster/namespace health overview - resource counts, failing pods, unhealthy workloads, warning events, Helm status. Inventory-style triage before drilling in. | namespace (optional) | |
top_resources | Live metrics ranked like `kubectl top | sort`, joined with K8s context (status, restarts, owner, requests/limits). Use for CPU/memory/OOM/load symptoms. | kind (optional: pods default, workloads, nodes), namespace (optional), sort (optional: cpu default, memory), limit (optional, default 20, max 100) |
list_resources | List resources of a kind with minified summaries + per-row summaryContext (managedBy / health / issueCount). | kind (required), group (optional), namespace (optional), context (optional: default / none) | |
search | Find resources by content/term match (config keys, env refs, images, label values, CRD fields, status messages). Tokens AND’d; secret values never indexed. Supports kind:/ns:/label:/image: modifiers and CEL filter. | query (required), filter (optional CEL), limit (optional) | |
get_resource | Detailed view of a single resource - minified spec + status + metadata + default-on resourceContext (managedBy / exposes / selectedBy / uses / runsOn / issue+audit rollups). Optionally include heavier supplemental data (events / metrics). For logs use get_pod_logs / get_workload_logs / diagnose. | kind (required), namespace (optional - omit for cluster-scoped kinds: Node, ClusterRole, IngressClass, etc.), name (required), group (optional, for ambiguous kinds), include (optional: events,metrics), context (optional: basic default, none for bare minified output) | |
get_topology | Whole-namespace/cluster topology graph (nodes + edges). Use summary format for LLM-friendly text chains. Once you have a suspect root, prefer get_neighborhood. | namespace (optional), view (optional: traffic or resources), format (optional: graph or summary) | |
get_neighborhood | BFS-expanded topology neighborhood around one known root - cheaper and clearer than get_topology for cross-resource failures (routing, selector/endpoint, refs, owner chains). RBAC-filtered. | kind (required), namespace (optional), name (required), profile (optional: auto default / all), hops (optional, default 1, max 2) | |
get_events | Recent Kubernetes Warning events, deduplicated and sorted by recency. Filter by resource kind/name to scope. | namespace (optional), limit (optional, default 20, max 100), kind (optional), name (optional) | |
get_changes | Recent meaningful changes from the Kubernetes cluster timeline plus native Helm release deployment/operation history (source: helm). Use to investigate what changed before an incident, including failed upgrades, rollbacks, and current Helm revisions. If the response includes sourcesErrored, treat it as partial data for those sources. Use get_helm_release include=history,operations for the full Helm revision trail. | namespace (optional), kind (optional), name (optional), since (optional, e.g. 1h, 30m; default 1h), limit (optional, default 20, max 50) | |
get_pod_logs | Filtered pod logs prioritizing errors/warnings, with secret redaction. Set grep for server-side filtering. | namespace (required), name (required), container (optional), tail_lines (optional, default 200), grep (optional) | |
get_workload_logs | Aggregated, AI-filtered logs from all pods of a workload (Deployment, StatefulSet, DaemonSet) | kind (required), namespace (required), name (required), container (optional), tail_lines (optional, default 100 per pod), grep (optional) | |
get_cluster_audit | Static config posture - best-practice findings (Security / Reliability / Efficiency) with remediation. INDEPENDENT of operational health; for “what’s broken right now?” use issues. | namespace (optional), category (optional), severity (optional) | |
list_packages | Installed packages (Helm releases, label-managed workloads, CRDs, Argo Applications, Flux HelmReleases + Kustomizations) with source provenance, versions, and health, in one call. Response includes sourceLegend for the stable source codes. | namespace (optional), source (optional: H/helm, L/labels, C/crds, A/argocd, F/fluxcd), chart (optional substring) | |
list_helm_releases | List Helm releases with status, resource health, storage namespace, Flux ownership, current lastOperation, and a capped operations trail when Helm history indicates failed upgrades, rollback-after-failure, rollbacks, or stuck pending operations. Use this first for Helm deployment debugging. | namespace (optional) | |
get_helm_release | Detailed Helm release info with owned resources, resource health, Flux ownership, current lastOperation, hooks, and failed/running hook diagnostics with live Job/Pod/Event/redacted-log evidence when still available. Use include=history,operations for the full Helm revision trail; include=values for key-aware redacted user values; include=diff,values_diff,notes_diff,resource_diff for revision comparison. For releases with storageNamespace, pass that value as namespace. | namespace (required: Helm storage namespace), name (required), include (optional: values,history,operations,diff,values_diff,notes_diff,resource_diff), diff_revision_1 (required when include contains a diff token) / diff_revision_2 (optional, defaults to current) | |
list_namespaces | List all namespaces with status | (none) | |
get_subject_permissions | Effective RBAC permissions of a ServiceAccount / User / Group: bindings (each with inheritedFromGroup set when applicable), deduplicated flat rule list, and (for SAs) the Pods running as it. Use to answer “is this SA over-privileged?” or “what’s the blast radius if this Pod is compromised?” | kind (required: ServiceAccount, User, or Group), namespace (required for ServiceAccount; omit for User/Group), name (required) | |
query_prometheus | Execute PromQL against the cluster’s Prometheus (auto-discovered or --prometheus-url; works with PromQL-compatible backends: Thanos, VictoriaMetrics, Mimir). type=instant returns current values; type=range returns time-series history with automatic step adjustment. Oversized results return a label-cardinality summary + suggested topk rewrite instead of raw data. | query (required), type (optional: instant default, range), since (optional, e.g. 30m, 1h, 24h, 7d; default 1h), start / end (optional RFC3339, override since), step (optional, auto-calculated when omitted), max_points (optional, default 300, max 600), timeout (optional seconds, default 30, max 180) | |
discover_metrics | Discover exact metric names (enriched with type/help from Prometheus metadata) or values of one label before writing PromQL. Lists active series from the last hour; truncated: true means narrow the match selector. | match (PromQL series selector; required when label is empty), label (optional: list values of this label instead of metric names), limit (optional, default 100, max 500) | |
get_prometheus_rules | List Prometheus alerting/recording rules with PromQL definitions, state, labels, annotations, and active alert instances. Alert-investigation entry point: fetch the rule definition, then run its query with query_prometheus. | type (optional: alert, record), name / group (optional substring filters), state (optional: firing, pending, inactive), limit (optional, default 50, max 200) | |