You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+20-20Lines changed: 20 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -213,7 +213,7 @@ The following sets of tools are available (toolsets marked with ✓ in the Defau
213
213
| config | View and manage the current local Kubernetes configuration (kubeconfig) | ✓ |
214
214
| core | Most common tools for Kubernetes management (Pods, Generic Resources, Events, etc.) | ✓ |
215
215
| helm | Tools for managing Helm charts and releases | ✓ |
216
-
| kiali | Most common tools for managing Kiali, check the [Kiali integration documentation](https://github.com/containers/kubernetes-mcp-server/blob/main/docs/KIALI_INTEGRATION.md) for more details. ||
216
+
| kiali | Most common tools for managing Kiali, check the [Kiali documentation](https://github.com/containers/kubernetes-mcp-server/blob/main/docs/KIALI.md) for more details. ||
217
217
218
218
<!-- AVAILABLE-TOOLSETS-END -->
219
219
@@ -348,57 +348,57 @@ In case multi-cluster support is enabled (default) and you have access to multip
348
348
349
349
<summary>kiali</summary>
350
350
351
-
-**graph** - Check the status of my mesh by querying Kiali graph
351
+
-**kiali_graph** - Check the status of my mesh by querying Kiali graph
352
352
-`namespace` (`string`) - Optional single namespace to include in the graph (alternative to namespaces)
353
353
-`namespaces` (`string`) - Optional comma-separated list of namespaces to include in the graph
354
354
355
-
-**mesh_status** - Get the status of mesh components including Istio, Kiali, Grafana, Prometheus and their interactions, versions, and health status
355
+
-**kiali_mesh_status** - Get the status of mesh components including Istio, Kiali, Grafana, Prometheus and their interactions, versions, and health status
356
356
357
-
-**istio_config** - Get all Istio configuration objects in the mesh including their full YAML resources and details
357
+
-**kiali_istio_config** - Get all Istio configuration objects in the mesh including their full YAML resources and details
358
358
359
-
-**istio_object_details** - Get detailed information about a specific Istio object including validation and help information
359
+
-**kiali_istio_object_details** - Get detailed information about a specific Istio object including validation and help information
360
360
-`group` (`string`) **(required)** - API group of the Istio object (e.g., 'networking.istio.io', 'gateway.networking.k8s.io')
361
361
-`kind` (`string`) **(required)** - Kind of the Istio object (e.g., 'DestinationRule', 'VirtualService', 'HTTPRoute', 'Gateway')
362
362
-`name` (`string`) **(required)** - Name of the Istio object
363
363
-`namespace` (`string`) **(required)** - Namespace containing the Istio object
364
364
-`version` (`string`) **(required)** - API version of the Istio object (e.g., 'v1', 'v1beta1')
365
365
366
-
-**istio_object_patch** - Modify an existing Istio object using PATCH method. The JSON patch data will be applied to the existing object.
366
+
-**kiali_istio_object_patch** - Modify an existing Istio object using PATCH method. The JSON patch data will be applied to the existing object.
367
367
-`group` (`string`) **(required)** - API group of the Istio object (e.g., 'networking.istio.io', 'gateway.networking.k8s.io')
368
368
-`json_patch` (`string`) **(required)** - JSON patch data to apply to the object
369
369
-`kind` (`string`) **(required)** - Kind of the Istio object (e.g., 'DestinationRule', 'VirtualService', 'HTTPRoute', 'Gateway')
370
370
-`name` (`string`) **(required)** - Name of the Istio object
371
371
-`namespace` (`string`) **(required)** - Namespace containing the Istio object
372
372
-`version` (`string`) **(required)** - API version of the Istio object (e.g., 'v1', 'v1beta1')
373
373
374
-
-**istio_object_create** - Create a new Istio object using POST method. The JSON data will be used to create the new object.
374
+
-**kiali_istio_object_create** - Create a new Istio object using POST method. The JSON data will be used to create the new object.
375
375
-`group` (`string`) **(required)** - API group of the Istio object (e.g., 'networking.istio.io', 'gateway.networking.k8s.io')
376
376
-`json_data` (`string`) **(required)** - JSON data for the new object
377
377
-`kind` (`string`) **(required)** - Kind of the Istio object (e.g., 'DestinationRule', 'VirtualService', 'HTTPRoute', 'Gateway')
378
378
-`namespace` (`string`) **(required)** - Namespace where the Istio object will be created
379
379
-`version` (`string`) **(required)** - API version of the Istio object (e.g., 'v1', 'v1beta1')
380
380
381
-
-**istio_object_delete** - Delete an existing Istio object using DELETE method.
381
+
-**kiali_istio_object_delete** - Delete an existing Istio object using DELETE method.
382
382
-`group` (`string`) **(required)** - API group of the Istio object (e.g., 'networking.istio.io', 'gateway.networking.k8s.io')
383
383
-`kind` (`string`) **(required)** - Kind of the Istio object (e.g., 'DestinationRule', 'VirtualService', 'HTTPRoute', 'Gateway')
384
384
-`name` (`string`) **(required)** - Name of the Istio object
385
385
-`namespace` (`string`) **(required)** - Namespace containing the Istio object
386
386
-`version` (`string`) **(required)** - API version of the Istio object (e.g., 'v1', 'v1beta1')
387
387
388
-
-**validations_list** - List all the validations in the current cluster from all namespaces
388
+
-**kiali_validations_list** - List all the validations in the current cluster from all namespaces
389
389
-`namespace` (`string`) - Optional single namespace to retrieve validations from (alternative to namespaces)
390
390
-`namespaces` (`string`) - Optional comma-separated list of namespaces to retrieve validations from
391
391
392
-
-**namespaces** - Get all namespaces in the mesh that the user has access to
392
+
-**kiali_namespaces** - Get all namespaces in the mesh that the user has access to
393
393
394
-
-**services_list** - Get all services in the mesh across specified namespaces with health and Istio resource information
394
+
-**kiali_services_list** - Get all services in the mesh across specified namespaces with health and Istio resource information
395
395
-`namespaces` (`string`) - Comma-separated list of namespaces to get services from (e.g. 'bookinfo' or 'bookinfo,default'). If not provided, will list services from all accessible namespaces
396
396
397
-
-**service_details** - Get detailed information for a specific service in a namespace, including validation, health status, and configuration
397
+
-**kiali_service_details** - Get detailed information for a specific service in a namespace, including validation, health status, and configuration
398
398
-`namespace` (`string`) **(required)** - Namespace containing the service
399
399
-`service` (`string`) **(required)** - Name of the service to get details for
400
400
401
-
-**service_metrics** - Get metrics for a specific service in a namespace. Supports filtering by time range, direction (inbound/outbound), reporter, and other query parameters
401
+
-**kiali_service_metrics** - Get metrics for a specific service in a namespace. Supports filtering by time range, direction (inbound/outbound), reporter, and other query parameters
402
402
-`byLabels` (`string`) - Comma-separated list of labels to group metrics by (e.g., 'source_workload,destination_service'). Optional
403
403
-`direction` (`string`) - Traffic direction: 'inbound' or 'outbound'. Optional, defaults to 'outbound'
404
404
-`duration` (`string`) - Duration of the query period in seconds (e.g., '1800' for 30 minutes). Optional, defaults to 1800 seconds
@@ -410,14 +410,14 @@ In case multi-cluster support is enabled (default) and you have access to multip
410
410
-`service` (`string`) **(required)** - Name of the service to get metrics for
411
411
-`step` (`string`) - Step between data points in seconds (e.g., '15'). Optional, defaults to 15 seconds
412
412
413
-
-**workloads_list** - Get all workloads in the mesh across specified namespaces with health and Istio resource information
413
+
-**kiali_workloads_list** - Get all workloads in the mesh across specified namespaces with health and Istio resource information
414
414
-`namespaces` (`string`) - Comma-separated list of namespaces to get workloads from (e.g. 'bookinfo' or 'bookinfo,default'). If not provided, will list workloads from all accessible namespaces
415
415
416
-
-**workload_details** - Get detailed information for a specific workload in a namespace, including validation, health status, and configuration
416
+
-**kiali_workload_details** - Get detailed information for a specific workload in a namespace, including validation, health status, and configuration
417
417
-`namespace` (`string`) **(required)** - Namespace containing the workload
418
418
-`workload` (`string`) **(required)** - Name of the workload to get details for
419
419
420
-
-**workload_metrics** - Get metrics for a specific workload in a namespace. Supports filtering by time range, direction (inbound/outbound), reporter, and other query parameters
420
+
-**kiali_workload_metrics** - Get metrics for a specific workload in a namespace. Supports filtering by time range, direction (inbound/outbound), reporter, and other query parameters
421
421
-`byLabels` (`string`) - Comma-separated list of labels to group metrics by (e.g., 'source_workload,destination_service'). Optional
422
422
-`direction` (`string`) - Traffic direction: 'inbound' or 'outbound'. Optional, defaults to 'outbound'
423
423
-`duration` (`string`) - Duration of the query period in seconds (e.g., '1800' for 30 minutes). Optional, defaults to 1800 seconds
@@ -429,7 +429,7 @@ In case multi-cluster support is enabled (default) and you have access to multip
429
429
-`step` (`string`) - Step between data points in seconds (e.g., '15'). Optional, defaults to 15 seconds
430
430
-`workload` (`string`) **(required)** - Name of the workload to get metrics for
431
431
432
-
-**health** - Get health status for apps, workloads, and services across specified namespaces in the mesh. Returns health information including error rates and status for the requested resource type
432
+
-**kiali_health** - Get health status for apps, workloads, and services across specified namespaces in the mesh. Returns health information including error rates and status for the requested resource type
433
433
-`namespaces` (`string`) - Comma-separated list of namespaces to get health from (e.g. 'bookinfo' or 'bookinfo,default'). If not provided, returns health for all accessible namespaces
434
434
-`queryTime` (`string`) - Unix timestamp (in seconds) for the prometheus query. If not provided, uses current time. Optional
@@ -442,7 +442,7 @@ In case multi-cluster support is enabled (default) and you have access to multip
442
442
-`tail` (`integer`) - Number of lines to retrieve from the end of logs (default: 100)
443
443
-`workload` (`string`) **(required)** - Name of the workload to get logs for
444
444
445
-
-**app_traces** - Get distributed tracing data for a specific app in a namespace. Returns trace information including spans, duration, and error details for troubleshooting and performance analysis.
445
+
-**kiali_app_traces** - Get distributed tracing data for a specific app in a namespace. Returns trace information including spans, duration, and error details for troubleshooting and performance analysis.
446
446
-`app` (`string`) **(required)** - Name of the app to get traces for
447
447
-`clusterName` (`string`) - Cluster name for multi-cluster environments (optional)
448
448
-`endMicros` (`string`) - End time for traces in microseconds since epoch (optional)
@@ -452,7 +452,7 @@ In case multi-cluster support is enabled (default) and you have access to multip
452
452
-`startMicros` (`string`) - Start time for traces in microseconds since epoch (optional)
453
453
-`tags` (`string`) - JSON string of tags to filter traces (optional)
454
454
455
-
-**service_traces** - Get distributed tracing data for a specific service in a namespace. Returns trace information including spans, duration, and error details for troubleshooting and performance analysis.
455
+
-**kiali_service_traces** - Get distributed tracing data for a specific service in a namespace. Returns trace information including spans, duration, and error details for troubleshooting and performance analysis.
456
456
-`clusterName` (`string`) - Cluster name for multi-cluster environments (optional)
457
457
-`endMicros` (`string`) - End time for traces in microseconds since epoch (optional)
458
458
-`limit` (`integer`) - Maximum number of traces to return (default: 100)
@@ -462,7 +462,7 @@ In case multi-cluster support is enabled (default) and you have access to multip
462
462
-`startMicros` (`string`) - Start time for traces in microseconds since epoch (optional)
463
463
-`tags` (`string`) - JSON string of tags to filter traces (optional)
464
464
465
-
-**workload_traces** - Get distributed tracing data for a specific workload in a namespace. Returns trace information including spans, duration, and error details for troubleshooting and performance analysis.
465
+
-**kiali_workload_traces** - Get distributed tracing data for a specific workload in a namespace. Returns trace information including spans, duration, and error details for troubleshooting and performance analysis.
466
466
-`clusterName` (`string`) - Cluster name for multi-cluster environments (optional)
467
467
-`endMicros` (`string`) - End time for traces in microseconds since epoch (optional)
468
468
-`limit` (`integer`) - Maximum number of traces to return (default: 100)
# When url is https and insecure is false, certificate_authority is required.
21
+
```
22
+
23
+
When the `kiali` toolset is enabled, a Kiali toolset configuration is required via `[toolset_configs.kiali]`. If missing or invalid, the server will refuse to start.
24
+
25
+
### How authentication works
26
+
27
+
- The server uses your existing Kubernetes credentials (from kubeconfig or in-cluster) to set a bearer token for Kiali calls.
28
+
- If you pass an HTTP Authorization header to the MCP HTTP endpoint, that is not required for Kiali; Kiali calls use the server's configured token.
29
+
30
+
### Troubleshooting
31
+
32
+
- Missing Kiali configuration when `kiali` toolset is enabled → set `[toolset_configs.kiali].url` in the config TOML.
33
+
- Invalid URL → ensure `[toolset_configs.kiali].url` is a valid `http(s)://host` URL.
34
+
- TLS certificate validation:
35
+
- If `[toolset_configs.kiali].url` uses HTTPS and `[toolset_configs.kiali].insecure` is false, you must set `[toolset_configs.kiali].certificate_authority` with the PEM-encoded certificate(s) used by the Kiali server. This field expects inline PEM content, not a file path. You may concatenate multiple PEM blocks to include an intermediate chain.
36
+
- For non-production environments you can set `[toolset_configs.kiali].insecure = true` to skip certificate verification.
0 commit comments