Repository navigation
fix(looker): validate explore_references shape instead of panicking - #3531
drstrangelooker merged 1 commit into
Conversation
The looker-conversational-analytics tool read explore_references with
chained, unchecked type assertions:
LookmlModel: er.(map[string]any)["model"].(string),
Explore: er.(map[string]any)["explore"].(string),
explore_references is declared as an array of free-form maps
(NewMapParameter with an empty value type), so the entries the model
supplies are never schema-validated. A reference that is not an object,
omits "model"/"explore", or carries a non-string value, panics the tool
on the type assertion rather than returning a usable error. Models drop
or mistype those fields often enough that this is reachable in normal
operation.
Move the parsing into a small helper that checks each element and field
and returns a clear agent error, matching the validation already done in
datalineagesearchlineage. Add unit tests covering the valid, empty, and
malformed cases.
Signed-off-by: Yufeng He <40085740+he-yufeng@users.noreply.github.com>
There was a problem hiding this comment.
Code Review
This pull request introduces a new helper function parseExploreReferences to safely parse the explore_references parameter in the Looker Conversational Analytics tool. This replaces direct type assertions with proper type checking and validation to prevent potential panics from unexpected shapes. Additionally, a comprehensive suite of unit tests has been added in lookerconversationalanalytics_internal_test.go to cover valid inputs, nil inputs, and various error scenarios. There are no review comments, and I have no feedback to provide.
|
/gcbrun |
|
/gcbrun |
🤖 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>
🤖 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
🤖 I have created a release *beep* *boop* --- ## [1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0) (2026-06-30) ### Features * Support MCP 2026 draft specs ([googleapis#3544](googleapis#3544)) ([d12eaa8](googleapis@d12eaa8)) * **release:** Add digital signature to Toolbox binaries ([googleapis#3528](googleapis#3528)) ([3f0f0af](googleapis@3f0f0af)) * **tool/cloud-storage:** Configure object operation parameters ([googleapis#3529](googleapis#3529)) ([d6dc5fe](googleapis@d6dc5fe)) * **tool/cloud-storage:** Support configurable parameters ([googleapis#3478](googleapis#3478)) ([bc2de2a](googleapis@bc2de2a)) * **tools/dataplex-list-data-products:** Add dataplex-list-data-products tool ([googleapis#3337](googleapis#3337)) ([6dd669a](googleapis@6dd669a)) * **tools/dataplex-get-data-product:** Add dataplex-get-data-product tool ([googleapis#3499](googleapis#3499)) ([7ea7a09](googleapis@7ea7a09)) * **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets tool ([googleapis#3500](googleapis#3500)) ([182f933](googleapis@182f933)) * **tools/looker:** Support complex filter_expression parameter in queries ([googleapis#3494](googleapis#3494)) ([997fb8c](googleapis@997fb8c)) * **tools/looker:** Support dynamic_fields parameter in queries ([googleapis#3507](googleapis#3507)) ([cd22b89](googleapis@cd22b89)) ### Bug Fixes * **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA client ([googleapis#3460](googleapis#3460)) ([cc2a61e](googleapis@cc2a61e)) * **tools/looker-conversational-analytics:** Validate explore_references shape instead of panicking ([googleapis#3531](googleapis#3531)) ([b67419d](googleapis@b67419d)) * **tool/looker-create-view-from-table:** Correct Looker API payload structure ([googleapis#3515](googleapis#3515)) ([18c539c](googleapis@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
🤖 I have created a release *beep* *boop* --- ## [1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0) (2026-06-30) ### Features * Support MCP 2026 draft specs ([googleapis#3544](googleapis#3544)) ([d12eaa8](googleapis@d12eaa8)) * **release:** Add digital signature to Toolbox binaries ([googleapis#3528](googleapis#3528)) ([3f0f0af](googleapis@3f0f0af)) * **tool/cloud-storage:** Configure object operation parameters ([googleapis#3529](googleapis#3529)) ([d6dc5fe](googleapis@d6dc5fe)) * **tool/cloud-storage:** Support configurable parameters ([googleapis#3478](googleapis#3478)) ([bc2de2a](googleapis@bc2de2a)) * **tools/dataplex-list-data-products:** Add dataplex-list-data-products tool ([googleapis#3337](googleapis#3337)) ([6dd669a](googleapis@6dd669a)) * **tools/dataplex-get-data-product:** Add dataplex-get-data-product tool ([googleapis#3499](googleapis#3499)) ([7ea7a09](googleapis@7ea7a09)) * **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets tool ([googleapis#3500](googleapis#3500)) ([182f933](googleapis@182f933)) * **tools/looker:** Support complex filter_expression parameter in queries ([googleapis#3494](googleapis#3494)) ([997fb8c](googleapis@997fb8c)) * **tools/looker:** Support dynamic_fields parameter in queries ([googleapis#3507](googleapis#3507)) ([cd22b89](googleapis@cd22b89)) ### Bug Fixes * **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA client ([googleapis#3460](googleapis#3460)) ([cc2a61e](googleapis@cc2a61e)) * **tools/looker-conversational-analytics:** Validate explore_references shape instead of panicking ([googleapis#3531](googleapis#3531)) ([b67419d](googleapis@b67419d)) * **tool/looker-create-view-from-table:** Correct Looker API payload structure ([googleapis#3515](googleapis#3515)) ([18c539c](googleapis@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
🤖 I have created a release *beep* *boop* --- ## [1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0) (2026-06-30) ### Features * Support MCP 2026 draft specs ([googleapis#3544](googleapis#3544)) ([d12eaa8](googleapis@d12eaa8)) * **release:** Add digital signature to Toolbox binaries ([googleapis#3528](googleapis#3528)) ([3f0f0af](googleapis@3f0f0af)) * **tool/cloud-storage:** Configure object operation parameters ([googleapis#3529](googleapis#3529)) ([d6dc5fe](googleapis@d6dc5fe)) * **tool/cloud-storage:** Support configurable parameters ([googleapis#3478](googleapis#3478)) ([bc2de2a](googleapis@bc2de2a)) * **tools/dataplex-list-data-products:** Add dataplex-list-data-products tool ([googleapis#3337](googleapis#3337)) ([6dd669a](googleapis@6dd669a)) * **tools/dataplex-get-data-product:** Add dataplex-get-data-product tool ([googleapis#3499](googleapis#3499)) ([7ea7a09](googleapis@7ea7a09)) * **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets tool ([googleapis#3500](googleapis#3500)) ([182f933](googleapis@182f933)) * **tools/looker:** Support complex filter_expression parameter in queries ([googleapis#3494](googleapis#3494)) ([997fb8c](googleapis@997fb8c)) * **tools/looker:** Support dynamic_fields parameter in queries ([googleapis#3507](googleapis#3507)) ([cd22b89](googleapis@cd22b89)) ### Bug Fixes * **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA client ([googleapis#3460](googleapis#3460)) ([cc2a61e](googleapis@cc2a61e)) * **tools/looker-conversational-analytics:** Validate explore_references shape instead of panicking ([googleapis#3531](googleapis#3531)) ([b67419d](googleapis@b67419d)) * **tool/looker-create-view-from-table:** Correct Looker API payload structure ([googleapis#3515](googleapis#3515)) ([18c539c](googleapis@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
🤖 I have created a release *beep* *boop* --- ## [1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0) (2026-06-30) ### Features * Support MCP 2026 draft specs ([googleapis#3544](googleapis#3544)) ([d12eaa8](googleapis@d12eaa8)) * **release:** Add digital signature to Toolbox binaries ([googleapis#3528](googleapis#3528)) ([3f0f0af](googleapis@3f0f0af)) * **tool/cloud-storage:** Configure object operation parameters ([googleapis#3529](googleapis#3529)) ([d6dc5fe](googleapis@d6dc5fe)) * **tool/cloud-storage:** Support configurable parameters ([googleapis#3478](googleapis#3478)) ([bc2de2a](googleapis@bc2de2a)) * **tools/dataplex-list-data-products:** Add dataplex-list-data-products tool ([googleapis#3337](googleapis#3337)) ([6dd669a](googleapis@6dd669a)) * **tools/dataplex-get-data-product:** Add dataplex-get-data-product tool ([googleapis#3499](googleapis#3499)) ([7ea7a09](googleapis@7ea7a09)) * **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets tool ([googleapis#3500](googleapis#3500)) ([182f933](googleapis@182f933)) * **tools/looker:** Support complex filter_expression parameter in queries ([googleapis#3494](googleapis#3494)) ([997fb8c](googleapis@997fb8c)) * **tools/looker:** Support dynamic_fields parameter in queries ([googleapis#3507](googleapis#3507)) ([cd22b89](googleapis@cd22b89)) ### Bug Fixes * **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA client ([googleapis#3460](googleapis#3460)) ([cc2a61e](googleapis@cc2a61e)) * **tools/looker-conversational-analytics:** Validate explore_references shape instead of panicking ([googleapis#3531](googleapis#3531)) ([b67419d](googleapis@b67419d)) * **tool/looker-create-view-from-table:** Correct Looker API payload structure ([googleapis#3515](googleapis#3515)) ([18c539c](googleapis@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
🤖 I have created a release *beep* *boop* --- ## [1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0) (2026-06-30) ### Features * Support MCP 2026 draft specs ([googleapis#3544](googleapis#3544)) ([d12eaa8](googleapis@d12eaa8)) * **release:** Add digital signature to Toolbox binaries ([googleapis#3528](googleapis#3528)) ([3f0f0af](googleapis@3f0f0af)) * **tool/cloud-storage:** Configure object operation parameters ([googleapis#3529](googleapis#3529)) ([d6dc5fe](googleapis@d6dc5fe)) * **tool/cloud-storage:** Support configurable parameters ([googleapis#3478](googleapis#3478)) ([bc2de2a](googleapis@bc2de2a)) * **tools/dataplex-list-data-products:** Add dataplex-list-data-products tool ([googleapis#3337](googleapis#3337)) ([6dd669a](googleapis@6dd669a)) * **tools/dataplex-get-data-product:** Add dataplex-get-data-product tool ([googleapis#3499](googleapis#3499)) ([7ea7a09](googleapis@7ea7a09)) * **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets tool ([googleapis#3500](googleapis#3500)) ([182f933](googleapis@182f933)) * **tools/looker:** Support complex filter_expression parameter in queries ([googleapis#3494](googleapis#3494)) ([997fb8c](googleapis@997fb8c)) * **tools/looker:** Support dynamic_fields parameter in queries ([googleapis#3507](googleapis#3507)) ([cd22b89](googleapis@cd22b89)) ### Bug Fixes * **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA client ([googleapis#3460](googleapis#3460)) ([cc2a61e](googleapis@cc2a61e)) * **tools/looker-conversational-analytics:** Validate explore_references shape instead of panicking ([googleapis#3531](googleapis#3531)) ([b67419d](googleapis@b67419d)) * **tool/looker-create-view-from-table:** Correct Looker API payload structure ([googleapis#3515](googleapis#3515)) ([18c539c](googleapis@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
🤖 I have created a release *beep* *boop* --- ## [1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0) (2026-06-30) ### Features * Support MCP 2026 draft specs ([googleapis#3544](googleapis#3544)) ([d12eaa8](googleapis@d12eaa8)) * **release:** Add digital signature to Toolbox binaries ([googleapis#3528](googleapis#3528)) ([3f0f0af](googleapis@3f0f0af)) * **tool/cloud-storage:** Configure object operation parameters ([googleapis#3529](googleapis#3529)) ([d6dc5fe](googleapis@d6dc5fe)) * **tool/cloud-storage:** Support configurable parameters ([googleapis#3478](googleapis#3478)) ([bc2de2a](googleapis@bc2de2a)) * **tools/dataplex-list-data-products:** Add dataplex-list-data-products tool ([googleapis#3337](googleapis#3337)) ([6dd669a](googleapis@6dd669a)) * **tools/dataplex-get-data-product:** Add dataplex-get-data-product tool ([googleapis#3499](googleapis#3499)) ([7ea7a09](googleapis@7ea7a09)) * **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets tool ([googleapis#3500](googleapis#3500)) ([182f933](googleapis@182f933)) * **tools/looker:** Support complex filter_expression parameter in queries ([googleapis#3494](googleapis#3494)) ([997fb8c](googleapis@997fb8c)) * **tools/looker:** Support dynamic_fields parameter in queries ([googleapis#3507](googleapis#3507)) ([cd22b89](googleapis@cd22b89)) ### Bug Fixes * **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA client ([googleapis#3460](googleapis#3460)) ([cc2a61e](googleapis@cc2a61e)) * **tools/looker-conversational-analytics:** Validate explore_references shape instead of panicking ([googleapis#3531](googleapis#3531)) ([b67419d](googleapis@b67419d)) * **tool/looker-create-view-from-table:** Correct Looker API payload structure ([googleapis#3515](googleapis#3515)) ([18c539c](googleapis@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
mcp-toolbox 1.6.0 Created-by: HarmonybrewBot Commit-by: HarmonybrewBot Merged-by: HarmonybrewBot Description: Created by `brew bump` --- Created with `brew bump-formula-pr`.release notes
## [1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0) (2026-06-30) ### Features * Support MCP 2026 draft specs ([#3544](googleapis/mcp-toolbox#3544)) ([d12eaa8](googleapis/mcp-toolbox@d12eaa8)) * **release:** Add digital signature to Toolbox binaries ([#3528](googleapis/mcp-toolbox#3528)) ([3f0f0af](googleapis/mcp-toolbox@3f0f0af)) * **tool/cloud-storage:** Configure object operation parameters ([#3529](googleapis/mcp-toolbox#3529)) ([d6dc5fe](googleapis/mcp-toolbox@d6dc5fe)) * **tool/cloud-storage:** Support configurable parameters ([#3478](googleapis/mcp-toolbox#3478)) ([bc2de2a](googleapis/mcp-toolbox@bc2de2a)) * **tools/dataplex-list-data-products:** Add dataplex-list-data-products tool ([#3337](googleapis/mcp-toolbox#3337)) ([6dd669a](googleapis/mcp-toolbox@6dd669a)) * **tools/dataplex-get-data-product:** Add dataplex-get-data-product tool ([#3499](googleapis/mcp-toolbox#3499)) ([7ea7a09](googleapis/mcp-toolbox@7ea7a09)) * **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets tool ([#3500](googleapis/mcp-toolbox#3500)) ([182f933](googleapis/mcp-toolbox@182f933)) * **tools/looker:** Support complex filter_expression parameter in queries ([#3494](googleapis/mcp-toolbox#3494)) ([997fb8c](googleapis/mcp-toolbox@997fb8c)) * **tools/looker:** Support dynamic_fields parameter in queries ([#3507](googleapis/mcp-toolbox#3507)) ([cd22b89](googleapis/mcp-toolbox@cd22b89)) ### Bug Fixes * **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA client ([#3460](googleapis/mcp-toolbox#3460)) ([cc2a61e](googleapis/mcp-toolbox@cc2a61e)) * **tools/looker-conversational-analytics:** Validate explore_references shape instead of panicking ([#3531](googleapis/mcp-toolbox#3531)) ([b67419d](googleapis/mcp-toolbox@b67419d)) * **tool/looker-create-view-from-table:** Correct Looker API payload structure ([#3515](googleapis/mcp-toolbox#3515)) ([18c539c](googleapis/mcp-toolbox@18c539c)) | **OS/Architecture** | **Description** | **SHA256 Hash** | | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- | | [linux/amd64](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.6.0/linux/amd64/toolbox) ([Signature](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.6.0/linux/amd64/toolbox.asc)) | For **Linux** systems running on **Intel/AMD 64-bit processors**. | 0cd6fa1773926a37e55c803542f16ef621eaea38b015ec9778dfaae9f30da302 | | [darwin/arm64](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.6.0/darwin/arm64/toolbox) | For **macOS** systems running on **Apple Silicon** (M1, M2, M3, etc.) processors. | feb567fb8416504004ff99acd4661278a88d70cc137681f6535a5e54469c6594 | | [darwin/amd64](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.6.0/darwin/amd64/toolbox) | For **macOS** systems running on **Intel processors**. | fbb5af6b170431edb08741828a2581f9ee8548dd37c3e8222a3c2722f0007f32 | | [windows/amd64](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.6.0/windows/amd64/toolbox.exe) | For **Windows** systems running on **Intel/AMD 64-bit processors**. | 3be7e587c86dd9dbdb593a380396f399358c179ce37aed3045b4c8bf42569394 | | [windows/arm64](https://storage.googleapis.com/mcp-toolbox-for-databases/v1.6.0/windows/arm64/toolbox.exe) | For **Windows** systems running on **ARM 64-bit processors**. | 3c6345114032a0671a5b66764673124ec4c27b5b41d1816ea15ac8afb5ca7cdc |View the full release notes at https://github.com/googleapis/mcp-toolbox/releases/tag/v1.6.0">https://github.com/googleapis/mcp-toolbox/releases/tag/v1.6.0.
>
See merge request: Harmonybrew/homebrew-core!13304
What
looker-conversational-analyticsparses theexplore_referencestool parameter with chained, unchecked type assertions:explore_referencesis declared as an array of free-form maps (NewMapParameterwith an empty value type), so the entries a model supplies are never schema-validated. Each of these shapes panics the tool instead of returning an error the model can act on:modelorexplorekeymodel/explorevalueModels drop or mistype those fields often enough that this is reachable in normal use, and panicking inside
Invokeis a poor failure mode for a hallucinated argument.Fix
Move the parsing into a small
parseExploreReferenceshelper that validates each element and field and returns a clearutil.NewAgentError, mirroring the validation already done indatalineagesearchlineage. Behaviour for valid input is unchanged.Tests
Added
TestParseExploreReferencescovering valid references, nil/empty input, and the five malformed shapes above. With the helper removed the package no longer builds (the test references it), and with the fixgo test ./internal/tools/looker/lookerconversationalanalytics/passes.go build ./...,go vet, andgofmtare clean.