From 2dbb958e0cb8feeb0942fb094036d153688943ad Mon Sep 17 00:00:00 2001 From: Marc Nuri Date: Mon, 17 Nov 2025 11:59:13 +0100 Subject: [PATCH 1/2] chore(readme): clarify default enabled toolsets in documentation Signed-off-by: Marc Nuri --- README.md | 16 +++++++--------- pkg/api/toolsets.go | 2 ++ pkg/toolsets/kiali/toolset.go | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d9d4c01e..cd1f28a4 100644 --- a/README.md +++ b/README.md @@ -204,21 +204,19 @@ Enabling only the toolsets you need can help reduce the context size and improve ### Available Toolsets -The following sets of tools are available (all on by default). +The following sets of tools are available (config, core, and helm are enabled by default): -| Toolset | Description | -|---------|-------------------------------------------------------------------------------------| -| config | View and manage the current local Kubernetes configuration (kubeconfig) | -| core | Most common tools for Kubernetes management (Pods, Generic Resources, Events, etc.) | -| helm | Tools for managing Helm charts and releases | -| kiali | Most common tools for managing Kiali | +| Toolset | Description | +|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| config | View and manage the current local Kubernetes configuration (kubeconfig) | +| core | Most common tools for Kubernetes management (Pods, Generic Resources, Events, etc.) | +| helm | Tools for managing Helm charts and releases | +| 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. | -See more info about Kiali integration in [docs/KIALI_INTEGRATION.md](docs/KIALI_INTEGRATION.md). - ### Tools In case multi-cluster support is enabled (default) and you have access to multiple clusters, all applicable tools will include an additional `context` argument to specify the Kubernetes context (cluster) to use for that operation. diff --git a/pkg/api/toolsets.go b/pkg/api/toolsets.go index 9a990484..c5960e3f 100644 --- a/pkg/api/toolsets.go +++ b/pkg/api/toolsets.go @@ -40,6 +40,8 @@ type Toolset interface { // Used to identify the toolset in configuration, logs, and command-line arguments. // Examples: "core", "metrics", "helm" GetName() string + // GetDescription returns a human-readable description of the toolset. + // Will be used to generate documentation and help text. GetDescription() string GetTools(o internalk8s.Openshift) []ServerTool } diff --git a/pkg/toolsets/kiali/toolset.go b/pkg/toolsets/kiali/toolset.go index 0cd5508b..c89afcd4 100644 --- a/pkg/toolsets/kiali/toolset.go +++ b/pkg/toolsets/kiali/toolset.go @@ -17,7 +17,7 @@ func (t *Toolset) GetName() string { } func (t *Toolset) GetDescription() string { - return "Most common tools for managing Kiali" + return "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." } func (t *Toolset) GetTools(_ internalk8s.Openshift) []api.ServerTool { From c995825f1bf64809d582660062dee4cb18282050 Mon Sep 17 00:00:00 2001 From: Marc Nuri Date: Mon, 17 Nov 2025 15:34:20 +0100 Subject: [PATCH 2/2] chore(readme): clarify default enabled toolsets in documentation Signed-off-by: Marc Nuri --- README.md | 14 +++++++------- internal/tools/update-readme/main.go | 22 ++++++++++++++++++---- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index cd1f28a4..4758c0d9 100644 --- a/README.md +++ b/README.md @@ -204,16 +204,16 @@ Enabling only the toolsets you need can help reduce the context size and improve ### Available Toolsets -The following sets of tools are available (config, core, and helm are enabled by default): +The following sets of tools are available (toolsets marked with ✓ in the Default column are enabled by default): -| Toolset | Description | -|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| config | View and manage the current local Kubernetes configuration (kubeconfig) | -| core | Most common tools for Kubernetes management (Pods, Generic Resources, Events, etc.) | -| helm | Tools for managing Helm charts and releases | -| 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. | +| Toolset | Description | Default | +|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| +| config | View and manage the current local Kubernetes configuration (kubeconfig) | ✓ | +| core | Most common tools for Kubernetes management (Pods, Generic Resources, Events, etc.) | ✓ | +| helm | Tools for managing Helm charts and releases | ✓ | +| 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. | | diff --git a/internal/tools/update-readme/main.go b/internal/tools/update-readme/main.go index 1a9ba276..79cf7325 100644 --- a/internal/tools/update-readme/main.go +++ b/internal/tools/update-readme/main.go @@ -9,6 +9,7 @@ import ( "slices" "strings" + "github.com/containers/kubernetes-mcp-server/pkg/config" internalk8s "github.com/containers/kubernetes-mcp-server/pkg/kubernetes" "github.com/containers/kubernetes-mcp-server/pkg/toolsets" @@ -20,7 +21,7 @@ import ( type OpenShift struct{} -func (o *OpenShift) IsOpenShift(ctx context.Context) bool { +func (o *OpenShift) IsOpenShift(_ context.Context) bool { return true } @@ -40,7 +41,16 @@ func main() { } // Available Toolsets toolsetsList := toolsets.Toolsets() + + // Get default enabled toolsets + defaultConfig := config.Default() + defaultToolsetsMap := make(map[string]bool) + for _, toolsetName := range defaultConfig.Toolsets { + defaultToolsetsMap[toolsetName] = true + } + maxNameLen, maxDescLen := len("Toolset"), len("Description") + defaultHeaderLen := len("Default") for _, toolset := range toolsetsList { nameLen := len(toolset.GetName()) descLen := len(toolset.GetDescription()) @@ -52,10 +62,14 @@ func main() { } } availableToolsets := strings.Builder{} - availableToolsets.WriteString(fmt.Sprintf("| %-*s | %-*s |\n", maxNameLen, "Toolset", maxDescLen, "Description")) - availableToolsets.WriteString(fmt.Sprintf("|-%s-|-%s-|\n", strings.Repeat("-", maxNameLen), strings.Repeat("-", maxDescLen))) + availableToolsets.WriteString(fmt.Sprintf("| %-*s | %-*s | %-*s |\n", maxNameLen, "Toolset", maxDescLen, "Description", defaultHeaderLen, "Default")) + availableToolsets.WriteString(fmt.Sprintf("|-%s-|-%s-|-%s-|\n", strings.Repeat("-", maxNameLen), strings.Repeat("-", maxDescLen), strings.Repeat("-", defaultHeaderLen))) for _, toolset := range toolsetsList { - availableToolsets.WriteString(fmt.Sprintf("| %-*s | %-*s |\n", maxNameLen, toolset.GetName(), maxDescLen, toolset.GetDescription())) + defaultIndicator := "" + if defaultToolsetsMap[toolset.GetName()] { + defaultIndicator = "✓" + } + availableToolsets.WriteString(fmt.Sprintf("| %-*s | %-*s | %-*s |\n", maxNameLen, toolset.GetName(), maxDescLen, toolset.GetDescription(), defaultHeaderLen, defaultIndicator)) } updated := replaceBetweenMarkers( string(readme),