[ { "_meta": { "io.kubernetes-mcp-server/rbac": { "bounded": { "requirements": [ { "namespace": { "argument": "namespace" }, "target": { "resource": { "resource": "pods" } }, "verbs": [ "get", "list" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "name" }, "target": { "resource": { "resource": "pods" } }, "verbs": [ "get" ] }, { "namespace": { "argument": "namespace" }, "target": { "resource": { "resource": "pods", "subresource": "log" } }, "verbs": [ "get" ] } ] }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": false, "idempotentHint": false, "openWorldHint": true, "readOnlyHint": true, "title": "Workload: Logs" }, "description": "Get the logs of a Kubernetes Pod (or workload name that will be resolved to a pod) in a namespace. Output is plain text, matching kubernetes-mcp-server pods_log. The line_count field tells you the total number of log lines returned. Analyze ALL of them, but summarize the results unless the user explicitly asks for the raw output. Do not omit any error or warning lines.", "inputSchema": { "properties": { "container": { "description": "Optional. Name of the Pod container to get the logs from.", "type": "string" }, "format": { "description": "Output formatting for chat. 'codeblock' wraps logs in ~~~ fences (recommended). 'plain' returns raw text like kubernetes-mcp-server pods_log.", "enum": [ "codeblock", "plain" ], "type": "string" }, "meshCluster": { "description": "Optional Istio mesh cluster name from kiali_list_mesh_clusters (e.g. west). When omitted, Kiali defaults to its home cluster.", "type": "string" }, "name": { "description": "Name of the Pod to get the logs from. If it does not exist, it will be treated as a workload name and a running pod will be selected.", "type": "string" }, "namespace": { "description": "Namespace to get the Pod logs from", "type": "string" }, "previous": { "description": "Optional. Return previous terminated container logs", "type": "boolean" }, "severity": { "description": "Optional severity filter applied client-side. Accepts 'ERROR', 'WARN' or combinations like 'ERROR,WARN'.", "type": "string" }, "tail": { "default": 50, "description": "Number of lines to retrieve from the end of the logs (Optional, defaults to 50). Cannot exceed 200 lines.", "minimum": 1, "type": "integer" }, "workload": { "description": "Optional. Workload name override (used when name lookup fails).", "type": "string" } }, "required": [ "namespace", "name" ], "type": "object" }, "name": "kiali_get_logs", "title": "Workload: Logs" }, { "_meta": { "io.kubernetes-mcp-server/rbac": { "unbounded": { "reason": "Mesh status aggregates control-plane, data-plane, and observability backends through Kiali; the Kubernetes API checks Kiali performs cannot be derived from this capability's arguments" }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": false, "idempotentHint": false, "openWorldHint": true, "readOnlyHint": true, "title": "Get Mesh Status" }, "description": "Retrieves the high-level health, topology, and environment details of the Istio service mesh. Returns multi-cluster control plane status (istiod), data plane namespace health (including ambient mesh status), observability stack health (Prometheus, Grafana...), and component connectivity. Use this tool as the first step to diagnose mesh-wide issues, verify Istio/Kiali versions, or check overall health before drilling into specific workloads.", "inputSchema": { "properties": {}, "type": "object" }, "name": "kiali_get_mesh_status", "title": "Get Mesh Status" }, { "_meta": { "io.kubernetes-mcp-server/rbac": { "bounded": { "requirements": [ { "target": { "resource": { "resource": "namespaces" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "resource": "services" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "resource": "pods" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "apps", "resource": "deployments" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "apps", "resource": "statefulsets" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "apps", "resource": "daemonsets" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "apps", "resource": "replicasets" } }, "verbs": [ "get", "list" ] } ] }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": false, "idempotentHint": false, "openWorldHint": true, "readOnlyHint": true, "title": "Get Mesh Traffic Graph" }, "description": "Returns service-to-service traffic topology, dependencies, and network metrics (throughput, response time, mTLS) for the specified namespaces. Use this to diagnose routing issues, latency, or find upstream/downstream dependencies.", "inputSchema": { "properties": { "graphType": { "default": "versionedApp", "description": "Granularity of the graph. 'app' aggregates by app name, 'versionedApp' separates by versions, 'workload' maps specific pods/deployments. Default: versionedApp.", "enum": [ "app", "versionedApp", "service", "workload" ], "type": "string" }, "meshCluster": { "description": "Optional Istio mesh cluster name from kiali_list_mesh_clusters (e.g. west). When omitted, Kiali defaults to its home cluster.", "type": "string" }, "namespaces": { "description": "Comma-separated list of namespaces to map", "type": "string" } }, "required": [ "namespaces" ], "type": "object" }, "name": "kiali_get_mesh_traffic_graph", "title": "Get Mesh Traffic Graph" }, { "_meta": { "io.kubernetes-mcp-server/rbac": { "bounded": { "requirements": [ { "target": { "resource": { "resource": "namespaces" } }, "verbs": [ "get", "list" ] }, { "resourceName": { "argument": "namespace" }, "target": { "resource": { "resource": "namespaces" } }, "verbs": [ "get" ] } ] }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": false, "idempotentHint": true, "openWorldHint": true, "readOnlyHint": true, "title": "Get Metrics for a Resource" }, "description": "Returns a compact JSON summary of Istio metrics (latency quantiles, traffic trends, throughput, payload sizes) for the given resource.", "inputSchema": { "properties": { "byLabels": { "description": "Comma-separated list of labels to group metrics by (e.g., 'source_workload,destination_service'). Optional", "type": "string" }, "direction": { "default": "outbound", "description": "Traffic direction. Optional, defaults to 'outbound'", "enum": [ "inbound", "outbound" ], "type": "string" }, "meshCluster": { "description": "Optional Istio mesh cluster name from kiali_list_mesh_clusters (e.g. west). When omitted, Kiali defaults to its home cluster.", "type": "string" }, "namespace": { "description": "Namespace to get metrics from", "type": "string" }, "quantiles": { "default": "0.5,0.95,0.99,0.999", "description": "Comma-separated list of quantiles for histogram metrics (e.g., '0.5,0.95,0.99'). Optional", "type": "string" }, "rateInterval": { "default": "10m", "description": "Rate interval for metrics (e.g., '1m', '5m'). Optional, defaults to '10m'", "type": "string" }, "reporter": { "default": "source", "description": "Metrics reporter(s). Comma-separated list of: 'source', 'destination', 'waypoint', or the special value 'both' (no reporter filter). Optional, defaults to 'source'. Example: 'source,waypoint'", "type": "string" }, "requestProtocol": { "description": "Filter by request protocol (e.g., 'http', 'grpc', 'tcp'). Optional", "type": "string" }, "resourceName": { "description": "Name of the resource to get metrics for", "type": "string" }, "resourceType": { "description": "Type of resource to get metrics", "enum": [ "service", "workload", "app" ], "type": "string" }, "step": { "default": "15", "description": "Step between data points in seconds (e.g., '15'). Optional, defaults to 15 seconds", "type": "string" } }, "required": [ "resourceType", "namespace", "resourceName" ], "type": "object" }, "name": "kiali_get_metrics", "title": "Get Metrics for a Resource" }, { "_meta": { "io.kubernetes-mcp-server/rbac": { "bounded": { "requirements": [ { "target": { "resource": { "resource": "namespaces" } }, "verbs": [ "get", "list" ] }, { "resourceName": { "argument": "namespace" }, "target": { "resource": { "resource": "namespaces" } }, "verbs": [ "get" ] } ] }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": false, "idempotentHint": true, "openWorldHint": true, "readOnlyHint": true, "title": "Get Pod Performance" }, "description": "Returns a human-readable text summary with current Pod CPU/memory usage (from Prometheus) compared to Kubernetes requests/limits (from the Pod spec). Useful to answer questions like 'Is this workload using too much memory?'", "inputSchema": { "properties": { "meshCluster": { "description": "Optional Istio mesh cluster name from kiali_list_mesh_clusters (e.g. west). When omitted, Kiali defaults to its home cluster.", "type": "string" }, "namespace": { "description": "Kubernetes namespace of the Pod.", "type": "string" }, "podName": { "description": "Kubernetes Pod name. If workloadName is provided, the tool will attempt to resolve a Pod from that workload first.", "type": "string" }, "queryTime": { "description": "Optional end timestamp (RFC3339) for the query. Defaults to now.", "type": "string" }, "timeRange": { "default": "10m", "description": "Time window used to compute CPU rate (Prometheus duration like '5m', '10m', '1h', '1d'). Defaults to '10m'.", "type": "string" }, "workloadName": { "description": "Kubernetes Workload name (e.g. Deployment/StatefulSet/etc). Tool will look up the workload and pick one of its Pods. If not found, it will fall back to treating this value as a podName.", "type": "string" } }, "required": [ "namespace" ], "type": "object" }, "name": "kiali_get_pod_performance", "title": "Get Pod Performance" }, { "_meta": { "io.kubernetes-mcp-server/rbac": { "bounded": { "requirements": [ { "target": { "resource": { "resource": "namespaces" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "resource": "services" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "resource": "pods" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "resource": "replicationcontrollers" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "apps", "resource": "deployments" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "apps", "resource": "statefulsets" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "apps", "resource": "daemonsets" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "apps", "resource": "replicasets" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "batch", "resource": "jobs" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "batch", "resource": "cronjobs" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "argoproj.io", "resource": "applications" } }, "verbs": [ "get", "list" ] } ] }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": false, "idempotentHint": true, "openWorldHint": true, "readOnlyHint": true, "title": "List or Resource Details" }, "description": "Fetches a list of resources OR retrieves detailed data for a specific resource. If 'resourceName' is omitted, it returns a list. If 'resourceName' is provided, it returns details for that specific resource.", "inputSchema": { "dependentRequired": { "resourceName": [ "namespaces" ] }, "properties": { "meshCluster": { "description": "Optional Istio mesh cluster name from kiali_list_mesh_clusters (e.g. west). When omitted, Kiali defaults to its home cluster.", "type": "string" }, "namespaces": { "description": "Comma-separated list of namespaces to query (e.g., 'bookinfo' or 'bookinfo,default'). If not provided, it will query across all accessible namespaces.", "type": "string" }, "resourceName": { "description": "Optional. The specific name of the resource. If left empty, the tool returns a list of all resources of the specified type. If provided, the tool returns deep details for this specific resource.", "type": "string" }, "resourceType": { "description": "The type of resource to query. Use 'app' for Kiali applications (grouped by the Kubernetes 'app' label). Use 'argoapp' for ArgoCD Application CRDs (requires ArgoCD installed and the Kiali service account must have read permissions on applications.argoproj.io).", "enum": [ "app", "argoapp", "namespace", "service", "workload" ], "type": "string" } }, "required": [ "resourceType" ], "type": "object" }, "name": "kiali_get_resource_details", "title": "List or Resource Details" }, { "_meta": { "io.kubernetes-mcp-server/rbac": { "bounded": { "requirements": [ { "target": { "resource": { "resource": "namespaces" } }, "verbs": [ "get", "list" ] } ] }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": false, "idempotentHint": true, "openWorldHint": true, "readOnlyHint": true, "title": "Get Trace Details" }, "description": "Fetches a single distributed trace by trace_id and returns its call hierarchy (service tree with duration, status, and nested calls). Use this after list_traces to drill into a specific trace.", "inputSchema": { "properties": { "traceId": { "description": "Trace ID to fetch and summarize. If provided, namespace/service_name are ignored.", "type": "string" } }, "required": [ "traceId" ], "type": "object" }, "name": "kiali_get_trace_details", "title": "Get Trace Details" }, { "_meta": { "io.kubernetes-mcp-server/rbac": { "unbounded": { "reason": "Mesh cluster listing is resolved by Kiali from its multi-cluster configuration; the Kubernetes API checks Kiali performs cannot be derived from this capability's arguments" }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": false, "idempotentHint": true, "openWorldHint": true, "readOnlyHint": true, "title": "List Mesh Clusters" }, "description": "Returns the list of Istio mesh clusters that Kiali can access. Each entry includes its name and whether it is the home cluster (where Kiali is deployed). Call this tool before using meshCluster on other Kiali tools when the target cluster is unknown.", "inputSchema": { "properties": {}, "type": "object" }, "name": "kiali_list_mesh_clusters", "title": "List Mesh Clusters" }, { "_meta": { "io.kubernetes-mcp-server/rbac": { "bounded": { "requirements": [ { "target": { "resource": { "resource": "namespaces" } }, "verbs": [ "get", "list" ] }, { "resourceName": { "argument": "namespace" }, "target": { "resource": { "resource": "namespaces" } }, "verbs": [ "get" ] } ] }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": false, "idempotentHint": true, "openWorldHint": true, "readOnlyHint": true, "title": "List Traces by Service Name" }, "description": "Lists distributed traces for a service in a namespace. Returns a summary (namespace, service, total_found, avg_duration_ms) and a list of traces with id, duration_ms, spans_count, root_op, slowest_service, has_errors. Use get_trace_details with a trace id to get full hierarchy.", "inputSchema": { "properties": { "errorOnly": { "default": false, "description": "If true, only consider traces that contain errors. Default false.", "type": "boolean" }, "limit": { "default": 10, "description": "Maximum number of traces to return. Default 10.", "type": "integer" }, "lookbackSeconds": { "default": 600, "description": "How far back to search. Default 600 (10m).", "type": "integer" }, "meshCluster": { "description": "Optional Istio mesh cluster name from kiali_list_mesh_clusters (e.g. west). When omitted, Kiali defaults to its home cluster.", "type": "string" }, "namespace": { "description": "Kubernetes namespace of the service.", "type": "string" }, "serviceName": { "description": "Service name to search traces for (required). Returns multiple traces up to limit.", "type": "string" } }, "required": [ "namespace", "serviceName" ], "type": "object" }, "name": "kiali_list_traces", "title": "List Traces by Service Name" }, { "_meta": { "io.kubernetes-mcp-server/rbac": { "bounded": { "requirements": [ { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "virtualservices" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "destinationrules" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "gateways" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "serviceentries" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "sidecars" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "workloadentries" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "workloadgroups" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "envoyfilters" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "security.istio.io", "resource": "authorizationpolicies" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "security.istio.io", "resource": "peerauthentications" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "security.istio.io", "resource": "requestauthentications" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "gateways" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "httproutes" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "grpcroutes" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "referencegrants" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "tcproutes" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "tlsroutes" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "gatewayclasses" } }, "verbs": [ "create", "patch", "delete" ] }, { "namespace": { "argument": "namespace" }, "resourceName": { "argument": "object" }, "target": { "resource": { "apiGroup": "inference.networking.k8s.io", "resource": "inferencepools" } }, "verbs": [ "create", "patch", "delete" ] } ] }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": true, "idempotentHint": true, "openWorldHint": true, "readOnlyHint": false, "title": "Manage Istio, Gateway API, and Inference API Config: Create, Patch, Delete" }, "description": "Create, patch, or delete Istio, Gateway API, and Inference API config. Supports Istio resources (networking.istio.io, security.istio.io), Gateway API resources (gateway.networking.k8s.io), and Inference API resources (inference.networking.k8s.io) when installed on the cluster. For list and get (read-only) use manage_istio_config_read.", "inputSchema": { "properties": { "action": { "description": "Action to perform (write)", "enum": [ "create", "patch", "delete" ], "type": "string" }, "data": { "description": "JSON or YAML data for the resource. Required for create and patch actions. For create, you can provide partial content (e.g. only spec) and it will be merged onto a valid template with defaults. Arrays (like servers, http, etc.) are REPLACED entirely, so include ALL elements you want.", "type": "string" }, "group": { "description": "API group of the Istio object. Use 'gateway.networking.k8s.io' for Gateway API resources. Use 'inference.networking.k8s.io' for Inference API resources.", "enum": [ "networking.istio.io", "security.istio.io", "gateway.networking.k8s.io", "inference.networking.k8s.io" ], "type": "string" }, "kind": { "description": "Kind of the Istio object (e.g., 'VirtualService', 'DestinationRule').", "enum": [ "VirtualService", "DestinationRule", "Gateway", "ServiceEntry", "Sidecar", "WorkloadEntry", "WorkloadGroup", "EnvoyFilter", "AuthorizationPolicy", "PeerAuthentication", "RequestAuthentication", "HTTPRoute", "GRPCRoute", "ReferenceGrant", "TCPRoute", "TLSRoute", "InferencePool" ], "type": "string" }, "meshCluster": { "description": "Optional Istio mesh cluster name from kiali_list_mesh_clusters (e.g. west). When omitted, Kiali defaults to its home cluster.", "type": "string" }, "namespace": { "description": "Namespace containing the Istio object.", "type": "string" }, "object": { "description": "Name of the Istio object.", "type": "string" }, "version": { "description": "API version. Use 'v1' for all resource types.", "type": "string" } }, "required": [ "action", "namespace", "group", "version", "kind", "object" ], "type": "object" }, "name": "kiali_manage_istio_config", "title": "Manage Istio, Gateway API, and Inference API Config: Create, Patch, Delete" }, { "_meta": { "io.kubernetes-mcp-server/rbac": { "bounded": { "requirements": [ { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "virtualservices" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "destinationrules" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "gateways" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "serviceentries" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "sidecars" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "workloadentries" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "workloadgroups" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "networking.istio.io", "resource": "envoyfilters" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "security.istio.io", "resource": "authorizationpolicies" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "security.istio.io", "resource": "peerauthentications" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "security.istio.io", "resource": "requestauthentications" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "gateways" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "httproutes" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "grpcroutes" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "referencegrants" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "tcproutes" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "tlsroutes" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "gateway.networking.k8s.io", "resource": "gatewayclasses" } }, "verbs": [ "get", "list" ] }, { "namespace": { "all": true }, "target": { "resource": { "apiGroup": "inference.networking.k8s.io", "resource": "inferencepools" } }, "verbs": [ "get", "list" ] } ] }, "version": "v1alpha1" } }, "annotations": { "destructiveHint": false, "idempotentHint": true, "openWorldHint": true, "readOnlyHint": true, "title": "Manage Istio, Gateway API, and Inference API Config: List or Get" }, "description": "Read Istio, Gateway API, and Inference API config. 'list' groups by namespace→'group/version/kind'→{valid:[...],invalid:[...]} where valid/invalid arrays contain resource names; omit group/kind to retrieve ALL config types in a single call. Supports Istio (networking.istio.io, security.istio.io), Gateway API (gateway.networking.k8s.io), and Inference API (inference.networking.k8s.io) when installed. 'get' returns full YAML. For writes use manage_istio_config.", "inputSchema": { "dependentRequired": { "object": [ "group", "version", "kind", "namespace" ] }, "properties": { "action": { "description": "Action to perform (read-only)", "enum": [ "list", "get" ], "type": "string" }, "group": { "description": "API group of the Istio object. Required ONLY for 'get' action. For 'list', OMIT group and kind to retrieve ALL config types in a single call. Use 'gateway.networking.k8s.io' for Gateway API resources. Use 'inference.networking.k8s.io' for Inference API resources.", "enum": [ "networking.istio.io", "security.istio.io", "gateway.networking.k8s.io", "inference.networking.k8s.io" ], "type": "string" }, "kind": { "description": "Kind of the Istio object. Required ONLY for 'get' action. For 'list', OMIT to return all kinds at once — do NOT call separately for each kind.", "enum": [ "VirtualService", "DestinationRule", "Gateway", "ServiceEntry", "Sidecar", "WorkloadEntry", "WorkloadGroup", "EnvoyFilter", "AuthorizationPolicy", "PeerAuthentication", "RequestAuthentication", "HTTPRoute", "GRPCRoute", "ReferenceGrant", "TCPRoute", "TLSRoute", "InferencePool" ], "type": "string" }, "meshCluster": { "description": "Optional Istio mesh cluster name from kiali_list_mesh_clusters (e.g. west). When omitted, Kiali defaults to its home cluster.", "type": "string" }, "namespace": { "description": "Namespace containing the Istio object. For 'list', if not provided, returns objects across all namespaces. For 'get', required.", "type": "string" }, "object": { "description": "Name of the Istio object. Required for 'get' action.", "type": "string" }, "serviceName": { "description": "Filter Istio configurations (VirtualServices, DestinationRules, and their referenced Gateways) that affect a specific service. Only applicable for 'list' action", "type": "string" }, "version": { "description": "API version. Use 'v1' for all resource types. Required for 'get' action.", "type": "string" } }, "required": [ "action" ], "type": "object" }, "name": "kiali_manage_istio_config_read", "title": "Manage Istio, Gateway API, and Inference API Config: List or Get" } ]