feat: Support combining multiple prebuilt configurations#2295
Conversation
Summary of ChangesHello @dishaprakash, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the configuration flexibility of the CLI by introducing the ability to combine multiple prebuilt tool configurations. This change moves from a single prebuilt configuration to supporting a list, enabling users to compose their desired tool environments more granularly. The implementation includes necessary updates to command-line argument parsing and the core configuration loading mechanism, alongside safeguards to prevent resource conflicts when combining configurations. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces support for combining multiple prebuilt configurations, which is a valuable feature enhancement. The implementation is solid, correctly handling multiple --prebuilt flags and comma-separated values. The associated tests are comprehensive, covering new functionality, edge cases like duplicate configurations, and potential conflicts. The changes are well-contained and logical. I have one minor suggestion regarding code formatting for improved maintainability.
|
🧨 Preview deployments removed. |
## Description This PR introduces support for merging multiple prebuilt configurations. To ensure compatibility, the following restrictions apply: - No Naming Collisions: Configurations cannot share duplicate names for any resources (Tools, Sources, Toolsets, Auth Services, etc.). - Shared Environment Variables: If multiple sources rely on the same environment variable, they must share the same value; unique values for the same variable are not supported ## Usage Examples ### Successful Initialization You can load multiple prebuilt configurations by either repeating the --prebuilt flag or by providing a comma-separated list. **Option 1:** Multiple Flags ``` ./toolbox --prebuilt alloydb-postgres --prebuilt alloydb-postgres-admin ``` **Option 2:** Comma-Separated Values ``` ./toolbox --prebuilt alloydb-postgres,alloydb-postgres-admin ``` ### Initialization Failure (Resource Conflict) If two or more configurations define a resource with the same name (such as a Tool or Source, etc.), the server will fail to start and display a conflict error. ``` ./toolbox --prebuilt alloydb-postgres --prebuilt cloud-sql-mysql 2026-01-13T11:14:50.758121799Z INFO "Using prebuilt tool configurations for: alloydb-postgres, cloud-sql-mysql" 2026-01-13T11:14:50.764578167Z ERROR "resource conflicts detected:\n - tool 'execute_sql' (file #2)\n - tool 'list_active_queries' (file #2)\n - tool 'get_query_plan' (file #2)\n - tool 'list_tables' (file #2)\n\nPlease ensure each source, authService, tool, toolset and prompt has a unique name across all files" ``` ## PR Checklist > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [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 involve a breaking change 🛠️ Fixes #1855 --------- Co-authored-by: Averi Kitsch <akitsch@google.com> e535b37
…gleapis#2295) ## Description This PR introduces support for merging multiple prebuilt configurations. To ensure compatibility, the following restrictions apply: - No Naming Collisions: Configurations cannot share duplicate names for any resources (Tools, Sources, Toolsets, Auth Services, etc.). - Shared Environment Variables: If multiple sources rely on the same environment variable, they must share the same value; unique values for the same variable are not supported ## Usage Examples ### Successful Initialization You can load multiple prebuilt configurations by either repeating the --prebuilt flag or by providing a comma-separated list. **Option 1:** Multiple Flags ``` ./toolbox --prebuilt alloydb-postgres --prebuilt alloydb-postgres-admin ``` **Option 2:** Comma-Separated Values ``` ./toolbox --prebuilt alloydb-postgres,alloydb-postgres-admin ``` ### Initialization Failure (Resource Conflict) If two or more configurations define a resource with the same name (such as a Tool or Source, etc.), the server will fail to start and display a conflict error. ``` ./toolbox --prebuilt alloydb-postgres --prebuilt cloud-sql-mysql 2026-01-13T11:14:50.758121799Z INFO "Using prebuilt tool configurations for: alloydb-postgres, cloud-sql-mysql" 2026-01-13T11:14:50.764578167Z ERROR "resource conflicts detected:\n - tool 'execute_sql' (file googleapis#2)\n - tool 'list_active_queries' (file googleapis#2)\n - tool 'get_query_plan' (file googleapis#2)\n - tool 'list_tables' (file googleapis#2)\n\nPlease ensure each source, authService, tool, toolset and prompt has a unique name across all files" ``` ## PR Checklist > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [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 involve a breaking change 🛠️ Fixes googleapis#1855 --------- Co-authored-by: Averi Kitsch <akitsch@google.com> e535b37
…gleapis#2295) ## Description This PR introduces support for merging multiple prebuilt configurations. To ensure compatibility, the following restrictions apply: - No Naming Collisions: Configurations cannot share duplicate names for any resources (Tools, Sources, Toolsets, Auth Services, etc.). - Shared Environment Variables: If multiple sources rely on the same environment variable, they must share the same value; unique values for the same variable are not supported ## Usage Examples ### Successful Initialization You can load multiple prebuilt configurations by either repeating the --prebuilt flag or by providing a comma-separated list. **Option 1:** Multiple Flags ``` ./toolbox --prebuilt alloydb-postgres --prebuilt alloydb-postgres-admin ``` **Option 2:** Comma-Separated Values ``` ./toolbox --prebuilt alloydb-postgres,alloydb-postgres-admin ``` ### Initialization Failure (Resource Conflict) If two or more configurations define a resource with the same name (such as a Tool or Source, etc.), the server will fail to start and display a conflict error. ``` ./toolbox --prebuilt alloydb-postgres --prebuilt cloud-sql-mysql 2026-01-13T11:14:50.758121799Z INFO "Using prebuilt tool configurations for: alloydb-postgres, cloud-sql-mysql" 2026-01-13T11:14:50.764578167Z ERROR "resource conflicts detected:\n - tool 'execute_sql' (file #2)\n - tool 'list_active_queries' (file #2)\n - tool 'get_query_plan' (file #2)\n - tool 'list_tables' (file #2)\n\nPlease ensure each source, authService, tool, toolset and prompt has a unique name across all files" ``` ## PR Checklist > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [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 involve a breaking change 🛠️ Fixes googleapis#1855 --------- Co-authored-by: Averi Kitsch <akitsch@google.com> e535b37
🤖 I have created a release *beep* *boop* --- ## [0.26.0](v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([#2305](#2305)) ([5054212](5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([#2288](#2288)) ([6b02591](6b02591)) ### Features * Add new `user-agent-metadata` flag ([#2302](#2302)) ([adc9589](adc9589)) * Add remaining flag to Toolbox server in MCP registry ([#2272](#2272)) ([5e0999e](5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([#2310](#2310)) ([e4f60e5](e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([#2262](#2262)) ([4abf0c3](4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([#2141](#2141)) ([8e0fb03](8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([#2171](#2171)) ([00c3e6d](00c3e6d)) * Support combining multiple prebuilt configurations ([#2295](#2295)) ([e535b37](e535b37)) * Support MCP specs version 2025-11-25 ([#2303](#2303)) ([4d23a3b](4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([#2333](#2333)) ([15101b1](15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([#2327](#2327)) ([c25a233](c25a233)) --- 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* --- ## [0.26.0](v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([#2305](#2305)) ([5054212](5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([#2288](#2288)) ([6b02591](6b02591)) ### Features * Add new `user-agent-metadata` flag ([#2302](#2302)) ([adc9589](adc9589)) * Add remaining flag to Toolbox server in MCP registry ([#2272](#2272)) ([5e0999e](5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([#2310](#2310)) ([e4f60e5](e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([#2262](#2262)) ([4abf0c3](4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([#2141](#2141)) ([8e0fb03](8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([#2171](#2171)) ([00c3e6d](00c3e6d)) * Support combining multiple prebuilt configurations ([#2295](#2295)) ([e535b37](e535b37)) * Support MCP specs version 2025-11-25 ([#2303](#2303)) ([4d23a3b](4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([#2333](#2333)) ([15101b1](15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([#2327](#2327)) ([c25a233](c25a233)) --- 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> 86bf7bf
🤖 I have created a release *beep* *boop* --- ## [0.26.0](googleapis/mcp-toolbox@v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([googleapis#2305](googleapis#2305)) ([5054212](googleapis@5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([googleapis#2288](googleapis#2288)) ([6b02591](googleapis@6b02591)) ### Features * Add new `user-agent-metadata` flag ([googleapis#2302](googleapis#2302)) ([adc9589](googleapis@adc9589)) * Add remaining flag to Toolbox server in MCP registry ([googleapis#2272](googleapis#2272)) ([5e0999e](googleapis@5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([googleapis#2310](googleapis#2310)) ([e4f60e5](googleapis@e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([googleapis#2262](googleapis#2262)) ([4abf0c3](googleapis@4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([googleapis#2141](googleapis#2141)) ([8e0fb03](googleapis@8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([googleapis#2171](googleapis#2171)) ([00c3e6d](googleapis@00c3e6d)) * Support combining multiple prebuilt configurations ([googleapis#2295](googleapis#2295)) ([e535b37](googleapis@e535b37)) * Support MCP specs version 2025-11-25 ([googleapis#2303](googleapis#2303)) ([4d23a3b](googleapis@4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([googleapis#2333](googleapis#2333)) ([15101b1](googleapis@15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([googleapis#2327](googleapis#2327)) ([c25a233](googleapis@c25a233)) --- 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> 86bf7bf
🤖 I have created a release *beep* *boop* --- ## [0.26.0](googleapis/mcp-toolbox@v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([googleapis#2305](googleapis#2305)) ([5054212](googleapis@5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([googleapis#2288](googleapis#2288)) ([6b02591](googleapis@6b02591)) ### Features * Add new `user-agent-metadata` flag ([googleapis#2302](googleapis#2302)) ([adc9589](googleapis@adc9589)) * Add remaining flag to Toolbox server in MCP registry ([googleapis#2272](googleapis#2272)) ([5e0999e](googleapis@5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([googleapis#2310](googleapis#2310)) ([e4f60e5](googleapis@e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([googleapis#2262](googleapis#2262)) ([4abf0c3](googleapis@4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([googleapis#2141](googleapis#2141)) ([8e0fb03](googleapis@8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([googleapis#2171](googleapis#2171)) ([00c3e6d](googleapis@00c3e6d)) * Support combining multiple prebuilt configurations ([googleapis#2295](googleapis#2295)) ([e535b37](googleapis@e535b37)) * Support MCP specs version 2025-11-25 ([googleapis#2303](googleapis#2303)) ([4d23a3b](googleapis@4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([googleapis#2333](googleapis#2333)) ([15101b1](googleapis@15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([googleapis#2327](googleapis#2327)) ([c25a233](googleapis@c25a233)) --- 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> 86bf7bf
🤖 I have created a release *beep* *boop* --- ## [0.26.0](googleapis/mcp-toolbox@v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([googleapis#2305](googleapis#2305)) ([5054212](googleapis@5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([googleapis#2288](googleapis#2288)) ([6b02591](googleapis@6b02591)) ### Features * Add new `user-agent-metadata` flag ([googleapis#2302](googleapis#2302)) ([adc9589](googleapis@adc9589)) * Add remaining flag to Toolbox server in MCP registry ([googleapis#2272](googleapis#2272)) ([5e0999e](googleapis@5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([googleapis#2310](googleapis#2310)) ([e4f60e5](googleapis@e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([googleapis#2262](googleapis#2262)) ([4abf0c3](googleapis@4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([googleapis#2141](googleapis#2141)) ([8e0fb03](googleapis@8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([googleapis#2171](googleapis#2171)) ([00c3e6d](googleapis@00c3e6d)) * Support combining multiple prebuilt configurations ([googleapis#2295](googleapis#2295)) ([e535b37](googleapis@e535b37)) * Support MCP specs version 2025-11-25 ([googleapis#2303](googleapis#2303)) ([4d23a3b](googleapis@4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([googleapis#2333](googleapis#2333)) ([15101b1](googleapis@15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([googleapis#2327](googleapis#2327)) ([c25a233](googleapis@c25a233)) --- 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> 86bf7bf
🤖 I have created a release *beep* *boop* --- ## [0.26.0](googleapis/mcp-toolbox@v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([googleapis#2305](googleapis#2305)) ([5054212](googleapis@5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([googleapis#2288](googleapis#2288)) ([6b02591](googleapis@6b02591)) ### Features * Add new `user-agent-metadata` flag ([googleapis#2302](googleapis#2302)) ([adc9589](googleapis@adc9589)) * Add remaining flag to Toolbox server in MCP registry ([googleapis#2272](googleapis#2272)) ([5e0999e](googleapis@5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([googleapis#2310](googleapis#2310)) ([e4f60e5](googleapis@e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([googleapis#2262](googleapis#2262)) ([4abf0c3](googleapis@4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([googleapis#2141](googleapis#2141)) ([8e0fb03](googleapis@8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([googleapis#2171](googleapis#2171)) ([00c3e6d](googleapis@00c3e6d)) * Support combining multiple prebuilt configurations ([googleapis#2295](googleapis#2295)) ([e535b37](googleapis@e535b37)) * Support MCP specs version 2025-11-25 ([googleapis#2303](googleapis#2303)) ([4d23a3b](googleapis@4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([googleapis#2333](googleapis#2333)) ([15101b1](googleapis@15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([googleapis#2327](googleapis#2327)) ([c25a233](googleapis@c25a233)) --- 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> 86bf7bf
🤖 I have created a release *beep* *boop* --- ## [0.26.0](googleapis/mcp-toolbox@v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([googleapis#2305](googleapis#2305)) ([5054212](googleapis@5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([googleapis#2288](googleapis#2288)) ([6b02591](googleapis@6b02591)) ### Features * Add new `user-agent-metadata` flag ([googleapis#2302](googleapis#2302)) ([adc9589](googleapis@adc9589)) * Add remaining flag to Toolbox server in MCP registry ([googleapis#2272](googleapis#2272)) ([5e0999e](googleapis@5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([googleapis#2310](googleapis#2310)) ([e4f60e5](googleapis@e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([googleapis#2262](googleapis#2262)) ([4abf0c3](googleapis@4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([googleapis#2141](googleapis#2141)) ([8e0fb03](googleapis@8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([googleapis#2171](googleapis#2171)) ([00c3e6d](googleapis@00c3e6d)) * Support combining multiple prebuilt configurations ([googleapis#2295](googleapis#2295)) ([e535b37](googleapis@e535b37)) * Support MCP specs version 2025-11-25 ([googleapis#2303](googleapis#2303)) ([4d23a3b](googleapis@4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([googleapis#2333](googleapis#2333)) ([15101b1](googleapis@15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([googleapis#2327](googleapis#2327)) ([c25a233](googleapis@c25a233)) --- 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> 86bf7bf
🤖 I have created a release *beep* *boop* --- ## [0.26.0](googleapis/mcp-toolbox@v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([googleapis#2305](googleapis#2305)) ([5054212](googleapis@5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([googleapis#2288](googleapis#2288)) ([6b02591](googleapis@6b02591)) ### Features * Add new `user-agent-metadata` flag ([googleapis#2302](googleapis#2302)) ([adc9589](googleapis@adc9589)) * Add remaining flag to Toolbox server in MCP registry ([googleapis#2272](googleapis#2272)) ([5e0999e](googleapis@5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([googleapis#2310](googleapis#2310)) ([e4f60e5](googleapis@e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([googleapis#2262](googleapis#2262)) ([4abf0c3](googleapis@4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([googleapis#2141](googleapis#2141)) ([8e0fb03](googleapis@8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([googleapis#2171](googleapis#2171)) ([00c3e6d](googleapis@00c3e6d)) * Support combining multiple prebuilt configurations ([googleapis#2295](googleapis#2295)) ([e535b37](googleapis@e535b37)) * Support MCP specs version 2025-11-25 ([googleapis#2303](googleapis#2303)) ([4d23a3b](googleapis@4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([googleapis#2333](googleapis#2333)) ([15101b1](googleapis@15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([googleapis#2327](googleapis#2327)) ([c25a233](googleapis@c25a233)) --- 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> 86bf7bf
…2295) ## Description This PR introduces support for merging multiple prebuilt configurations. To ensure compatibility, the following restrictions apply: - No Naming Collisions: Configurations cannot share duplicate names for any resources (Tools, Sources, Toolsets, Auth Services, etc.). - Shared Environment Variables: If multiple sources rely on the same environment variable, they must share the same value; unique values for the same variable are not supported ## Usage Examples ### Successful Initialization You can load multiple prebuilt configurations by either repeating the --prebuilt flag or by providing a comma-separated list. **Option 1:** Multiple Flags ``` ./toolbox --prebuilt alloydb-postgres --prebuilt alloydb-postgres-admin ``` **Option 2:** Comma-Separated Values ``` ./toolbox --prebuilt alloydb-postgres,alloydb-postgres-admin ``` ### Initialization Failure (Resource Conflict) If two or more configurations define a resource with the same name (such as a Tool or Source, etc.), the server will fail to start and display a conflict error. ``` ./toolbox --prebuilt alloydb-postgres --prebuilt cloud-sql-mysql 2026-01-13T11:14:50.758121799Z INFO "Using prebuilt tool configurations for: alloydb-postgres, cloud-sql-mysql" 2026-01-13T11:14:50.764578167Z ERROR "resource conflicts detected:\n - tool 'execute_sql' (file googleapis#2)\n - tool 'list_active_queries' (file googleapis#2)\n - tool 'get_query_plan' (file googleapis#2)\n - tool 'list_tables' (file googleapis#2)\n\nPlease ensure each source, authService, tool, toolset and prompt has a unique name across all files" ``` ## PR Checklist > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [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 involve a breaking change 🛠️ Fixes googleapis#1855 --------- Co-authored-by: Averi Kitsch <akitsch@google.com>
🤖 I have created a release *beep* *boop* --- ## [0.26.0](googleapis/mcp-toolbox@v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([googleapis#2305](googleapis#2305)) ([5054212](googleapis@5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([googleapis#2288](googleapis#2288)) ([6b02591](googleapis@6b02591)) ### Features * Add new `user-agent-metadata` flag ([googleapis#2302](googleapis#2302)) ([adc9589](googleapis@adc9589)) * Add remaining flag to Toolbox server in MCP registry ([googleapis#2272](googleapis#2272)) ([5e0999e](googleapis@5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([googleapis#2310](googleapis#2310)) ([e4f60e5](googleapis@e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([googleapis#2262](googleapis#2262)) ([4abf0c3](googleapis@4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([googleapis#2141](googleapis#2141)) ([8e0fb03](googleapis@8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([googleapis#2171](googleapis#2171)) ([00c3e6d](googleapis@00c3e6d)) * Support combining multiple prebuilt configurations ([googleapis#2295](googleapis#2295)) ([e535b37](googleapis@e535b37)) * Support MCP specs version 2025-11-25 ([googleapis#2303](googleapis#2303)) ([4d23a3b](googleapis@4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([googleapis#2333](googleapis#2333)) ([15101b1](googleapis@15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([googleapis#2327](googleapis#2327)) ([c25a233](googleapis@c25a233)) --- 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>
…2295) ## Description This PR introduces support for merging multiple prebuilt configurations. To ensure compatibility, the following restrictions apply: - No Naming Collisions: Configurations cannot share duplicate names for any resources (Tools, Sources, Toolsets, Auth Services, etc.). - Shared Environment Variables: If multiple sources rely on the same environment variable, they must share the same value; unique values for the same variable are not supported ## Usage Examples ### Successful Initialization You can load multiple prebuilt configurations by either repeating the --prebuilt flag or by providing a comma-separated list. **Option 1:** Multiple Flags ``` ./toolbox --prebuilt alloydb-postgres --prebuilt alloydb-postgres-admin ``` **Option 2:** Comma-Separated Values ``` ./toolbox --prebuilt alloydb-postgres,alloydb-postgres-admin ``` ### Initialization Failure (Resource Conflict) If two or more configurations define a resource with the same name (such as a Tool or Source, etc.), the server will fail to start and display a conflict error. ``` ./toolbox --prebuilt alloydb-postgres --prebuilt cloud-sql-mysql 2026-01-13T11:14:50.758121799Z INFO "Using prebuilt tool configurations for: alloydb-postgres, cloud-sql-mysql" 2026-01-13T11:14:50.764578167Z ERROR "resource conflicts detected:\n - tool 'execute_sql' (file googleapis#2)\n - tool 'list_active_queries' (file googleapis#2)\n - tool 'get_query_plan' (file googleapis#2)\n - tool 'list_tables' (file googleapis#2)\n\nPlease ensure each source, authService, tool, toolset and prompt has a unique name across all files" ``` ## PR Checklist > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [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 involve a breaking change 🛠️ Fixes googleapis#1855 --------- Co-authored-by: Averi Kitsch <akitsch@google.com>
🤖 I have created a release *beep* *boop* --- ## [0.26.0](googleapis/mcp-toolbox@v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([googleapis#2305](googleapis#2305)) ([5054212](googleapis@5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([googleapis#2288](googleapis#2288)) ([6b02591](googleapis@6b02591)) ### Features * Add new `user-agent-metadata` flag ([googleapis#2302](googleapis#2302)) ([adc9589](googleapis@adc9589)) * Add remaining flag to Toolbox server in MCP registry ([googleapis#2272](googleapis#2272)) ([5e0999e](googleapis@5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([googleapis#2310](googleapis#2310)) ([e4f60e5](googleapis@e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([googleapis#2262](googleapis#2262)) ([4abf0c3](googleapis@4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([googleapis#2141](googleapis#2141)) ([8e0fb03](googleapis@8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([googleapis#2171](googleapis#2171)) ([00c3e6d](googleapis@00c3e6d)) * Support combining multiple prebuilt configurations ([googleapis#2295](googleapis#2295)) ([e535b37](googleapis@e535b37)) * Support MCP specs version 2025-11-25 ([googleapis#2303](googleapis#2303)) ([4d23a3b](googleapis@4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([googleapis#2333](googleapis#2333)) ([15101b1](googleapis@15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([googleapis#2327](googleapis#2327)) ([c25a233](googleapis@c25a233)) --- 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>
…2295) ## Description This PR introduces support for merging multiple prebuilt configurations. To ensure compatibility, the following restrictions apply: - No Naming Collisions: Configurations cannot share duplicate names for any resources (Tools, Sources, Toolsets, Auth Services, etc.). - Shared Environment Variables: If multiple sources rely on the same environment variable, they must share the same value; unique values for the same variable are not supported ## Usage Examples ### Successful Initialization You can load multiple prebuilt configurations by either repeating the --prebuilt flag or by providing a comma-separated list. **Option 1:** Multiple Flags ``` ./toolbox --prebuilt alloydb-postgres --prebuilt alloydb-postgres-admin ``` **Option 2:** Comma-Separated Values ``` ./toolbox --prebuilt alloydb-postgres,alloydb-postgres-admin ``` ### Initialization Failure (Resource Conflict) If two or more configurations define a resource with the same name (such as a Tool or Source, etc.), the server will fail to start and display a conflict error. ``` ./toolbox --prebuilt alloydb-postgres --prebuilt cloud-sql-mysql 2026-01-13T11:14:50.758121799Z INFO "Using prebuilt tool configurations for: alloydb-postgres, cloud-sql-mysql" 2026-01-13T11:14:50.764578167Z ERROR "resource conflicts detected:\n - tool 'execute_sql' (file #2)\n - tool 'list_active_queries' (file #2)\n - tool 'get_query_plan' (file #2)\n - tool 'list_tables' (file #2)\n\nPlease ensure each source, authService, tool, toolset and prompt has a unique name across all files" ``` ## PR Checklist > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [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 involve a breaking change 🛠️ Fixes googleapis#1855 --------- Co-authored-by: Averi Kitsch <akitsch@google.com>
🤖 I have created a release *beep* *boop* --- ## [0.26.0](googleapis/mcp-toolbox@v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([googleapis#2305](googleapis#2305)) ([5054212](googleapis@5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([googleapis#2288](googleapis#2288)) ([6b02591](googleapis@6b02591)) ### Features * Add new `user-agent-metadata` flag ([googleapis#2302](googleapis#2302)) ([adc9589](googleapis@adc9589)) * Add remaining flag to Toolbox server in MCP registry ([googleapis#2272](googleapis#2272)) ([5e0999e](googleapis@5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([googleapis#2310](googleapis#2310)) ([e4f60e5](googleapis@e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([googleapis#2262](googleapis#2262)) ([4abf0c3](googleapis@4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([googleapis#2141](googleapis#2141)) ([8e0fb03](googleapis@8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([googleapis#2171](googleapis#2171)) ([00c3e6d](googleapis@00c3e6d)) * Support combining multiple prebuilt configurations ([googleapis#2295](googleapis#2295)) ([e535b37](googleapis@e535b37)) * Support MCP specs version 2025-11-25 ([googleapis#2303](googleapis#2303)) ([4d23a3b](googleapis@4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([googleapis#2333](googleapis#2333)) ([15101b1](googleapis@15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([googleapis#2327](googleapis#2327)) ([c25a233](googleapis@c25a233)) --- 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* --- ## [0.26.0](googleapis/mcp-toolbox@v0.25.0...v0.26.0) (2026-01-22) ### ⚠ BREAKING CHANGES * Validate tool naming ([#2305](googleapis/mcp-toolbox#2305)) ([5054212](googleapis/mcp-toolbox@5054212)) * **tools/cloudgda:** Update description and parameter name for cloudgda tool ([#2288](googleapis/mcp-toolbox#2288)) ([6b02591](googleapis/mcp-toolbox@6b02591)) ### Features * Add new `user-agent-metadata` flag ([#2302](googleapis/mcp-toolbox#2302)) ([adc9589](googleapis/mcp-toolbox@adc9589)) * Add remaining flag to Toolbox server in MCP registry ([#2272](googleapis/mcp-toolbox#2272)) ([5e0999e](googleapis/mcp-toolbox@5e0999e)) * **embeddingModel:** Add embedding model to MCP handler ([#2310](googleapis/mcp-toolbox#2310)) ([e4f60e5](googleapis/mcp-toolbox@e4f60e5)) * **sources/bigquery:** Make maximum rows returned from queries configurable ([#2262](googleapis/mcp-toolbox#2262)) ([4abf0c3](googleapis/mcp-toolbox@4abf0c3)) * **prebuilt/cloud-sql:** Add create backup tool for Cloud SQL ([#2141](googleapis/mcp-toolbox#2141)) ([8e0fb03](googleapis/mcp-toolbox@8e0fb03)) * **prebuilt/cloud-sql:** Add restore backup tool for Cloud SQL ([#2171](googleapis/mcp-toolbox#2171)) ([00c3e6d](googleapis/mcp-toolbox@00c3e6d)) * Support combining multiple prebuilt configurations ([#2295](googleapis/mcp-toolbox#2295)) ([e535b37](googleapis/mcp-toolbox@e535b37)) * Support MCP specs version 2025-11-25 ([#2303](googleapis/mcp-toolbox#2303)) ([4d23a3b](googleapis/mcp-toolbox@4d23a3b)) * **tools:** Add `valueFromParam` support to Tool config ([#2333](googleapis/mcp-toolbox#2333)) ([15101b1](googleapis/mcp-toolbox@15101b1)) ### Bug Fixes * **tools/cloudhealthcare:** Add check for client authorization before retrieving token string ([#2327](googleapis/mcp-toolbox#2327)) ([c25a233](googleapis/mcp-toolbox@c25a233)) --- 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>
Description
This PR introduces support for merging multiple prebuilt configurations. To ensure compatibility, the following restrictions apply:
Usage Examples
Successful Initialization
You can load multiple prebuilt configurations by either repeating the --prebuilt flag or by providing a comma-separated list.
Option 1: Multiple Flags
Option 2: Comma-Separated Values
Initialization Failure (Resource Conflict)
If two or more configurations define a resource with the same name (such as a Tool or Source, etc.), the server will fail to start and display a conflict error.
PR Checklist
CONTRIBUTING.md
bug/issue
before writing your code! That way we can discuss the change, evaluate
designs, and agree on the general idea
!if this involve a breaking change🛠️ Fixes #1855