Skip to content

feat(tool/cloud-storage): support configurable parameters#3478

Merged
Yuan325 merged 2 commits into
googleapis:mainfrom
huangjiahua:feat/customizable-gcs-tool-params
Jun 24, 2026
Merged

feat(tool/cloud-storage): support configurable parameters#3478
Yuan325 merged 2 commits into
googleapis:mainfrom
huangjiahua:feat/customizable-gcs-tool-params

Conversation

@huangjiahua

@huangjiahua huangjiahua commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Description

Adds optional tool-level config fields for the first Cloud Storage tools so configured values are hidden from runtime parameter schemas and used during invocation. Also adds project support to create-bucket and updates docs/tests.

This change has been communicated internally.

PR Checklist

  • Make sure to open an issue as a bug/issue before writing your code!
  • Ensure the tests and linter pass
  • Code coverage does not decrease (if any source code was changed)
  • Appropriate docs were updated (if necessary)
  • Make sure to add ! if this involves a breaking change

Issue Reference

N/A

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces support for baking static configuration parameters (such as project, location, uniform_bucket_level_access, bucket, prefix, and delimiter) into various Google Cloud Storage tools. When configured, these parameters are automatically removed from the runtime schema exposed to the LLM, and the configured values are used instead. The changes span across documentation, tool configurations, invocation logic, and unit tests, alongside a new cloudstoragecommon package to handle parameter resolution. No review comments were provided, so there is no feedback to address.

@huangjiahua huangjiahua marked this pull request as ready for review June 18, 2026 19:41
@huangjiahua huangjiahua requested a review from a team as a code owner June 18, 2026 19:41

@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.

Thank you for submitting this! Can you please update the parameters with the new format here: #3314

The integration tests should also be updated to reflect the addition of these new parameters :)

@huangjiahua huangjiahua force-pushed the feat/customizable-gcs-tool-params branch from 29998d5 to 885e6a6 Compare June 24, 2026 17:21
@huangjiahua

Copy link
Copy Markdown
Contributor Author

Thanks for the review @Yuan325! Both points are addressed:

  1. New parameter format (refactor(tool/parameters): update NewParameter functions to use functional options pattern #3314): Rebased onto main and migrated all parameter construction in the Cloud Storage tools to the functional-options pattern (e.g. NewStringParameter(key, desc, parameters.WithStringRequired(false)), WithStringDefault, WithBooleanDefault, WithIntDefault). No New*ParameterWith* constructors remain.

  2. Integration tests: Added configured-variant tools to tests/cloudstorage/cloud_storage_integration_test.go that bake in the new parameters (project, location, uniform_bucket_level_access, bucket, prefix, delimiter). Each variant has a manifest assertion confirming the configured params are dropped from the exposed schema, plus an invocation test confirming the configured values are used.

go build ./..., go test -race ./internal/tools/cloudstorage/..., and golangci-lint run (v2) all pass.

@huangjiahua huangjiahua force-pushed the feat/customizable-gcs-tool-params branch from 885e6a6 to 8ec2e3e Compare June 24, 2026 17:36
@Yuan325

Yuan325 commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

/gcbrun

@Yuan325 Yuan325 self-requested a review June 24, 2026 22:16
@Yuan325

Yuan325 commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

/gcbrun

@Yuan325 Yuan325 enabled auto-merge (squash) June 24, 2026 22:29
@Yuan325 Yuan325 merged commit bc2de2a into googleapis:main Jun 24, 2026
27 checks passed
github-actions Bot pushed a commit that referenced this pull request Jun 24, 2026
)

## Description
Adds optional tool-level config fields for the first Cloud Storage tools
so configured values are hidden from runtime parameter schemas and used
during invocation. Also adds project support to create-bucket and
updates docs/tests.

This change has been communicated internally.

## PR Checklist
- [x] Make sure to open an issue as a bug/issue before writing your
code!
- [x] Ensure the tests and linter pass
- [x] Code coverage does not decrease (if any source code was changed)
- [x] Appropriate docs were updated (if necessary)
- [x] Make sure to add `!` if this involves a breaking change

## Issue Reference
N/A

Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> bc2de2a
github-actions Bot pushed a commit to rodineyw/mcp-toolbox that referenced this pull request Jun 24, 2026
…ogleapis#3478)

## Description
Adds optional tool-level config fields for the first Cloud Storage tools
so configured values are hidden from runtime parameter schemas and used
during invocation. Also adds project support to create-bucket and
updates docs/tests.

This change has been communicated internally.

## PR Checklist
- [x] Make sure to open an issue as a bug/issue before writing your
code!
- [x] Ensure the tests and linter pass
- [x] Code coverage does not decrease (if any source code was changed)
- [x] Appropriate docs were updated (if necessary)
- [x] Make sure to add `!` if this involves a breaking change

## Issue Reference
N/A

Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> bc2de2a
github-actions Bot pushed a commit to pepe57/genai-toolbox that referenced this pull request Jun 24, 2026
…ogleapis#3478)

## Description
Adds optional tool-level config fields for the first Cloud Storage tools
so configured values are hidden from runtime parameter schemas and used
during invocation. Also adds project support to create-bucket and
updates docs/tests.

This change has been communicated internally.

## PR Checklist
- [x] Make sure to open an issue as a bug/issue before writing your
code!
- [x] Ensure the tests and linter pass
- [x] Code coverage does not decrease (if any source code was changed)
- [x] Appropriate docs were updated (if necessary)
- [x] Make sure to add `!` if this involves a breaking change

## Issue Reference
N/A

Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> bc2de2a
github-actions Bot pushed a commit to Jaleel-zhu/genai-toolbox that referenced this pull request Jun 24, 2026
…ogleapis#3478)

## Description
Adds optional tool-level config fields for the first Cloud Storage tools
so configured values are hidden from runtime parameter schemas and used
during invocation. Also adds project support to create-bucket and
updates docs/tests.

This change has been communicated internally.

## PR Checklist
- [x] Make sure to open an issue as a bug/issue before writing your
code!
- [x] Ensure the tests and linter pass
- [x] Code coverage does not decrease (if any source code was changed)
- [x] Appropriate docs were updated (if necessary)
- [x] Make sure to add `!` if this involves a breaking change

## Issue Reference
N/A

Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> bc2de2a
Yuan325 added a commit that referenced this pull request Jul 1, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.6.0](v1.5.0...v1.6.0)
(2026-06-30)


### Features

* Support MCP 2026 draft specs
([#3544](#3544))
([d12eaa8](d12eaa8))
* **release:** Add digital signature to Toolbox binaries
([#3528](#3528))
([3f0f0af](3f0f0af))
* **tool/cloud-storage:** Configure object operation parameters
([#3529](#3529))
([d6dc5fe](d6dc5fe))
* **tool/cloud-storage:** Support configurable parameters
([#3478](#3478))
([bc2de2a](bc2de2a))
* **tools/dataplex-list-data-products:** Add dataplex-list-data-products
tool ([#3337](#3337))
([6dd669a](6dd669a))
* **tools/dataplex-get-data-product:** Add dataplex-get-data-product
tool ([#3499](#3499))
([7ea7a09](7ea7a09))
* **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets
tool ([#3500](#3500))
([182f933](182f933))
* **tools/looker:** Support complex filter_expression parameter in
queries ([#3494](#3494))
([997fb8c](997fb8c))
* **tools/looker:** Support dynamic_fields parameter in queries
([#3507](#3507))
([cd22b89](cd22b89))


### Bug Fixes

* **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA
client ([#3460](#3460))
([cc2a61e](cc2a61e))
* **tools/looker-conversational-analytics:** Validate explore_references
shape instead of panicking
([#3531](#3531))
([b67419d](b67419d))
* **tool/looker-create-view-from-table:** Correct Looker API payload
structure
([#3515](#3515))
([18c539c](18c539c))


---
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 1, 2026
🤖 I have created a release *beep* *boop*
---

##
[1.6.0](v1.5.0...v1.6.0)
(2026-06-30)

### Features

* Support MCP 2026 draft specs
([#3544](#3544))
([d12eaa8](d12eaa8))
* **release:** Add digital signature to Toolbox binaries
([#3528](#3528))
([3f0f0af](3f0f0af))
* **tool/cloud-storage:** Configure object operation parameters
([#3529](#3529))
([d6dc5fe](d6dc5fe))
* **tool/cloud-storage:** Support configurable parameters
([#3478](#3478))
([bc2de2a](bc2de2a))
* **tools/dataplex-list-data-products:** Add dataplex-list-data-products
tool ([#3337](#3337))
([6dd669a](6dd669a))
* **tools/dataplex-get-data-product:** Add dataplex-get-data-product
tool ([#3499](#3499))
([7ea7a09](7ea7a09))
* **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets
tool ([#3500](#3500))
([182f933](182f933))
* **tools/looker:** Support complex filter_expression parameter in
queries ([#3494](#3494))
([997fb8c](997fb8c))
* **tools/looker:** Support dynamic_fields parameter in queries
([#3507](#3507))
([cd22b89](cd22b89))

### Bug Fixes

* **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA
client ([#3460](#3460))
([cc2a61e](cc2a61e))
* **tools/looker-conversational-analytics:** Validate explore_references
shape instead of panicking
([#3531](#3531))
([b67419d](b67419d))
* **tool/looker-create-view-from-table:** Correct Looker API payload
structure
([#3515](#3515))
([18c539c](18c539c))

---
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> 35c13ad
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.

2 participants