fix(tool/looker-conversational-analytics): OAuth token in GDA payload fix#3058
Merged
Conversation
Contributor
|
/gcbrun |
Contributor
There was a problem hiding this comment.
Code Review
This pull request updates the Looker Conversational Analytics tool to properly parse bearer tokens using the ParseBearerToken method, replacing the previous direct string conversion. A review comment suggests simplifying the error handling by avoiding redundant error wrapping and instead returning the error directly if it satisfies the expected interface.
drstrangelooker
approved these changes
Apr 14, 2026
…ersationalanalytics.go gemini code assist feedback Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Contributor
|
/gcbrun |
duwenxin99
approved these changes
Apr 14, 2026
duwenxin99
left a comment
Contributor
There was a problem hiding this comment.
@flaviojdz Could you fix the lint error? Thanks!
Contributor
|
Here is the git diff after running |
Contributor
|
@flaviojdz Also merge the latest changes in. Then we can merge. |
Contributor
|
/gcbrun |
Contributor
|
Just an FYI @flaviojdz we are currently in code freeze for Next26. This will be released after next week. |
Contributor
Author
|
No problem.
We have a due date of May 7th.
Hope we can meet on Next26 :)
…On Wed, Apr 15, 2026 at 5:20 PM Dr. Strangelove ***@***.***> wrote:
*drstrangelooker* left a comment (googleapis/mcp-toolbox#3058)
<#3058 (comment)>
Just an FYI @flaviojdz <https://github.com/flaviojdz> we are currently in
code freeze for Next26. This will be released after next week.
—
Reply to this email directly, view it on GitHub
<#3058 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AFBGSK3FEBSSFHPVH4RY4Q34V6SFLAVCNFSM6AAAAACXZG2LQGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DENJTGI4TGMZVHE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Yuan325
added a commit
that referenced
this pull request
May 7, 2026
🤖 I have created a release *beep* *boop* --- ## [1.2.0](v1.1.0...v1.2.0) (2026-05-07) ### Features * Add support for HTTPS/TLS listener ([#3126](#3126)) ([8bc385d](8bc385d)) * **source/bigquery:** Add maximumBytesBilled source config ([#2724](#2724)) ([42f2d07](42f2d07)) * **source/cloud-storage:** Add bucket and object management tools ([#3129](#3129)) ([8de9bcf](8de9bcf)) * **source/cloud-storage:** Add Cloud Storage source with list_objects and read_object tools ([#3081](#3081)) ([da27b37](da27b37)) * **source/cloud-storage:** Add write/copy/move/delete object tools ([#3139](#3139)) ([b225fc4](b225fc4)) * **tools/knowledge-catalog:** Search Data Quality Scans ([#2444](#2444)) ([1c63551](1c63551)) ### Bug Fixes * Allow converting string literal block with list ([#3050](#3050)) ([36ab2a9](36ab2a9)), closes [#3023](#3023) * **mcp:** Implement router-level logger injection for MCP auth ([#3067](#3067)) ([ccc7cf5](ccc7cf5)) * Prevent test.db from being created during unit tests ([#3042](#3042)) ([d10d2ca](d10d2ca)) * Remove hardcoded * allowed origin for sse ([#3054](#3054)) ([c4c7bd9](c4c7bd9)) * **sources/postgres:** Apply URL encoding to query string params ([#3020](#3020)) ([6b860f4](6b860f4)) * **tool/looker-conversational-analytics:** OAuth token in GDA payload fix ([#3058](#3058)) ([6632d96](6632d96)) * **tools/bigquery-execute-sql:** Avoid surfacing invalid queries as MCP 500s ([#3056](#3056)) ([7ed92c8](7ed92c8)) * **tools/looker:** Fix OAuth for Converational Analytics ([#3044](#3044)) ([f9e3e55](f9e3e55)) --- 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>
pavankrishna13
pushed a commit
to pavankrishna13/genai-toolbox
that referenced
this pull request
May 19, 2026
🤖 I have created a release *beep* *boop* --- ## [1.2.0](googleapis/mcp-toolbox@v1.1.0...v1.2.0) (2026-05-07) ### Features * Add support for HTTPS/TLS listener ([googleapis#3126](googleapis#3126)) ([8bc385d](googleapis@8bc385d)) * **source/bigquery:** Add maximumBytesBilled source config ([googleapis#2724](googleapis#2724)) ([42f2d07](googleapis@42f2d07)) * **source/cloud-storage:** Add bucket and object management tools ([googleapis#3129](googleapis#3129)) ([8de9bcf](googleapis@8de9bcf)) * **source/cloud-storage:** Add Cloud Storage source with list_objects and read_object tools ([googleapis#3081](googleapis#3081)) ([da27b37](googleapis@da27b37)) * **source/cloud-storage:** Add write/copy/move/delete object tools ([googleapis#3139](googleapis#3139)) ([b225fc4](googleapis@b225fc4)) * **tools/knowledge-catalog:** Search Data Quality Scans ([googleapis#2444](googleapis#2444)) ([1c63551](googleapis@1c63551)) ### Bug Fixes * Allow converting string literal block with list ([googleapis#3050](googleapis#3050)) ([36ab2a9](googleapis@36ab2a9)), closes [googleapis#3023](googleapis#3023) * **mcp:** Implement router-level logger injection for MCP auth ([googleapis#3067](googleapis#3067)) ([ccc7cf5](googleapis@ccc7cf5)) * Prevent test.db from being created during unit tests ([googleapis#3042](googleapis#3042)) ([d10d2ca](googleapis@d10d2ca)) * Remove hardcoded * allowed origin for sse ([googleapis#3054](googleapis#3054)) ([c4c7bd9](googleapis@c4c7bd9)) * **sources/postgres:** Apply URL encoding to query string params ([googleapis#3020](googleapis#3020)) ([6b860f4](googleapis@6b860f4)) * **tool/looker-conversational-analytics:** OAuth token in GDA payload fix ([googleapis#3058](googleapis#3058)) ([6632d96](googleapis@6632d96)) * **tools/bigquery-execute-sql:** Avoid surfacing invalid queries as MCP 500s ([googleapis#3056](googleapis#3056)) ([7ed92c8](googleapis@7ed92c8)) * **tools/looker:** Fix OAuth for Converational Analytics ([googleapis#3044](googleapis#3044)) ([f9e3e55](googleapis@f9e3e55)) --- 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When using per-user OAuth (
use_client_oauth: true), theask_data_insightstool fails to authenticate with the Gemini Data Analytics API, whileget_modelsandget_exploreswork correctly with the same token.The MCP server extracts the full
Authorizationheader value (e.g.,"Bearer abc123") and passes it asaccessTokento each tool'sInvoke()method. Theget_models/get_explorestools pass this toGetLookerSDK(), which sets it as an HTTPAuthorizationheader where the"Bearer "prefix is expected. However,ask_data_insightswas embedding the full"Bearer abc123"string into the JSON payload'saccess_tokenfield sent to the GDA API, which expects only the raw token value.The fix calls
accessToken.ParseBearerToken()to strip the"Bearer "prefix before placing the token into theTokenBasedstruct. This only affects the OAuth code path; theSecretBased(client_id/client_secret) path is unchanged.Before
After
Files Changed
internal/tools/looker/lookerconversationalanalytics/lookerconversationalanalytics.goPR 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 #3057