@@ -93,6 +93,22 @@ tools and merge.
9393Conventions: directory ` toolsets/<name> ` (kebab-case) → module
9494` <name_snake_case>.tools ` → service ` mcp-<name> ` .
9595
96+ ## Removing a toolset
97+
98+ ``` sh
99+ ./scripts/remove-toolset my-toolset
100+ ```
101+
102+ Merge to ` main ` . Removal is GitOps like everything else: the deploy
103+ workflow reconciles the cluster against ` toolsets/ ` , uninstalling any
104+ ` mcp-<name> ` release whose directory no longer exists — Deployment, Service
105+ and Ingress with it; the index drops the entry automatically. Mind that
106+ this means merging a deleted directory tears down the live service.
107+
108+ Not removed automatically: out-of-band Secrets the toolset listed in its
109+ ` toolset.yaml ` (` kubectl -n mcp-toolsets delete secret <name> ` ) and its
110+ images in GHCR (delete the package from the repo settings if you care).
111+
96112## Deployment
97113
98114- ** ci.yml** (PRs + main): lint, tests, ` helm lint ` , and a no-push Docker
@@ -102,6 +118,8 @@ Conventions: directory `toolsets/<name>` (kebab-case) → module
102118 root ` pyproject.toml ` ) rebuild * all* toolsets — then per toolset: build and
103119 push ` ghcr.io/<owner>/<repo>/mcp-<name>:<sha> ` and
104120 ` helm upgrade --install mcp-<name> charts/mcp-toolset -n mcp-toolsets ` .
121+ A reconcile job also uninstalls releases whose ` toolsets/<name> ` directory
122+ is gone — see [ Removing a toolset] ( #removing-a-toolset ) .
105123- ** Required secret** : ` KUBE_CONFIG ` — a kubeconfig with rights to manage the
106124 ` mcp-toolsets ` namespace. Images push to GHCR with the built-in
107125 ` GITHUB_TOKEN ` .
0 commit comments