Skip to content

feat(auth): add Protected Resource Metadata endpoint#2698

Merged
duwenxin99 merged 28 commits intomainfrom
metadata
Mar 26, 2026
Merged

feat(auth): add Protected Resource Metadata endpoint#2698
duwenxin99 merged 28 commits intomainfrom
metadata

Conversation

@duwenxin99
Copy link
Copy Markdown
Contributor

@duwenxin99 duwenxin99 commented Mar 10, 2026

Add OAuth Protected Resource Metadata file generation and endpoint.

@duwenxin99 duwenxin99 requested a review from a team as a code owner March 10, 2026 21:31
@duwenxin99 duwenxin99 changed the base branch from main to mcp-as March 10, 2026 21:31
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 introduces a new generic OpenID Connect (OIDC) authentication service, enabling the system to integrate with any OIDC-compliant identity provider. It adds the capability to configure and validate JWT tokens based on audience and required scopes. Furthermore, it implements a Protected Resource Metadata (PRM) endpoint for the Microservice Communication Protocol (MCP), allowing external clients to discover the authorization server details for OIDC-enabled services.

Highlights

  • Generic OIDC Authentication: A new generic authentication service type has been introduced, enabling integration with any OpenID Connect (OIDC) compliant identity provider for JWT token validation.
  • Protected Resource Metadata (PRM) Endpoint: A new endpoint /.well-known/oauth-protected-resource has been added for the Microservice Communication Protocol (MCP), which advertises OIDC authorization server details for services configured with mcpEnabled: true.
  • Configuration and Validation: The system now supports configuring generic OIDC auth services via YAML, including audience and required scopes, and enforces a rule that only one generic auth service can have mcpEnabled: true.
  • New Dependencies: Several new Go module dependencies for JWT and JWKS handling (jwkset, keyfunc, golang-jwt/jwt/v5) have been added to support the OIDC functionality.
Changelog
  • cmd/internal/tools_file.go
    • Imported the new generic authentication package.
    • Added validation to ensure only one generic auth service is marked as mcpEnabled.
  • cmd/internal/tools_file_test.go
    • Imported the generic authentication package for testing.
    • Added test cases for parsing generic auth service configurations.
    • Included new test cases to verify the single mcpEnabled generic auth service constraint.
  • cmd/root.go
    • Introduced a new command-line flag --enable-mcp-auth to activate the PRM endpoint.
  • docs/en/resources/authServices/generic.md
    • Added new documentation detailing the configuration and behavior of the generic OIDC authentication service.
  • go.mod
    • Added new dependencies for JWT and JWKS processing.
  • internal/auth/generic/generic.go
    • Implemented the core logic for the generic OIDC authentication service, including JWKS discovery, JWT parsing, and audience/scope validation.
  • internal/auth/generic/generic_test.go
    • Added comprehensive unit tests for the generic OIDC authentication service's token validation logic.
  • internal/server/config.go
    • Imported the generic authentication package.
    • Added McpAuthUrl to ServerConfig.
    • Updated the YAML unmarshalling logic to support the new generic auth service type.
  • internal/server/mcp.go
    • Imported the generic authentication package.
    • Added the /.well-known/oauth-protected-resource endpoint to serve Protected Resource Metadata.
    • Implemented the prmHandler to generate the PRM response based on configured mcpEnabled generic auth services.
  • internal/server/server.go
    • Added mcpAuthUrl field to the Server struct and initialized it.
Ignored Files
  • Ignored by pattern: go.sum (1)
    • go.sum
Activity
  • No specific activity has been recorded for this pull request yet.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

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 a new endpoint for MCP Protected Resource Metadata (PRM), as defined in RFC 8615. This is enabled via a new --enable-mcp-auth command-line flag. The new endpoint, located at /.well-known/oauth-protected-resource, advertises the server's OAuth capabilities, specifically for generic OIDC providers. The implementation correctly handles JSON formatting for empty lists. However, there is an inaccuracy in how the authorization server metadata is populated, which I've commented on.

@github-actions
Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions
Copy link
Copy Markdown
Contributor

@github-actions
Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions
Copy link
Copy Markdown
Contributor

@github-actions
Copy link
Copy Markdown
Contributor

@duwenxin99 duwenxin99 force-pushed the mcp-as branch 2 times, most recently from 3590366 to cbea89a Compare March 23, 2026 18:08
@duwenxin99 duwenxin99 force-pushed the metadata branch 2 times, most recently from 67d2d2b to f0b56d7 Compare March 23, 2026 19:27
@github-actions
Copy link
Copy Markdown
Contributor

@github-actions
Copy link
Copy Markdown
Contributor

@duwenxin99
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

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 implements support for Model Context Protocol (MCP) Authorization. It adds a new --toolbox-url command-line flag and TOOLBOX_URL environment variable, which are used to populate the resource field in the Protected Resource Metadata (PRM). The server now includes a validation step to ensure the Toolbox URL is provided when MCP Auth is enabled and exposes a new /.well-known/oauth-protected-resource endpoint to serve the PRM. The PR also includes detailed documentation for MCP Auth configuration and a new test suite for the PRM endpoint. I have no feedback to provide.

@duwenxin99 duwenxin99 merged commit b53dcf2 into main Mar 26, 2026
27 checks passed
@duwenxin99 duwenxin99 deleted the metadata branch March 26, 2026 19:20
@github-actions
Copy link
Copy Markdown
Contributor

🧨 Preview deployments removed.

Cloudflare Pages environments for pr-2698 have been deleted.

@github-actions
Copy link
Copy Markdown
Contributor

🧨 Preview deployments removed.

github-actions bot pushed a commit that referenced this pull request Mar 26, 2026
## Description

> Should include a concise description of the changes (bug or feature),
it's
> impact, along with a summary of the solution

## 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:

- [ ] Make sure you reviewed

[CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md)
- [ ] 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
- [ ] 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 involve a breaking change

🛠️ Fixes #<issue_number_goes_here>

---------

Co-authored-by: Averi Kitsch <akitsch@google.com> b53dcf2
github-actions bot pushed a commit that referenced this pull request Mar 26, 2026
## Description

> Should include a concise description of the changes (bug or feature),
it's
> impact, along with a summary of the solution

## 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:

- [ ] Make sure you reviewed

[CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md)
- [ ] 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
- [ ] 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 involve a breaking change

🛠️ Fixes #<issue_number_goes_here>

---------

Co-authored-by: Averi Kitsch <akitsch@google.com> b53dcf2
github-actions bot pushed a commit to renovate-bot/googleapis-_-genai-toolbox that referenced this pull request Mar 26, 2026
…pis#2698)

## Description

> Should include a concise description of the changes (bug or feature),
it's
> impact, along with a summary of the solution

## 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:

- [ ] Make sure you reviewed

[CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md)
- [ ] 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
- [ ] 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 involve a breaking change

🛠️ Fixes #<issue_number_goes_here>

---------

Co-authored-by: Averi Kitsch <akitsch@google.com> b53dcf2
github-actions bot pushed a commit to renovate-bot/googleapis-_-genai-toolbox that referenced this pull request Mar 26, 2026
…pis#2698)

## Description

> Should include a concise description of the changes (bug or feature),
it's
> impact, along with a summary of the solution

## 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:

- [ ] Make sure you reviewed

[CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md)
- [ ] 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
- [ ] 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 involve a breaking change

🛠️ Fixes #<issue_number_goes_here>

---------

Co-authored-by: Averi Kitsch <akitsch@google.com> b53dcf2
Yuan325 added a commit that referenced this pull request Mar 27, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.31.0](v0.30.0...v0.31.0)
(2026-03-26)


### ⚠ BREAKING CHANGES

* release upgraded docsite
([#2831](#2831))
* **http:** sanitize non-2xx error output
([#2654](#2654))
* add a new `enable-api` flag
([#2846](#2846))
* remove deprecations and update tools-file flag
([#2806](#2806))

### Features

* Add a new `enable-api` flag
([#2846](#2846))
([7a070da](7a070da))
* **auth:** Add generic `authService` type for MCP
([#2619](#2619))
([f6678f8](f6678f8))
* **auth:** Add Protected Resource Metadata endpoint
([#2698](#2698))
([b53dcf2](b53dcf2))
* **auth:** Support manual PRM override
([#2717](#2717))
([283e4e3](283e4e3))
* **dataplex:** Add support for lookup context tool.
([#2744](#2744))
([facb69d](facb69d))
* Remove deprecations and update tools-file flag
([#2806](#2806))
([ab64c95](ab64c95))


### Bug Fixes

* **ci:** Remove search index generation from preview deployment
workflow
([#2859](#2859))
([f8891b8](f8891b8))
* **docs:** Skip empty folders in pagination & reduce PR comment noise
([#2853](#2853))
([9ebd93a](9ebd93a))
* **http:** Sanitize non-2xx error output
([#2654](#2654))
([5bef954](5bef954))
* **skills:** Fix integer parameter parsing through agent skills
([#2847](#2847))
([4564efe](4564efe))


### Documentation

* Release upgraded docsite
([#2831](#2831))
([5b25ce0](5b25ce0))


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

##
[0.31.0](v0.30.0...v0.31.0)
(2026-03-26)

### ⚠ BREAKING CHANGES

* release upgraded docsite
([#2831](#2831))
* **http:** sanitize non-2xx error output
([#2654](#2654))
* add a new `enable-api` flag
([#2846](#2846))
* remove deprecations and update tools-file flag
([#2806](#2806))

### Features

* Add a new `enable-api` flag
([#2846](#2846))
([7a070da](7a070da))
* **auth:** Add generic `authService` type for MCP
([#2619](#2619))
([f6678f8](f6678f8))
* **auth:** Add Protected Resource Metadata endpoint
([#2698](#2698))
([b53dcf2](b53dcf2))
* **auth:** Support manual PRM override
([#2717](#2717))
([283e4e3](283e4e3))
* **dataplex:** Add support for lookup context tool.
([#2744](#2744))
([facb69d](facb69d))
* Remove deprecations and update tools-file flag
([#2806](#2806))
([ab64c95](ab64c95))

### Bug Fixes

* **ci:** Remove search index generation from preview deployment
workflow
([#2859](#2859))
([f8891b8](f8891b8))
* **docs:** Skip empty folders in pagination & reduce PR comment noise
([#2853](#2853))
([9ebd93a](9ebd93a))
* **http:** Sanitize non-2xx error output
([#2654](#2654))
([5bef954](5bef954))
* **skills:** Fix integer parameter parsing through agent skills
([#2847](#2847))
([4564efe](4564efe))

### Documentation

* Release upgraded docsite
([#2831](#2831))
([5b25ce0](5b25ce0))

---
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> c6b811c
github-actions bot pushed a commit that referenced this pull request Mar 27, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.31.0](v0.30.0...v0.31.0)
(2026-03-26)

### ⚠ BREAKING CHANGES

* release upgraded docsite
([#2831](#2831))
* **http:** sanitize non-2xx error output
([#2654](#2654))
* add a new `enable-api` flag
([#2846](#2846))
* remove deprecations and update tools-file flag
([#2806](#2806))

### Features

* Add a new `enable-api` flag
([#2846](#2846))
([7a070da](7a070da))
* **auth:** Add generic `authService` type for MCP
([#2619](#2619))
([f6678f8](f6678f8))
* **auth:** Add Protected Resource Metadata endpoint
([#2698](#2698))
([b53dcf2](b53dcf2))
* **auth:** Support manual PRM override
([#2717](#2717))
([283e4e3](283e4e3))
* **dataplex:** Add support for lookup context tool.
([#2744](#2744))
([facb69d](facb69d))
* Remove deprecations and update tools-file flag
([#2806](#2806))
([ab64c95](ab64c95))

### Bug Fixes

* **ci:** Remove search index generation from preview deployment
workflow
([#2859](#2859))
([f8891b8](f8891b8))
* **docs:** Skip empty folders in pagination & reduce PR comment noise
([#2853](#2853))
([9ebd93a](9ebd93a))
* **http:** Sanitize non-2xx error output
([#2654](#2654))
([5bef954](5bef954))
* **skills:** Fix integer parameter parsing through agent skills
([#2847](#2847))
([4564efe](4564efe))

### Documentation

* Release upgraded docsite
([#2831](#2831))
([5b25ce0](5b25ce0))

---
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> c6b811c
github-actions bot pushed a commit to renovate-bot/googleapis-_-genai-toolbox that referenced this pull request Mar 27, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.31.0](googleapis/genai-toolbox@v0.30.0...v0.31.0)
(2026-03-26)

### ⚠ BREAKING CHANGES

* release upgraded docsite
([googleapis#2831](googleapis#2831))
* **http:** sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
* add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
* remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))

### Features

* Add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
([7a070da](googleapis@7a070da))
* **auth:** Add generic `authService` type for MCP
([googleapis#2619](googleapis#2619))
([f6678f8](googleapis@f6678f8))
* **auth:** Add Protected Resource Metadata endpoint
([googleapis#2698](googleapis#2698))
([b53dcf2](googleapis@b53dcf2))
* **auth:** Support manual PRM override
([googleapis#2717](googleapis#2717))
([283e4e3](googleapis@283e4e3))
* **dataplex:** Add support for lookup context tool.
([googleapis#2744](googleapis#2744))
([facb69d](googleapis@facb69d))
* Remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))
([ab64c95](googleapis@ab64c95))

### Bug Fixes

* **ci:** Remove search index generation from preview deployment
workflow
([googleapis#2859](googleapis#2859))
([f8891b8](googleapis@f8891b8))
* **docs:** Skip empty folders in pagination & reduce PR comment noise
([googleapis#2853](googleapis#2853))
([9ebd93a](googleapis@9ebd93a))
* **http:** Sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
([5bef954](googleapis@5bef954))
* **skills:** Fix integer parameter parsing through agent skills
([googleapis#2847](googleapis#2847))
([4564efe](googleapis@4564efe))

### Documentation

* Release upgraded docsite
([googleapis#2831](googleapis#2831))
([5b25ce0](googleapis@5b25ce0))

---
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> c6b811c
github-actions bot pushed a commit to renovate-bot/googleapis-_-genai-toolbox that referenced this pull request Mar 27, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.31.0](googleapis/genai-toolbox@v0.30.0...v0.31.0)
(2026-03-26)

### ⚠ BREAKING CHANGES

* release upgraded docsite
([googleapis#2831](googleapis#2831))
* **http:** sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
* add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
* remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))

### Features

* Add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
([7a070da](googleapis@7a070da))
* **auth:** Add generic `authService` type for MCP
([googleapis#2619](googleapis#2619))
([f6678f8](googleapis@f6678f8))
* **auth:** Add Protected Resource Metadata endpoint
([googleapis#2698](googleapis#2698))
([b53dcf2](googleapis@b53dcf2))
* **auth:** Support manual PRM override
([googleapis#2717](googleapis#2717))
([283e4e3](googleapis@283e4e3))
* **dataplex:** Add support for lookup context tool.
([googleapis#2744](googleapis#2744))
([facb69d](googleapis@facb69d))
* Remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))
([ab64c95](googleapis@ab64c95))

### Bug Fixes

* **ci:** Remove search index generation from preview deployment
workflow
([googleapis#2859](googleapis#2859))
([f8891b8](googleapis@f8891b8))
* **docs:** Skip empty folders in pagination & reduce PR comment noise
([googleapis#2853](googleapis#2853))
([9ebd93a](googleapis@9ebd93a))
* **http:** Sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
([5bef954](googleapis@5bef954))
* **skills:** Fix integer parameter parsing through agent skills
([googleapis#2847](googleapis#2847))
([4564efe](googleapis@4564efe))

### Documentation

* Release upgraded docsite
([googleapis#2831](googleapis#2831))
([5b25ce0](googleapis@5b25ce0))

---
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> c6b811c
github-actions bot pushed a commit to xaas-cloud/genai-toolbox that referenced this pull request Mar 27, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.31.0](googleapis/genai-toolbox@v0.30.0...v0.31.0)
(2026-03-26)

### ⚠ BREAKING CHANGES

* release upgraded docsite
([googleapis#2831](googleapis#2831))
* **http:** sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
* add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
* remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))

### Features

* Add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
([7a070da](googleapis@7a070da))
* **auth:** Add generic `authService` type for MCP
([googleapis#2619](googleapis#2619))
([f6678f8](googleapis@f6678f8))
* **auth:** Add Protected Resource Metadata endpoint
([googleapis#2698](googleapis#2698))
([b53dcf2](googleapis@b53dcf2))
* **auth:** Support manual PRM override
([googleapis#2717](googleapis#2717))
([283e4e3](googleapis@283e4e3))
* **dataplex:** Add support for lookup context tool.
([googleapis#2744](googleapis#2744))
([facb69d](googleapis@facb69d))
* Remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))
([ab64c95](googleapis@ab64c95))

### Bug Fixes

* **ci:** Remove search index generation from preview deployment
workflow
([googleapis#2859](googleapis#2859))
([f8891b8](googleapis@f8891b8))
* **docs:** Skip empty folders in pagination & reduce PR comment noise
([googleapis#2853](googleapis#2853))
([9ebd93a](googleapis@9ebd93a))
* **http:** Sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
([5bef954](googleapis@5bef954))
* **skills:** Fix integer parameter parsing through agent skills
([googleapis#2847](googleapis#2847))
([4564efe](googleapis@4564efe))

### Documentation

* Release upgraded docsite
([googleapis#2831](googleapis#2831))
([5b25ce0](googleapis@5b25ce0))

---
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> c6b811c
github-actions bot pushed a commit to xaas-cloud/genai-toolbox that referenced this pull request Mar 27, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.31.0](googleapis/genai-toolbox@v0.30.0...v0.31.0)
(2026-03-26)

### ⚠ BREAKING CHANGES

* release upgraded docsite
([googleapis#2831](googleapis#2831))
* **http:** sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
* add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
* remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))

### Features

* Add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
([7a070da](googleapis@7a070da))
* **auth:** Add generic `authService` type for MCP
([googleapis#2619](googleapis#2619))
([f6678f8](googleapis@f6678f8))
* **auth:** Add Protected Resource Metadata endpoint
([googleapis#2698](googleapis#2698))
([b53dcf2](googleapis@b53dcf2))
* **auth:** Support manual PRM override
([googleapis#2717](googleapis#2717))
([283e4e3](googleapis@283e4e3))
* **dataplex:** Add support for lookup context tool.
([googleapis#2744](googleapis#2744))
([facb69d](googleapis@facb69d))
* Remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))
([ab64c95](googleapis@ab64c95))

### Bug Fixes

* **ci:** Remove search index generation from preview deployment
workflow
([googleapis#2859](googleapis#2859))
([f8891b8](googleapis@f8891b8))
* **docs:** Skip empty folders in pagination & reduce PR comment noise
([googleapis#2853](googleapis#2853))
([9ebd93a](googleapis@9ebd93a))
* **http:** Sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
([5bef954](googleapis@5bef954))
* **skills:** Fix integer parameter parsing through agent skills
([googleapis#2847](googleapis#2847))
([4564efe](googleapis@4564efe))

### Documentation

* Release upgraded docsite
([googleapis#2831](googleapis#2831))
([5b25ce0](googleapis@5b25ce0))

---
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> c6b811c
github-actions bot pushed a commit to bhardwajRahul/genai-toolbox that referenced this pull request Mar 28, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.31.0](googleapis/genai-toolbox@v0.30.0...v0.31.0)
(2026-03-26)

### ⚠ BREAKING CHANGES

* release upgraded docsite
([googleapis#2831](googleapis#2831))
* **http:** sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
* add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
* remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))

### Features

* Add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
([7a070da](googleapis@7a070da))
* **auth:** Add generic `authService` type for MCP
([googleapis#2619](googleapis#2619))
([f6678f8](googleapis@f6678f8))
* **auth:** Add Protected Resource Metadata endpoint
([googleapis#2698](googleapis#2698))
([b53dcf2](googleapis@b53dcf2))
* **auth:** Support manual PRM override
([googleapis#2717](googleapis#2717))
([283e4e3](googleapis@283e4e3))
* **dataplex:** Add support for lookup context tool.
([googleapis#2744](googleapis#2744))
([facb69d](googleapis@facb69d))
* Remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))
([ab64c95](googleapis@ab64c95))

### Bug Fixes

* **ci:** Remove search index generation from preview deployment
workflow
([googleapis#2859](googleapis#2859))
([f8891b8](googleapis@f8891b8))
* **docs:** Skip empty folders in pagination & reduce PR comment noise
([googleapis#2853](googleapis#2853))
([9ebd93a](googleapis@9ebd93a))
* **http:** Sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
([5bef954](googleapis@5bef954))
* **skills:** Fix integer parameter parsing through agent skills
([googleapis#2847](googleapis#2847))
([4564efe](googleapis@4564efe))

### Documentation

* Release upgraded docsite
([googleapis#2831](googleapis#2831))
([5b25ce0](googleapis@5b25ce0))

---
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> c6b811c
github-actions bot pushed a commit to bhardwajRahul/genai-toolbox that referenced this pull request Mar 28, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.31.0](googleapis/genai-toolbox@v0.30.0...v0.31.0)
(2026-03-26)

### ⚠ BREAKING CHANGES

* release upgraded docsite
([googleapis#2831](googleapis#2831))
* **http:** sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
* add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
* remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))

### Features

* Add a new `enable-api` flag
([googleapis#2846](googleapis#2846))
([7a070da](googleapis@7a070da))
* **auth:** Add generic `authService` type for MCP
([googleapis#2619](googleapis#2619))
([f6678f8](googleapis@f6678f8))
* **auth:** Add Protected Resource Metadata endpoint
([googleapis#2698](googleapis#2698))
([b53dcf2](googleapis@b53dcf2))
* **auth:** Support manual PRM override
([googleapis#2717](googleapis#2717))
([283e4e3](googleapis@283e4e3))
* **dataplex:** Add support for lookup context tool.
([googleapis#2744](googleapis#2744))
([facb69d](googleapis@facb69d))
* Remove deprecations and update tools-file flag
([googleapis#2806](googleapis#2806))
([ab64c95](googleapis@ab64c95))

### Bug Fixes

* **ci:** Remove search index generation from preview deployment
workflow
([googleapis#2859](googleapis#2859))
([f8891b8](googleapis@f8891b8))
* **docs:** Skip empty folders in pagination & reduce PR comment noise
([googleapis#2853](googleapis#2853))
([9ebd93a](googleapis@9ebd93a))
* **http:** Sanitize non-2xx error output
([googleapis#2654](googleapis#2654))
([5bef954](googleapis@5bef954))
* **skills:** Fix integer parameter parsing through agent skills
([googleapis#2847](googleapis#2847))
([4564efe](googleapis@4564efe))

### Documentation

* Release upgraded docsite
([googleapis#2831](googleapis#2831))
([5b25ce0](googleapis@5b25ce0))

---
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> c6b811c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release candidate Use label to signal PR should be included in the next release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants