Repository navigation
feat(skills): make description optional during skills gen - #3584
Conversation
Introduce internal/group as the source of truth for a named collection of tools and prompts. Group.Initialize reuses the toolset/promptset Initialize logic; ToToolset/ToPromptset project the legacy views keyed by the group name. No existing behavior changes yet.
Embed the initialized Toolset and Promptset in Group instead of flattening their fields, so ToToolset/ToPromptset return the views with their lookup sets intact rather than rebuilding them per call.
Replace the toolset/promptset maps with an authoritative groups map and derive the toolset/promptset views from it via ToToolset/ToPromptset. Legacy kind: toolsets configs convert to tools-only groups at init, and the default nameless group holds all tools and prompts. No YAML surface change; kind: groups parsing is deferred to a follow-up.
Add parsing for `kind: group` documents (flat and nested `groups:` blocks) in UnmarshalResourceConfig, returning parsed GroupConfigs. Validate duplicate default/named groups and reject a default group that declares tools or prompts. Wire GroupConfigs through config merge, reload, and initializeGroups so kind: group definitions override same-named toolsets.
The MCP route is /{toolsetName}, so promptsetName was always empty and
GetPromptset("") returned all prompts regardless of the connected group.
Resolve the group by its URL name and use its derived toolset/promptset
views so prompts/list scopes per group.
Expose group introspection across all five protocol versions. groups/list returns named groups with descriptions, omitting the default nameless group. groups/get returns a named group's tools and prompts.
The vdraft protocol requires every MCP method to validate request headers and metadata. Wire GROUPS_LIST/GROUPS_GET handlers to accept the header, call validateHeader/validateMetadata, and carry RequestParams on their request types.
Move groups/list and groups/get result shaping into GenerateListGroupsResult and GenerateGetGroupResult in manifests.go so the handlers stay thin, matching the tools/prompts pattern. Embed PaginatedRequest in ListGroupsRequest for request-type parity across all five protocol versions.
Group descriptions now take precedence when generating a skill per group; --description becomes optional and acts as the fallback.
There was a problem hiding this comment.
Code Review
This pull request refactors the skills command to make the --description flag optional, utilizing it as a fallback when a group does not define its own description. It introduces a skillContent struct to manage tools and descriptions together, refactors the tool collection logic into buildSkillContents, and adds unit tests to verify description precedence. The review feedback suggests enhancing the unit tests for toolset mode to explicitly verify the precedence and fallback behavior of descriptions, providing a complete test implementation.
Decouple Group from the legacy tools.Toolset/prompts.Promptset types per review feedback. Group now keeps its own O(1) tool/prompt membership sets and exposes ContainsTool/ContainsPrompt directly, instead of deriving and storing full toolset/promptset views. Per-tool and per-prompt manifests are generated on demand by callers from the resolved tools/prompts maps, so the group no longer needs serverVersion at Initialize.
…ring # Conflicts: # internal/group/group.go
Pass the resolved group.Group through ProcessMethod and the version handlers instead of materialized toolset/promptset views. List handlers now read ToolNames/PromptNames directly from the group, which scopes prompts to a single group and fixes the always-empty promptset lookup.
Remove duplicated groups block in testutils.SetUpResources and restore primitives_test/server_test to main after the groups API change.
|
🧨 Preview deployments removed. Cloudflare Pages environments for |
) ## Description Once description becomes optional, skills generation can take in description directly from `Groups`. Note: group description takes precedence when present, `--description` is used otherwise, and both may be empty. Based on [#3605](#3605) --------- Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> d0a8f14
) ## Description Adds a `--group` flag to `skills-generate` that selects a single named group and generates one skill (named exactly `--name`) from that group's tools. The description follows the same precedence as PR #3584: the group's own `description` is used when present, `--description` is the fallback. `--group` is mutually exclusive with `--toolset`. This complements the existing behaviors: - no flag + multiple groups → one skill per group (`--name- `) - `--toolset X` → single skill from toolset X (legacy; uses `--description`) - `--group X` → single skill from group X (uses group description, falls back to `--description`) Based on #3584 --------- Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com>
…roup (#3585) ## Description Adds a `--group` flag to `skills-generate` that selects a single named group and generates one skill (named exactly `--name`) from that group's tools. The description follows the same precedence as PR #3584: the group's own `description` is used when present, `--description` is the fallback. `--group` is mutually exclusive with `--toolset`. This complements the existing behaviors: - no flag + multiple groups → one skill per group (`--name- `) - `--toolset X` → single skill from toolset X (legacy; uses `--description`) - `--group X` → single skill from group X (uses group description, falls back to `--description`) Based on #3584 --------- Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> c1abd4f
…roup (googleapis#3585) ## Description Adds a `--group` flag to `skills-generate` that selects a single named group and generates one skill (named exactly `--name`) from that group's tools. The description follows the same precedence as PR googleapis#3584: the group's own `description` is used when present, `--description` is the fallback. `--group` is mutually exclusive with `--toolset`. This complements the existing behaviors: - no flag + multiple groups → one skill per group (`--name- `) - `--toolset X` → single skill from toolset X (legacy; uses `--description`) - `--group X` → single skill from group X (uses group description, falls back to `--description`) Based on googleapis#3584 --------- Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> c1abd4f
…roup (googleapis#3585) ## Description Adds a `--group` flag to `skills-generate` that selects a single named group and generates one skill (named exactly `--name`) from that group's tools. The description follows the same precedence as PR googleapis#3584: the group's own `description` is used when present, `--description` is the fallback. `--group` is mutually exclusive with `--toolset`. This complements the existing behaviors: - no flag + multiple groups → one skill per group (`--name- `) - `--toolset X` → single skill from toolset X (legacy; uses `--description`) - `--group X` → single skill from group X (uses group description, falls back to `--description`) Based on googleapis#3584 --------- Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> c1abd4f
…roup (googleapis#3585) ## Description Adds a `--group` flag to `skills-generate` that selects a single named group and generates one skill (named exactly `--name`) from that group's tools. The description follows the same precedence as PR googleapis#3584: the group's own `description` is used when present, `--description` is the fallback. `--group` is mutually exclusive with `--toolset`. This complements the existing behaviors: - no flag + multiple groups → one skill per group (`--name- `) - `--toolset X` → single skill from toolset X (legacy; uses `--description`) - `--group X` → single skill from group X (uses group description, falls back to `--description`) Based on googleapis#3584 --------- Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> c1abd4f
🤖 I have created a release *beep* *boop* --- ## [1.8.0](v1.7.0...v1.8.0) (2026-07-28) ### Features * Add `groups` support ([#3605](#3605)) ([e75ec3b](e75ec3b)) * **prebuilt:** Migrate skills-repo toolsets to `kind: group` with descriptions ([#3595](#3595)) ([b895b36](b895b36)) * **server:** Add `/healthz` endpoint for container health checks ([#3060](#3060)) ([d5aefbc](d5aefbc)) * **skills:** Add `--group` flag to generate a skill from one group ([#3585](#3585)) ([c1abd4f](c1abd4f)) * **skills:** Default `--name` to `--group`, `--toolset`, or single `--prebuilt` name ([#3586](#3586)) ([2b33b08](2b33b08)) * **skills:** Make description optional during skills gen ([#3584](#3584)) ([d0a8f14](d0a8f14)) * **tool/looker:** Add `get_field_value_suggestions` tool ([#3696](#3696)) ([3debe81](3debe81)) * **tools/dataplex-update-data-product-aspects:** Add dataplex-update-data-product-aspects tool ([#3607](#3607)) ([f940937](f940937)) * Update draft specs to 2026-07-28 ([#3699](#3699)) ([cf128ff](cf128ff)) ### Bug Fixes * Re-add name validation to tools name ([#3654](#3654)) ([944f6ce](944f6ce)) * Re-add tool validation during startup ([#3705](#3705)) ([25ce953](25ce953)) * **server:** Sort default toolset alphabetically for stable ordering ([#3539](#3539)) ([e5da24c](e5da24c)) * **source/cloud-sql-admin:** Validate source instance for backup-run restore ([#3555](#3555)) ([3ebe500](3ebe500)) * **source/dataplex:** Cleanup Dataplex Data Product resources that may have leaked due to previously aborted tests ([#3627](#3627)) ([3fb5a3f](3fb5a3f)) * **source/http:** Block CGNAT 100.64.0.0/10 in default SSRF guard ([#3625](#3625)) ([a0f36f4](a0f36f4)) * **tools/looker:** Enhance looker-run-dashboard to handle result maker structures and merge queries ([#3698](#3698)) ([7666bc0](7666bc0)) * **tools/looker:** Log request/response traces at debug, not error ([#3552](#3552)) ([c3ad445](c3ad445)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com>
🤖 I have created a release *beep* *boop* --- ## [1.8.0](v1.7.0...v1.8.0) (2026-07-28) ### Features * Add `groups` support ([#3605](#3605)) ([e75ec3b](e75ec3b)) * **prebuilt:** Migrate skills-repo toolsets to `kind: group` with descriptions ([#3595](#3595)) ([b895b36](b895b36)) * **server:** Add `/healthz` endpoint for container health checks ([#3060](#3060)) ([d5aefbc](d5aefbc)) * **skills:** Add `--group` flag to generate a skill from one group ([#3585](#3585)) ([c1abd4f](c1abd4f)) * **skills:** Default `--name` to `--group`, `--toolset`, or single `--prebuilt` name ([#3586](#3586)) ([2b33b08](2b33b08)) * **skills:** Make description optional during skills gen ([#3584](#3584)) ([d0a8f14](d0a8f14)) * **tool/looker:** Add `get_field_value_suggestions` tool ([#3696](#3696)) ([3debe81](3debe81)) * **tools/dataplex-update-data-product-aspects:** Add dataplex-update-data-product-aspects tool ([#3607](#3607)) ([f940937](f940937)) * Update draft specs to 2026-07-28 ([#3699](#3699)) ([cf128ff](cf128ff)) ### Bug Fixes * Re-add name validation to tools name ([#3654](#3654)) ([944f6ce](944f6ce)) * Re-add tool validation during startup ([#3705](#3705)) ([25ce953](25ce953)) * **server:** Sort default toolset alphabetically for stable ordering ([#3539](#3539)) ([e5da24c](e5da24c)) * **source/cloud-sql-admin:** Validate source instance for backup-run restore ([#3555](#3555)) ([3ebe500](3ebe500)) * **source/dataplex:** Cleanup Dataplex Data Product resources that may have leaked due to previously aborted tests ([#3627](#3627)) ([3fb5a3f](3fb5a3f)) * **source/http:** Block CGNAT 100.64.0.0/10 in default SSRF guard ([#3625](#3625)) ([a0f36f4](a0f36f4)) * **tools/looker:** Enhance looker-run-dashboard to handle result maker structures and merge queries ([#3698](#3698)) ([7666bc0](7666bc0)) * **tools/looker:** Log request/response traces at debug, not error ([#3552](#3552)) ([c3ad445](c3ad445)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 44d1a05
🤖 I have created a release *beep* *boop* --- ## [1.8.0](googleapis/mcp-toolbox@v1.7.0...v1.8.0) (2026-07-28) ### Features * Add `groups` support ([googleapis#3605](googleapis#3605)) ([e75ec3b](googleapis@e75ec3b)) * **prebuilt:** Migrate skills-repo toolsets to `kind: group` with descriptions ([googleapis#3595](googleapis#3595)) ([b895b36](googleapis@b895b36)) * **server:** Add `/healthz` endpoint for container health checks ([googleapis#3060](googleapis#3060)) ([d5aefbc](googleapis@d5aefbc)) * **skills:** Add `--group` flag to generate a skill from one group ([googleapis#3585](googleapis#3585)) ([c1abd4f](googleapis@c1abd4f)) * **skills:** Default `--name` to `--group`, `--toolset`, or single `--prebuilt` name ([googleapis#3586](googleapis#3586)) ([2b33b08](googleapis@2b33b08)) * **skills:** Make description optional during skills gen ([googleapis#3584](googleapis#3584)) ([d0a8f14](googleapis@d0a8f14)) * **tool/looker:** Add `get_field_value_suggestions` tool ([googleapis#3696](googleapis#3696)) ([3debe81](googleapis@3debe81)) * **tools/dataplex-update-data-product-aspects:** Add dataplex-update-data-product-aspects tool ([googleapis#3607](googleapis#3607)) ([f940937](googleapis@f940937)) * Update draft specs to 2026-07-28 ([googleapis#3699](googleapis#3699)) ([cf128ff](googleapis@cf128ff)) ### Bug Fixes * Re-add name validation to tools name ([googleapis#3654](googleapis#3654)) ([944f6ce](googleapis@944f6ce)) * Re-add tool validation during startup ([googleapis#3705](googleapis#3705)) ([25ce953](googleapis@25ce953)) * **server:** Sort default toolset alphabetically for stable ordering ([googleapis#3539](googleapis#3539)) ([e5da24c](googleapis@e5da24c)) * **source/cloud-sql-admin:** Validate source instance for backup-run restore ([googleapis#3555](googleapis#3555)) ([3ebe500](googleapis@3ebe500)) * **source/dataplex:** Cleanup Dataplex Data Product resources that may have leaked due to previously aborted tests ([googleapis#3627](googleapis#3627)) ([3fb5a3f](googleapis@3fb5a3f)) * **source/http:** Block CGNAT 100.64.0.0/10 in default SSRF guard ([googleapis#3625](googleapis#3625)) ([a0f36f4](googleapis@a0f36f4)) * **tools/looker:** Enhance looker-run-dashboard to handle result maker structures and merge queries ([googleapis#3698](googleapis#3698)) ([7666bc0](googleapis@7666bc0)) * **tools/looker:** Log request/response traces at debug, not error ([googleapis#3552](googleapis#3552)) ([c3ad445](googleapis@c3ad445)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 44d1a05
🤖 I have created a release *beep* *boop* --- ## [1.8.0](googleapis/mcp-toolbox@v1.7.0...v1.8.0) (2026-07-28) ### Features * Add `groups` support ([googleapis#3605](googleapis#3605)) ([e75ec3b](googleapis@e75ec3b)) * **prebuilt:** Migrate skills-repo toolsets to `kind: group` with descriptions ([googleapis#3595](googleapis#3595)) ([b895b36](googleapis@b895b36)) * **server:** Add `/healthz` endpoint for container health checks ([googleapis#3060](googleapis#3060)) ([d5aefbc](googleapis@d5aefbc)) * **skills:** Add `--group` flag to generate a skill from one group ([googleapis#3585](googleapis#3585)) ([c1abd4f](googleapis@c1abd4f)) * **skills:** Default `--name` to `--group`, `--toolset`, or single `--prebuilt` name ([googleapis#3586](googleapis#3586)) ([2b33b08](googleapis@2b33b08)) * **skills:** Make description optional during skills gen ([googleapis#3584](googleapis#3584)) ([d0a8f14](googleapis@d0a8f14)) * **tool/looker:** Add `get_field_value_suggestions` tool ([googleapis#3696](googleapis#3696)) ([3debe81](googleapis@3debe81)) * **tools/dataplex-update-data-product-aspects:** Add dataplex-update-data-product-aspects tool ([googleapis#3607](googleapis#3607)) ([f940937](googleapis@f940937)) * Update draft specs to 2026-07-28 ([googleapis#3699](googleapis#3699)) ([cf128ff](googleapis@cf128ff)) ### Bug Fixes * Re-add name validation to tools name ([googleapis#3654](googleapis#3654)) ([944f6ce](googleapis@944f6ce)) * Re-add tool validation during startup ([googleapis#3705](googleapis#3705)) ([25ce953](googleapis@25ce953)) * **server:** Sort default toolset alphabetically for stable ordering ([googleapis#3539](googleapis#3539)) ([e5da24c](googleapis@e5da24c)) * **source/cloud-sql-admin:** Validate source instance for backup-run restore ([googleapis#3555](googleapis#3555)) ([3ebe500](googleapis@3ebe500)) * **source/dataplex:** Cleanup Dataplex Data Product resources that may have leaked due to previously aborted tests ([googleapis#3627](googleapis#3627)) ([3fb5a3f](googleapis@3fb5a3f)) * **source/http:** Block CGNAT 100.64.0.0/10 in default SSRF guard ([googleapis#3625](googleapis#3625)) ([a0f36f4](googleapis@a0f36f4)) * **tools/looker:** Enhance looker-run-dashboard to handle result maker structures and merge queries ([googleapis#3698](googleapis#3698)) ([7666bc0](googleapis@7666bc0)) * **tools/looker:** Log request/response traces at debug, not error ([googleapis#3552](googleapis#3552)) ([c3ad445](googleapis@c3ad445)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 44d1a05
🤖 I have created a release *beep* *boop* --- ## [1.8.0](googleapis/mcp-toolbox@v1.7.0...v1.8.0) (2026-07-28) ### Features * Add `groups` support ([googleapis#3605](googleapis#3605)) ([e75ec3b](googleapis@e75ec3b)) * **prebuilt:** Migrate skills-repo toolsets to `kind: group` with descriptions ([googleapis#3595](googleapis#3595)) ([b895b36](googleapis@b895b36)) * **server:** Add `/healthz` endpoint for container health checks ([googleapis#3060](googleapis#3060)) ([d5aefbc](googleapis@d5aefbc)) * **skills:** Add `--group` flag to generate a skill from one group ([googleapis#3585](googleapis#3585)) ([c1abd4f](googleapis@c1abd4f)) * **skills:** Default `--name` to `--group`, `--toolset`, or single `--prebuilt` name ([googleapis#3586](googleapis#3586)) ([2b33b08](googleapis@2b33b08)) * **skills:** Make description optional during skills gen ([googleapis#3584](googleapis#3584)) ([d0a8f14](googleapis@d0a8f14)) * **tool/looker:** Add `get_field_value_suggestions` tool ([googleapis#3696](googleapis#3696)) ([3debe81](googleapis@3debe81)) * **tools/dataplex-update-data-product-aspects:** Add dataplex-update-data-product-aspects tool ([googleapis#3607](googleapis#3607)) ([f940937](googleapis@f940937)) * Update draft specs to 2026-07-28 ([googleapis#3699](googleapis#3699)) ([cf128ff](googleapis@cf128ff)) ### Bug Fixes * Re-add name validation to tools name ([googleapis#3654](googleapis#3654)) ([944f6ce](googleapis@944f6ce)) * Re-add tool validation during startup ([googleapis#3705](googleapis#3705)) ([25ce953](googleapis@25ce953)) * **server:** Sort default toolset alphabetically for stable ordering ([googleapis#3539](googleapis#3539)) ([e5da24c](googleapis@e5da24c)) * **source/cloud-sql-admin:** Validate source instance for backup-run restore ([googleapis#3555](googleapis#3555)) ([3ebe500](googleapis@3ebe500)) * **source/dataplex:** Cleanup Dataplex Data Product resources that may have leaked due to previously aborted tests ([googleapis#3627](googleapis#3627)) ([3fb5a3f](googleapis@3fb5a3f)) * **source/http:** Block CGNAT 100.64.0.0/10 in default SSRF guard ([googleapis#3625](googleapis#3625)) ([a0f36f4](googleapis@a0f36f4)) * **tools/looker:** Enhance looker-run-dashboard to handle result maker structures and merge queries ([googleapis#3698](googleapis#3698)) ([7666bc0](googleapis@7666bc0)) * **tools/looker:** Log request/response traces at debug, not error ([googleapis#3552](googleapis#3552)) ([c3ad445](googleapis@c3ad445)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 44d1a05
…#3584) ## Description Once description becomes optional, skills generation can take in description directly from `Groups`. Note: group description takes precedence when present, `--description` is used otherwise, and both may be empty. Based on [googleapis#3605](googleapis#3605) --------- Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com>
…ogleapis#3585) ## Description Adds a `--group` flag to `skills-generate` that selects a single named group and generates one skill (named exactly `--name`) from that group's tools. The description follows the same precedence as PR googleapis#3584: the group's own `description` is used when present, `--description` is the fallback. `--group` is mutually exclusive with `--toolset`. This complements the existing behaviors: - no flag + multiple groups → one skill per group (`--name- `) - `--toolset X` → single skill from toolset X (legacy; uses `--description`) - `--group X` → single skill from group X (uses group description, falls back to `--description`) Based on googleapis#3584 --------- Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com>
🤖 I have created a release *beep* *boop* --- ## [1.8.0](googleapis/mcp-toolbox@v1.7.0...v1.8.0) (2026-07-28) ### Features * Add `groups` support ([googleapis#3605](googleapis#3605)) ([e75ec3b](googleapis@e75ec3b)) * **prebuilt:** Migrate skills-repo toolsets to `kind: group` with descriptions ([googleapis#3595](googleapis#3595)) ([b895b36](googleapis@b895b36)) * **server:** Add `/healthz` endpoint for container health checks ([googleapis#3060](googleapis#3060)) ([d5aefbc](googleapis@d5aefbc)) * **skills:** Add `--group` flag to generate a skill from one group ([googleapis#3585](googleapis#3585)) ([c1abd4f](googleapis@c1abd4f)) * **skills:** Default `--name` to `--group`, `--toolset`, or single `--prebuilt` name ([googleapis#3586](googleapis#3586)) ([2b33b08](googleapis@2b33b08)) * **skills:** Make description optional during skills gen ([googleapis#3584](googleapis#3584)) ([d0a8f14](googleapis@d0a8f14)) * **tool/looker:** Add `get_field_value_suggestions` tool ([googleapis#3696](googleapis#3696)) ([3debe81](googleapis@3debe81)) * **tools/dataplex-update-data-product-aspects:** Add dataplex-update-data-product-aspects tool ([googleapis#3607](googleapis#3607)) ([f940937](googleapis@f940937)) * Update draft specs to 2026-07-28 ([googleapis#3699](googleapis#3699)) ([cf128ff](googleapis@cf128ff)) ### Bug Fixes * Re-add name validation to tools name ([googleapis#3654](googleapis#3654)) ([944f6ce](googleapis@944f6ce)) * Re-add tool validation during startup ([googleapis#3705](googleapis#3705)) ([25ce953](googleapis@25ce953)) * **server:** Sort default toolset alphabetically for stable ordering ([googleapis#3539](googleapis#3539)) ([e5da24c](googleapis@e5da24c)) * **source/cloud-sql-admin:** Validate source instance for backup-run restore ([googleapis#3555](googleapis#3555)) ([3ebe500](googleapis@3ebe500)) * **source/dataplex:** Cleanup Dataplex Data Product resources that may have leaked due to previously aborted tests ([googleapis#3627](googleapis#3627)) ([3fb5a3f](googleapis@3fb5a3f)) * **source/http:** Block CGNAT 100.64.0.0/10 in default SSRF guard ([googleapis#3625](googleapis#3625)) ([a0f36f4](googleapis@a0f36f4)) * **tools/looker:** Enhance looker-run-dashboard to handle result maker structures and merge queries ([googleapis#3698](googleapis#3698)) ([7666bc0](googleapis@7666bc0)) * **tools/looker:** Log request/response traces at debug, not error ([googleapis#3552](googleapis#3552)) ([c3ad445](googleapis@c3ad445)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com>
mcp-toolbox 1.8.0 Created-by: HarmonybrewBot Commit-by: HarmonybrewBot Merged-by: HarmonybrewBot Description: Created by `brew bump` --- Created with `brew bump-formula-pr`.release notes
## [1.8.0](googleapis/mcp-toolbox@v1.7.0...v1.8.0) (2026-07-28) ### Features * Add `groups` support ([#3605](googleapis/mcp-toolbox#3605)) ([e75ec3b](googleapis/mcp-toolbox@e75ec3b)) * **prebuilt:** Migrate skills-repo toolsets to `kind: group` with descriptions ([#3595](googleapis/mcp-toolbox#3595)) ([b895b36](googleapis/mcp-toolbox@b895b36)) * **server:** Add `/healthz` endpoint for container health checks ([#3060](googleapis/mcp-toolbox#3060)) ([d5aefbc](googleapis/mcp-toolbox@d5aefbc)) * **skills:** Add `--group` flag to generate a skill from one group ([#3585](googleapis/mcp-toolbox#3585)) ([c1abd4f](googleapis/mcp-toolbox@c1abd4f)) * **skills:** Default `--name` to `--group`, `--toolset`, or single `--prebuilt` name ([#3586](googleapis/mcp-toolbox#3586)) ([2b33b08](googleapis/mcp-toolbox@2b33b08)) * **skills:** Make description optional during skills gen ([#3584](googleapis/mcp-toolbox#3584)) ([d0a8f14](googleapis/mcp-toolbox@d0a8f14)) * **tool/looker:** Add `get_field_value_suggestions` tool ([#3696](googleapis/mcp-toolbox#3696)) ([3debe81](googleapis/mcp-toolbox@3debe81)) * **tools/dataplex-update-data-product-aspects:** Add dataplex-update-data-product-aspects tool ([#3607](googleapis/mcp-toolbox#3607)) ([f940937](googleapis/mcp-toolbox@f940937)) * Update draft specs to 2026-07-28 ([#3699](googleapis/mcp-toolbox#3699)) ([cf128ff](googleapis/mcp-toolbox@cf128ff)) ### Bug Fixes * Re-add name validation to tools name ([#3654](googleapis/mcp-toolbox#3654)) ([944f6ce](googleapis/mcp-toolbox@944f6ce)) * Re-add tool validation during startup ([#3705](googleapis/mcp-toolbox#3705)) ([25ce953](googleapis/mcp-toolbox@25ce953)) * **server:** Sort default toolset alphabetically for stable ordering ([#3539](googleapis/mcp-toolbox#3539)) ([e5da24c](googleapis/mcp-toolbox@e5da24c)) * **source/cloud-sql-admin:** Validate source instance for backup-run restore ([#3555](googleapis/mcp-toolbox#3555)) ([3ebe500](googleapis/mcp-toolbox@3ebe500)) * **source/dataplex:** Cleanup Dataplex Data Product resources that may have leaked due to previously aborted tests ([#3627](googleapis/mcp-toolbox#3627)) ([3fb5a3f](googleapis/mcp-toolbox@3fb5a3f)) * **source/http:** Block CGNAT 100.64.0.0/10 in default SSRF guard ([#3625](googleapis/mcp-toolbox#3625)) ([a0f36f4](googleapis/mcp-toolbox@a0f36f4)) * **tools/looker:** Enhance looker-run-dashboard to handle result maker structures and merge queries ([#3698](googleapis/mcp-toolbox#3698)) ([7666bc0](googleapis/mcp-toolbox@7666bc0)) * **tools/looker:** Log request/response traces at debug, not error ([#3552](googleapis/mcp-toolbox#3552)) ([c3ad445](googleapis/mcp-toolbox@c3ad445)) | **OS/Architecture** | **Description** | **SHA256 Hash** | | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- | | [linux/amd64](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.8.0/linux/amd64/toolbox) ([Signature](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.8.0/linux/amd64/toolbox.asc)) | For **Linux** systems running on **Intel/AMD 64-bit processors**. | 8c0ac3b9785d1424ad3d66799c26c5da695d73c74c45225a301689bf7d39d714 | | [darwin/arm64](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.8.0/darwin/arm64/toolbox) | For **macOS** systems running on **Apple Silicon** (M1, M2, M3, etc.) processors. | c69e0b5e25bd5f5f3f3f4d7563d1d8ef0b8ecc922c6654d5db7641f4b0bc4b95 | | [darwin/amd64](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.8.0/darwin/amd64/toolbox) | For **macOS** systems running on **Intel processors**. | cd69bb08c9e25c372e39cfd765e9166a7473f66ea15865870bd141014ddf4212 | | [windows/amd64](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.8.0/windows/amd64/toolbox.exe) | For **Windows** systems running on **Intel/AMD 64-bit processors**. | f3cd288d184adae71c9cc2d627e7d4db1f0d5c8a00d5d4cab30a42acecb43082 | | [windows/arm64](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.8.0/windows/arm64/toolbox.exe) | For **Windows** systems running on **ARM 64-bit processors**. | a18405b1a13656ca23c6667cc4a8a9b01ebd29b4f0057e74811f44c78bc8d266 |View the full release notes at https://github.com/googleapis/mcp-toolbox/releases/tag/v1.8.0">https://github.com/googleapis/mcp-toolbox/releases/tag/v1.8.0.
>
See merge request: Harmonybrew/homebrew-core!15323
Description
Once description becomes optional, skills generation can take in description directly from
Groups.Note: group description takes precedence when present,
--descriptionis used otherwise, and both may be empty.Based on #3605