Skip to content

feat(prebuilt): migrate skills-repo toolsets to kind: group with descriptions - #3595

Merged
twishabansal merged 67 commits into
mainfrom
feat/groups-pr8-prebuilt-migration
Jul 27, 2026
Merged

twishabansal merged 67 commits into
mainfrom
feat/groups-pr8-prebuilt-migration

Conversation

@twishabansal

@twishabansal twishabansal commented Jul 10, 2026 •

Copy link
Copy Markdown
Contributor

Description

Migrates prebuilt config toolsets to kind: group with descriptions, so prebuilt skill generation sources each group's description directly from the config. Descriptions are the canonical text from the published gemini-cli-extensions SKILL.md frontmatter (not hand-written).

Only toolsets backed by a published skills repo are migrated. Toolsets with no matching published skill are intentionally left as kind: toolset.

Stacked on #3587

twishabansal and others added 30 commits June 22, 2026 15:47
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.
--group selects a single named group and generates one skill from its tools, using the group's description with --description as fallback. Mutually exclusive with --toolset.
--name becomes optional: when omitted and exactly one --prebuilt config is provided, the prebuilt name is used. Any other case still requires --name.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Add a Groups concept page covering kind: group config, the default group, validation rules, and the groups/list and groups/get MCP methods. Note the toolset-group relationship on the Toolsets page. Document skills-generate --group, optional --name, and group-description precedence over --description.
Document skills-generate --group and optional --name in the CLI reference, add a Groups section to the configuration index, and note per-group prompt scoping on the Prompts page.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
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.
@twishabansal
twishabansal force-pushed the feat/groups-pr7-docs branch from 2bfc4d0 to 6c2ffcf Compare July 15, 2026 08:34
…4-skills-description

# Conflicts:
#	cmd/internal/config.go
#	cmd/internal/config_test.go
#	cmd/internal/invoke/command.go
#	cmd/internal/skills/command.go
#	cmd/root.go
#	cmd/root_test.go
#	internal/embeddingmodels/gemini/gemini_test.go
#	internal/group/group.go
#	internal/group/group_test.go
#	internal/server/common_test.go
#	internal/server/config.go
#	internal/server/mcp.go
#	internal/server/mcp/mcp.go
#	internal/server/mcp/v20241105/manifests.go
#	internal/server/mcp/v20241105/method.go
#	internal/server/mcp/v20241105/method_test.go
#	internal/server/mcp/v20241105/types.go
#	internal/server/mcp/v20250326/manifests.go
#	internal/server/mcp/v20250326/method.go
#	internal/server/mcp/v20250326/method_test.go
#	internal/server/mcp/v20250326/types.go
#	internal/server/mcp/v20250618/manifests.go
#	internal/server/mcp/v20250618/method.go
#	internal/server/mcp/v20250618/method_test.go
#	internal/server/mcp/v20250618/types.go
#	internal/server/mcp/v20251125/manifests.go
#	internal/server/mcp/v20251125/method.go
#	internal/server/mcp/v20251125/method_test.go
#	internal/server/mcp/v20251125/types.go
#	internal/server/mcp/vdraft/manifests.go
#	internal/server/mcp/vdraft/method.go
#	internal/server/mcp/vdraft/method_test.go
#	internal/server/mcp/vdraft/types.go
#	internal/server/mcp_test.go
#	internal/server/primitives/primitives_test.go
#	internal/server/resources/resources.go
#	internal/server/server.go
#	internal/server/server_test.go
#	internal/sources/alloydbadmin/alloydbadmin_test.go
#	internal/sources/alloydbpg/alloydb_pg_test.go
#	internal/sources/bigquery/bigquery_test.go
#	internal/sources/bigtable/bigtable_test.go
#	internal/sources/cassandra/cassandra_test.go
#	internal/sources/clickhouse/clickhouse_test.go
#	internal/sources/cloudgda/cloud_gda_test.go
#	internal/sources/cloudhealthcare/cloud_healthcare_test.go
#	internal/sources/cloudloggingadmin/cloud_logging_admin_test.go
#	internal/sources/cloudmonitoring/cloud_monitoring_test.go
#	internal/sources/cloudsqladmin/cloud_sql_admin_test.go
#	internal/sources/cloudsqlmssql/cloud_sql_mssql_test.go
#	internal/sources/cloudsqlmysql/cloud_sql_mysql_test.go
#	internal/sources/cloudsqlpg/cloud_sql_pg_test.go
#	internal/sources/cloudstorage/cloudstorage_test.go
#	internal/sources/couchbase/couchbase_test.go
#	internal/sources/datalineage/datalineage_test.go
#	internal/sources/dataplex/dataplex_test.go
#	internal/sources/dataproc/dataproc_test.go
#	internal/sources/dgraph/dgraph_test.go
#	internal/sources/elasticsearch/elasticsearch_test.go
#	internal/sources/firebird/firebird_test.go
#	internal/sources/firestore/firestore_test.go
#	internal/sources/http/http_test.go
#	internal/sources/looker/looker_test.go
#	internal/sources/mindsdb/mindsdb_test.go
#	internal/sources/mongodb/mongodb_test.go
#	internal/sources/mssql/mssql_test.go
#	internal/sources/mysql/mysql_test.go
#	internal/sources/neo4j/neo4j_test.go
#	internal/sources/oceanbase/oceanbase_test.go
#	internal/sources/oracle/oracle_test.go
#	internal/sources/postgres/postgres_test.go
#	internal/sources/redis/redis_test.go
#	internal/sources/scylladb/scylladb_test.go
#	internal/sources/serverlessspark/serverlessspark_test.go
#	internal/sources/singlestore/singlestore_test.go
#	internal/sources/snowflake/snowflake_test.go
#	internal/sources/spanner/spanner_test.go
#	internal/sources/sqlite/sqlite_test.go
#	internal/sources/tidb/tidb_test.go
#	internal/sources/trino/trino_test.go
#	internal/sources/valkey/valkey_test.go
#	internal/sources/yugabytedb/yugabytedb_test.go
#	internal/testutils/testutils.go
#	internal/tools/alloydb/alloydbcreatecluster/alloydbcreatecluster_test.go
#	internal/tools/alloydb/alloydbcreateinstance/alloydbcreateinstance_test.go
#	internal/tools/alloydb/alloydbcreateuser/alloydbcreateuser_test.go
#	internal/tools/alloydb/alloydbgetcluster/alloydbgetcluster_test.go
#	internal/tools/alloydb/alloydbgetinstance/alloydbgetinstance_test.go
#	internal/tools/alloydb/alloydbgetuser/alloydbgetuser_test.go
#	internal/tools/alloydb/alloydblistclusters/alloydblistclusters_test.go
#	internal/tools/alloydb/alloydblistinstances/alloydblistinstances_test.go
#	internal/tools/alloydb/alloydblistusers/alloydblistusers_test.go
#	internal/tools/alloydb/alloydbwaitforoperation/alloydbwaitforoperation_test.go
#	internal/tools/alloydbainl/alloydbainl_test.go
#	internal/tools/bigquery/bigqueryanalyzecontribution/bigqueryanalyzecontribution_test.go
#	internal/tools/bigquery/bigqueryconversationalanalytics/bigqueryconversationalanalytics_test.go
#	internal/tools/bigquery/bigqueryexecutesql/bigqueryexecutesql_test.go
#	internal/tools/bigquery/bigqueryforecast/bigqueryforecast_test.go
#	internal/tools/bigquery/bigquerygetdatasetinfo/bigquerygetdatasetinfo_test.go
#	internal/tools/bigquery/bigquerygettableinfo/bigquerygettableinfo_test.go
#	internal/tools/bigquery/bigquerylistdatasetids/bigquerylistdatasetids_test.go
#	internal/tools/bigquery/bigquerylisttableids/bigquerylisttableids_test.go
#	internal/tools/bigquery/bigquerysearchcatalog/bigquerysearchcatalog_test.go
#	internal/tools/bigquery/bigquerysql/bigquerysql_test.go
#	internal/tools/bigtable/bigtable_test.go
#	internal/tools/cassandra/cassandracql/cassandracql_test.go
#	internal/tools/clickhouse/clickhouseexecutesql/clickhouseexecutesql_test.go
#	internal/tools/clickhouse/clickhouselistdatabases/clickhouselistdatabases_test.go
#	internal/tools/clickhouse/clickhouselisttables/clickhouselisttables_test.go
#	internal/tools/clickhouse/clickhousesql/clickhousesql_test.go
#	internal/tools/cloudgda/cloudgda_test.go
#	internal/tools/cloudhealthcare/cloudhealthcarefhirfetchpage/cloudhealthcarefhirfetchpage_test.go
#	internal/tools/cloudhealthcare/cloudhealthcarefhirpatienteverything/cloudhealthcarefhirpatienteverything_test.go
#	internal/tools/cloudhealthcare/cloudhealthcarefhirpatientsearch/cloudhealthcarefhirpatientsearch_test.go
#	internal/tools/cloudhealthcare/cloudhealthcaregetdataset/cloudhealthcaregetdataset_test.go
#	internal/tools/cloudhealthcare/cloudhealthcaregetdicomstore/cloudhealthcaregetdicomstore_test.go
#	internal/tools/cloudhealthcare/cloudhealthcaregetdicomstoremetrics/cloudhealthcaregetdicomstoremetrics_test.go
#	internal/tools/cloudhealthcare/cloudhealthcaregetfhirresource/cloudhealthcaregetfhirresource_test.go
#	internal/tools/cloudhealthcare/cloudhealthcaregetfhirstore/cloudhealthcaregetfhirstore_test.go
#	internal/tools/cloudhealthcare/cloudhealthcaregetfhirstoremetrics/cloudhealthcaregetfhirstoremetrics_test.go
#	internal/tools/cloudhealthcare/cloudhealthcarelistdicomstores/cloudhealthcarelistdicomstores_test.go
#	internal/tools/cloudhealthcare/cloudhealthcarelistfhirstores/cloudhealthcarelistfhirstores_test.go
#	internal/tools/cloudhealthcare/cloudhealthcareretrieverendereddicominstance/cloudhealthcareretrieverendereddicominstance_test.go
#	internal/tools/cloudhealthcare/cloudhealthcaresearchdicominstances/cloudhealthcaresearchdicominstances_test.go
#	internal/tools/cloudhealthcare/cloudhealthcaresearchdicomseries/cloudhealthcaresearchdicomseries_test.go
#	internal/tools/cloudhealthcare/cloudhealthcaresearchdicomstudies/cloudhealthcaresearchdicomstudies_test.go
#	internal/tools/cloudloggingadmin/cloudloggingadminlistlognames/cloudloggingadminlistlognames_test.go
#	internal/tools/cloudloggingadmin/cloudloggingadminlistresourcetypes/cloudloggingadminlistresourcetypes_test.go
#	internal/tools/cloudloggingadmin/cloudloggingadminquerylogs/cloudloggingadminquerylogs_test.go
#	internal/tools/cloudmonitoring/cloudmonitoring_test.go
#	internal/tools/cloudsql/cloudsqlcloneinstance/cloudsqlcloneinstance_test.go
#	internal/tools/cloudsql/cloudsqlcreatebackup/cloudsqlcreatebackup_test.go
#	internal/tools/cloudsql/cloudsqlcreatedatabase/cloudsqlcreatedatabase_test.go
#	internal/tools/cloudsql/cloudsqlcreateusers/cloudsqlcreateusers_test.go
#	internal/tools/cloudsql/cloudsqlgetinstances/cloudsqlgetinstances_test.go
#	internal/tools/cloudsql/cloudsqllistdatabases/cloudsqllistdatabases_test.go
#	internal/tools/cloudsql/cloudsqllistinstances/cloudsqllistinstances_test.go
#	internal/tools/cloudsql/cloudsqlrestorebackup/cloudsqlrestorebackup_test.go
#	internal/tools/cloudsql/cloudsqlwaitforoperation/cloudsqlwaitforoperation_test.go
#	internal/tools/cloudsqladmin/cloudsqladminexecutemany/cloudsqladminexecutemany_test.go
#	internal/tools/cloudsqladmin/cloudsqladminsqlmany/cloudsqladminsqlmany_test.go
#	internal/tools/cloudsqlmssql/cloudsqlmssqlcreateinstance/cloudsqlmssqlcreateinstance_test.go
#	internal/tools/cloudsqlmysql/cloudsqlmysqlcreateinstance/cloudsqlmysqlcreateinstance_test.go
#	internal/tools/cloudsqlpg/cloudsqlpgcreateinstances/cloudsqlpgcreateinstances_test.go
#	internal/tools/cloudsqlpg/cloudsqlpgupgradeprecheck/cloudsqlpgupgradeprecheck_test.go
#	internal/tools/cloudsqlpg/vectorassistapplyspec/vectorassistapplyspec_test.go
#	internal/tools/cloudsqlpg/vectorassistdefinespec/vectorassistdefinespec_test.go
#	internal/tools/cloudsqlpg/vectorassistdeletespec/vectorassistdeletespec_test.go
#	internal/tools/cloudsqlpg/vectorassistgeneratequery/vectorassistgeneratequery_test.go
#	internal/tools/cloudsqlpg/vectorassistgetspec/vectorassistgetspec_test.go
#	internal/tools/cloudsqlpg/vectorassistimprovequeryrecall/vectorassistimprovequeryrecall_test.go
#	internal/tools/cloudsqlpg/vectorassistlistspecs/vectorassistlistspecs_test.go
#	internal/tools/cloudsqlpg/vectorassistmodifyspec/vectorassistmodifyspec_test.go
#	internal/tools/cloudstorage/cloudstoragecopyobject/cloudstoragecopyobject_test.go
#	internal/tools/cloudstorage/cloudstoragecreatebucket/cloudstoragecreatebucket_test.go
#	internal/tools/cloudstorage/cloudstoragedeletebucket/cloudstoragedeletebucket_test.go
#	internal/tools/cloudstorage/cloudstoragedeleteobject/cloudstoragedeleteobject_test.go
#	internal/tools/cloudstorage/cloudstoragedownloadobject/cloudstoragedownloadobject_test.go
#	internal/tools/cloudstorage/cloudstoragegetbucketiampolicy/cloudstoragegetbucketiampolicy_test.go
#	internal/tools/cloudstorage/cloudstoragegetbucketmetadata/cloudstoragegetbucketmetadata_test.go
#	internal/tools/cloudstorage/cloudstoragegetobjectmetadata/cloudstoragegetobjectmetadata_test.go
#	internal/tools/cloudstorage/cloudstoragelistbuckets/cloudstoragelistbuckets_test.go
#	internal/tools/cloudstorage/cloudstoragelistobjects/cloudstoragelistobjects_test.go
#	internal/tools/cloudstorage/cloudstoragemoveobject/cloudstoragemoveobject_test.go
#	internal/tools/cloudstorage/cloudstoragereadobject/cloudstoragereadobject_test.go
#	internal/tools/cloudstorage/cloudstorageuploadobject/cloudstorageuploadobject_test.go
#	internal/tools/cloudstorage/cloudstoragewriteobject/cloudstoragewriteobject_test.go
#	internal/tools/cockroachdb/cockroachdbexecutesql/cockroachdbexecutesql_test.go
#	internal/tools/cockroachdb/cockroachdblistschemas/cockroachdblistschemas_test.go
#	internal/tools/cockroachdb/cockroachdblisttables/cockroachdblisttables_test.go
#	internal/tools/cockroachdb/cockroachdbsql/cockroachdbsql_test.go
#	internal/tools/conversationalanalytics/conversationalanalyticsaskdataagent/conversationalanalyticsaskdataagent_test.go
#	internal/tools/conversationalanalytics/conversationalanalyticsgetdataagentinfo/conversationalanalyticsgetdataagentinfo_test.go
#	internal/tools/conversationalanalytics/conversationalanalyticslistaccessibledataagents/conversationalanalyticslistaccessibledataagents_test.go
#	internal/tools/couchbase/couchbase_test.go
#	internal/tools/dataform/dataformcompilelocal/dataformcompilelocal_test.go
#	internal/tools/datalineage/datalineagesearchlineage/datalineagesearchlineage_test.go
#	internal/tools/dataplex/dataplexcheckdataquality/dataplexcheckdataquality_test.go
#	internal/tools/dataplex/dataplexcreatedataproduct/dataplexcreatedataproduct_test.go
#	internal/tools/dataplex/dataplexgeneratedatainsights/dataplexgeneratedatainsights_test.go
#	internal/tools/dataplex/dataplexgeneratedataprofile/dataplexgeneratedataprofile_test.go
#	internal/tools/dataplex/dataplexgetdataasset/dataplexgetdataasset_test.go
#	internal/tools/dataplex/dataplexgetdatainsights/dataplexgetdatainsights_test.go
#	internal/tools/dataplex/dataplexgetdataproduct/dataplexgetdataproduct_test.go
#	internal/tools/dataplex/dataplexgetdataprofile/dataplexgetdataprofile_test.go
#	internal/tools/dataplex/dataplexgetdataqualityresults/dataplexgetdataqualityresults_test.go
#	internal/tools/dataplex/dataplexgetdiscoveryresults/dataplexgetdiscoveryresults_test.go
#	internal/tools/dataplex/dataplexgetoperation/dataplexgetoperation_test.go
#	internal/tools/dataplex/dataplexgetrunstatus/dataplexgetrunstatus_test.go
#	internal/tools/dataplex/dataplexlistdataassets/dataplexlistdataassets_test.go
#	internal/tools/dataplex/dataplexlistdataproducts/dataplexlistdataproducts_test.go
#	internal/tools/dataplex/dataplexlookupcontext/dataplexlookupcontext_test.go
#	internal/tools/dataplex/dataplexlookupentry/dataplexlookupentry_test.go
#	internal/tools/dataplex/dataplexsearchaspecttypes/dataplexsearchaspecttypes_test.go
#	internal/tools/dataplex/dataplexsearchdqscans/dataplexsearchdqscans_test.go
#	internal/tools/dataplex/dataplexsearchentries/dataplexsearchentries_test.go
#	internal/tools/dataproc/dataprocgetcluster/dataprocgetcluster_test.go
#	internal/tools/dataproc/dataprocgetjob/dataprocgetjob_test.go
#	internal/tools/dataproc/dataproclistclusters/dataproclistclusters_test.go
#	internal/tools/dataproc/dataproclistjobs/dataproclistjobs_test.go
#	internal/tools/dgraph/dgraph_test.go
#	internal/tools/elasticsearch/elasticsearchesql/elasticsearchesql_test.go
#	internal/tools/elasticsearch/elasticsearchexecuteesql/elasticsearchexecuteesql_test.go
#	internal/tools/firebird/firebirdexecutesql/firebirdexecutesql_test.go
#	internal/tools/firebird/firebirdsql/firebirdsql_test.go
#	internal/tools/firestore/firestoreadddocuments/firestoreadddocuments_test.go
#	internal/tools/firestore/firestoredeletedocuments/firestoredeletedocuments_test.go
#	internal/tools/firestore/firestoregetdocuments/firestoregetdocuments_test.go
#	internal/tools/firestore/firestoregetrules/firestoregetrules_test.go
#	internal/tools/firestore/firestorelistcollections/firestorelistcollections_test.go
#	internal/tools/firestore/firestorequery/firestorequery_test.go
#	internal/tools/firestore/firestorequerycollection/firestorequerycollection_test.go
#	internal/tools/firestore/firestoreupdatedocument/firestoreupdatedocument_test.go
#	internal/tools/firestore/firestorevalidaterules/firestorevalidaterules_test.go
#	internal/tools/http/http_test.go
#	internal/tools/looker/lookeradddashboardelement/lookeradddashboardelement_test.go
#	internal/tools/looker/lookeradddashboardfilter/lookeradddashboardfilter_test.go
#	internal/tools/looker/lookerconversationalanalytics/lookerconversationalanalytics_test.go
#	internal/tools/looker/lookercreateagent/lookercreateagent_test.go
#	internal/tools/looker/lookercreategitbranch/lookercreategitbranch_test.go
#	internal/tools/looker/lookercreateprojectdirectory/lookercreateprojectdirectory_test.go
#	internal/tools/looker/lookercreateprojectfile/lookercreateprojectfile_test.go
#	internal/tools/looker/lookercreateviewfromtable/lookercreateviewfromtable_test.go
#	internal/tools/looker/lookerdeleteagent/lookerdeleteagent_test.go
#	internal/tools/looker/lookerdeletegitbranch/lookerdeletegitbranch_test.go
#	internal/tools/looker/lookerdeleteprojectdirectory/lookerdeleteprojectdirectory_test.go
#	internal/tools/looker/lookerdeleteprojectfile/lookerdeleteprojectfile_test.go
#	internal/tools/looker/lookerdevmode/lookerdevmode_test.go
#	internal/tools/looker/lookergenerateembedurl/lookergenerateembedurl_test.go
#	internal/tools/looker/lookergetagent/lookergetagent_test.go
#	internal/tools/looker/lookergetconnectiondatabases/lookergetconnectiondatabases_test.go
#	internal/tools/looker/lookergetconnections/lookergetconnections_test.go
#	internal/tools/looker/lookergetconnectionschemas/lookergetconnectionschemas_test.go
#	internal/tools/looker/lookergetconnectiontablecolumns/lookergetconnectiontablecolumns_test.go
#	internal/tools/looker/lookergetconnectiontables/lookergetconnectiontables_test.go
#	internal/tools/looker/lookergetdashboards/lookergetdashboards_test.go
#	internal/tools/looker/lookergetdimensions/lookergetdimensions_test.go
#	internal/tools/looker/lookergetexplores/lookergetexplores_test.go
#	internal/tools/looker/lookergetfilters/lookergetfilters_test.go
#	internal/tools/looker/lookergetgitbranch/lookergetgitbranch_test.go
#	internal/tools/looker/lookergetlookmltests/lookergetlookmltests_test.go
#	internal/tools/looker/lookergetlooks/lookergetlooks_test.go
#	internal/tools/looker/lookergetmeasures/lookergetmeasures_test.go
#	internal/tools/looker/lookergetmodels/lookergetmodels_test.go
#	internal/tools/looker/lookergetparameters/lookergetparameters_test.go
#	internal/tools/looker/lookergetprojectdirectories/lookergetprojectdirectories_test.go
#	internal/tools/looker/lookergetprojectfile/lookergetprojectfile_test.go
#	internal/tools/looker/lookergetprojectfiles/lookergetprojectfiles_test.go
#	internal/tools/looker/lookergetprojects/lookergetprojects_test.go
#	internal/tools/looker/lookerhealthanalyze/lookerhealthanalyze_test.go
#	internal/tools/looker/lookerhealthpulse/lookerhealthpulse_test.go
#	internal/tools/looker/lookerhealthvacuum/lookerhealthvacuum_test.go
#	internal/tools/looker/lookerlistagents/lookerlistagents_test.go
#	internal/tools/looker/lookerlistgitbranches/lookerlistgitbranches_test.go
#	internal/tools/looker/lookermakedashboard/lookermakedashboard_test.go
#	internal/tools/looker/lookermakelook/lookermakelook_test.go
#	internal/tools/looker/lookerquery/lookerquery_test.go
#	internal/tools/looker/lookerquerysql/lookerquerysql_test.go
#	internal/tools/looker/lookerqueryurl/lookerqueryurl_test.go
#	internal/tools/looker/lookerrundashboard/lookerrundashboard_test.go
#	internal/tools/looker/lookerrunlook/lookerrunlook_test.go
#	internal/tools/looker/lookerrunlookmltests/lookerrunlookmltests_test.go
#	internal/tools/looker/lookerswitchgitbranch/lookerswitchgitbranch_test.go
#	internal/tools/looker/lookerupdateagent/lookerupdateagent_test.go
#	internal/tools/looker/lookerupdateprojectfile/lookerupdateprojectfile_test.go
#	internal/tools/looker/lookervalidateproject/lookervalidateproject_test.go
#	internal/tools/mindsdb/mindsdbexecutesql/mindsdbexecutesql_test.go
#	internal/tools/mindsdb/mindsdbsql/mindsdbsql_test.go
#	internal/tools/mongodb/mongodbaggregate/mongodbaggregate_test.go
#	internal/tools/mongodb/mongodbdeletemany/mongodbdeletemany_test.go
#	internal/tools/mongodb/mongodbdeleteone/mongodbdeleteone_test.go
#	internal/tools/mongodb/mongodbfind/mongodbfind_test.go
#	internal/tools/mongodb/mongodbfindone/mongodbfindone_test.go
#	internal/tools/mongodb/mongodbinsertmany/mongodbinsertmany_test.go
#	internal/tools/mongodb/mongodbinsertone/mongodbinsertone_test.go
#	internal/tools/mongodb/mongodbupdatemany/mongodbupdatemany_test.go
#	internal/tools/mongodb/mongodbupdateone/mongodbupdateone_test.go
#	internal/tools/mssql/mssqlexecutesql/mssqlexecutesql_test.go
#	internal/tools/mssql/mssqllisttables/mssqllisttables_test.go
#	internal/tools/mssql/mssqlsql/mssqlsql_test.go
#	internal/tools/mysql/mysqlexecutesql/mysqlexecutesql_test.go
#	internal/tools/mysql/mysqlgetqueryplan/mysqlgetqueryplan_test.go
#	internal/tools/mysql/mysqllistactivequeries/mysqllistactivequeries_test.go
#	internal/tools/mysql/mysqllistalllocks/mysqllistalllocks_test.go
#	internal/tools/mysql/mysqllisttablefragmentation/mysqllisttablefragmentation_test.go
#	internal/tools/mysql/mysqllisttables/mysqllisttables_test.go
#	internal/tools/mysql/mysqllisttablesmissinguniqueindexes/mysqllisttablesmissinguniqueindexes_test.go
#	internal/tools/mysql/mysqllisttablestats/mysqllisttablestats_test.go
#	internal/tools/mysql/mysqlshowquerystats/mysqlshowquerystats_test.go
#	internal/tools/mysql/mysqlsql/mysqlsql_test.go
#	internal/tools/neo4j/neo4jcypher/neo4jcypher_test.go
#	internal/tools/neo4j/neo4jexecutecypher/neo4jexecutecypher_test.go
#	internal/tools/neo4j/neo4jschema/neo4jschema_test.go
#	internal/tools/oceanbase/oceanbaseexecutesql/oceanbaseexecutesql_test.go
#	internal/tools/oceanbase/oceanbasesql/oceanbasesql_test.go
#	internal/tools/oracle/oracleexecutesql/oracleexecutesql_test.go
#	internal/tools/oracle/oraclesql/oraclesql_test.go
#	internal/tools/postgres/postgresdatabaseoverview/postgresdatabaseoverview_test.go
#	internal/tools/postgres/postgresexecutesql/postgresexecutesql_test.go
#	internal/tools/postgres/postgresgetcolumncardinality/postgresgetcolumncardinality_test.go
#	internal/tools/postgres/postgreslistactivequeries/postgreslistactivequeries_test.go
#	internal/tools/postgres/postgreslistavailableextensions/postgreslistavailableextensions_test.go
#	internal/tools/postgres/postgreslistdatabasestats/postgreslistdatabasestats_test.go
#	internal/tools/postgres/postgreslistindexes/postgreslistindexes_test.go
#	internal/tools/postgres/postgreslistinstalledextensions/postgreslistinstalledextensions_test.go
#	internal/tools/postgres/postgreslistlocks/postgreslistlocks_test.go
#	internal/tools/postgres/postgreslistpgsettings/postgreslistpgsettings_test.go
#	internal/tools/postgres/postgreslistpublicationtables/postgreslistpublicationtables_test.go
#	internal/tools/postgres/postgreslistquerystats/postgreslistquerystats_test.go
#	internal/tools/postgres/postgreslistroles/postgreslistroles_test.go
#	internal/tools/postgres/postgreslistschemas/postgreslistschemas_test.go
#	internal/tools/postgres/postgreslistsequences/postgreslistsequences_test.go
#	internal/tools/postgres/postgresliststoredprocedure/postgresliststoredprocedure_test.go
#	internal/tools/postgres/postgreslisttables/postgreslisttables_test.go
#	internal/tools/postgres/postgreslisttablespaces/postgreslisttablespaces_test.go
#	internal/tools/postgres/postgreslisttablestats/postgreslisttablestats_test.go
#	internal/tools/postgres/postgreslisttriggers/postgreslisttriggers_test.go
#	internal/tools/postgres/postgreslistviews/postgreslistviews_test.go
#	internal/tools/postgres/postgreslongrunningtransactions/postgreslongrunningtransactions_test.go
#	internal/tools/postgres/postgresreplicationstats/postgresreplicationstats_test.go
#	internal/tools/postgres/postgressql/postgressql_test.go
#	internal/tools/redis/redis_test.go
#	internal/tools/scylladb/scyllacql/scyllacql_test.go
#	internal/tools/serverlessspark/serverlesssparkcancelbatch/serverlesssparkcancelbatch_test.go
#	internal/tools/serverlessspark/serverlesssparkgetbatch/serverlesssparkgetbatch_test.go
#	internal/tools/serverlessspark/serverlesssparkgetsession/serverlesssparkgetsession_test.go
#	internal/tools/serverlessspark/serverlesssparkgetsessiontemplate/serverlesssparkgetsessiontemplate_test.go
#	internal/tools/serverlessspark/serverlesssparklistbatches/serverlesssparklistbatches_test.go
#	internal/tools/serverlessspark/serverlesssparklistsessions/serverlesssparklistsessions_test.go
#	internal/tools/serverlessspark/testutils/testutils.go
#	internal/tools/singlestore/singlestoreexecutesql/singlestoreexecutesql_test.go
#	internal/tools/singlestore/singlestoresql/singlestoresql_test.go
#	internal/tools/snowflake/snowflakeexecutesql/snowflakeexecutesql_test.go
#	internal/tools/snowflake/snowflakesql/snowflakesql_test.go
#	internal/tools/spanner/spannerexecutesql/spannerexecutesql_test.go
#	internal/tools/spanner/spannerlistgraphs/spannerlistgraphs_test.go
#	internal/tools/spanner/spannerlisttables/spannerlisttables_test.go
#	internal/tools/spanner/spannersearchcatalog/spannersearchcatalog_test.go
#	internal/tools/spanner/spannersql/spanner_test.go
#	internal/tools/sqlite/sqliteexecutesql/sqliteexecutesql_test.go
#	internal/tools/sqlite/sqlitesql/sqlitesql_test.go
#	internal/tools/tidb/tidbexecutesql/tidbexecutesql_test.go
#	internal/tools/tidb/tidbsql/tidbsql_test.go
#	internal/tools/trino/trinoexecutesql/trinoexecutesql_test.go
#	internal/tools/trino/trinosql/trinosql_test.go
#	internal/tools/utility/wait/wait_test.go
#	internal/tools/valkey/valkey_test.go
#	internal/tools/yugabytedbsql/yugabytedbsql_test.go
#	tests/common.go
…dler

The merge with feat/groups combined base's ToolsetManifest(s.version, ...)
call with the branch's older separate assignment, leaving a duplicate line.
Base already sets ServerVersion via the manifest argument.
…ration

# Conflicts:
#	cmd/internal/config_test.go
Remove tool capabilities from group descriptions that don't match the
group's actual tools: drop clone_instance references from mssql/mysql
admin groups and PromQL monitoring from the mssql data group.

@Yuan325 Yuan325 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but let's get @helloeve input as well before merging :)

@twishabansal
twishabansal changed the base branch from feat/groups-pr7-docs to main July 27, 2026 08:10
@twishabansal twishabansal removed the do not merge Indicates a pull request not ready for merge, due to either quality or timing. label Jul 27, 2026
twishabansal and others added 2 commits July 27, 2026 15:26
…ilt-migration

# Conflicts:
#	cmd/internal/config_test.go
#	cmd/internal/skills/command.go
#	cmd/internal/skills/command_test.go
#	docs/en/documentation/configuration/groups/_index.md
#	docs/en/documentation/configuration/prompts/_index.md
#	docs/en/documentation/configuration/skills/_index.md
#	docs/en/documentation/configuration/toolsets/_index.md
#	docs/en/reference/cli.md
#	internal/group/group.go
#	internal/group/group_test.go
#	internal/server/api.go
#	internal/server/config.go
#	internal/server/mcp/v20241105/manifests.go
#	internal/server/mcp/v20241105/manifests_test.go
#	internal/server/mcp/v20241105/method.go
#	internal/server/mcp/v20250326/manifests.go
#	internal/server/mcp/v20250326/manifests_test.go
#	internal/server/mcp/v20250326/method.go
#	internal/server/mcp/v20250618/manifests.go
#	internal/server/mcp/v20250618/manifests_test.go
#	internal/server/mcp/v20250618/method.go
#	internal/server/mcp/v20251125/manifests.go
#	internal/server/mcp/v20251125/manifests_test.go
#	internal/server/mcp/v20251125/method.go
#	internal/server/mcp/vdraft/manifests.go
#	internal/server/mcp/vdraft/manifests_test.go
#	internal/server/mcp/vdraft/method.go
#	internal/server/mcp/vdraft/method_test.go
#	internal/server/primitives/primitives.go
#	internal/server/primitives/primitives_test.go
#	internal/server/server.go
#	internal/server/server_test.go
#	internal/testutils/testutils.go
#	internal/tools/cloudgda/cloudgda_test.go
@twishabansal
twishabansal enabled auto-merge (squash) July 27, 2026 10:01
@twishabansal
twishabansal merged commit b895b36 into main Jul 27, 2026
25 checks passed
@twishabansal
twishabansal deleted the feat/groups-pr8-prebuilt-migration branch July 27, 2026 11:11
@github-actions

Copy link
Copy Markdown
Contributor

🧨 Preview deployments removed.

Cloudflare Pages environments for pr-3595 have been deleted.

github-actions Bot pushed a commit to Jaleel-zhu/genai-toolbox that referenced this pull request Jul 27, 2026
…ith descriptions (googleapis#3595)

## Description

Migrates prebuilt config toolsets to `kind: group` with descriptions, so
prebuilt skill generation sources each group's description directly from
the config. Descriptions are the canonical text from the published
`gemini-cli-extensions` SKILL.md frontmatter (not hand-written).

Only toolsets backed by a published skills repo are migrated. Toolsets
with no matching published skill are intentionally left as `kind:
toolset`.

Stacked on googleapis#3587

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> b895b36
Yuan325 added a commit that referenced this pull request Jul 28, 2026
🤖 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>
github-actions Bot pushed a commit that referenced this pull request Jul 28, 2026
🤖 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
github-actions Bot pushed a commit to rodineyw/mcp-toolbox that referenced this pull request Jul 28, 2026
🤖 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
github-actions Bot pushed a commit to pepe57/genai-toolbox that referenced this pull request Jul 28, 2026
🤖 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
github-actions Bot pushed a commit to Jaleel-zhu/genai-toolbox that referenced this pull request Jul 28, 2026
🤖 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
Genesis929 pushed a commit to Genesis929/genai-toolbox that referenced this pull request Jul 28, 2026
…riptions (googleapis#3595)

## Description

Migrates prebuilt config toolsets to `kind: group` with descriptions, so
prebuilt skill generation sources each group's description directly from
the config. Descriptions are the canonical text from the published
`gemini-cli-extensions` SKILL.md frontmatter (not hand-written).

Only toolsets backed by a published skills repo are migrated. Toolsets
with no matching published skill are intentionally left as `kind:
toolset`.

Stacked on googleapis#3587

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com>
Genesis929 pushed a commit to Genesis929/genai-toolbox that referenced this pull request Jul 28, 2026
🤖 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>
social4hyq pushed a commit to social4hyq/homebrew-core that referenced this pull request Sep 20, 2026
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants