Update module github.com/stacklok/toolhive to v0.20.0#122
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
Update module github.com/stacklok/toolhive to v0.20.0#122renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
Contributor
Author
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
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.
This PR contains the following updates:
v0.19.0→v0.20.0Release Notes
stacklok/toolhive (github.com/stacklok/toolhive)
v0.20.0Compare Source
ToolHive v0.20.0 Release Notes
Released: 2026-04-14
Full Changelog: v0.19.0...v0.20.0
Breaking Changes
1. GroupRef changed from bare string to typed struct (#4809)
Impact: All users deploying
MCPServer,MCPRemoteProxy,MCPServerEntry, orVirtualMCPServerCRDs with agroupReffield.The
groupReffield on all four CRD types changed from a bare string to a typedMCPGroupRefstruct:Existing resources with the old format will fail validation against the new CRD schema after upgrading.
2.
protectedResourceAllowPrivateIP/jwksAllowPrivateIPfield separation (#4784)Impact: Users who set
jwksAllowPrivateIP: trueand relied on the (unintended) side effect of it also enabling private IPs for the protected resource endpoint.Previously, setting
jwksAllowPrivateIP: truesilently also enabled private IPs for the protected resource endpoint due to a mapping bug in the converter. After this fix, the two fields are independent. Users who need both must now set both fields explicitly.Deprecations
1.
spec.config.groupRefon VirtualMCPServer (#4809)The inline string path
spec.config.groupRefis deprecated in favor of the new top-levelspec.groupRefstruct field. The deprecated path still works viaResolveGroupName()but should be migrated.2. Inline
spec.config.telemetryon VirtualMCPServer (#4801)Inline telemetry configuration via
spec.config.telemetryis deprecated in favor ofspec.telemetryConfigRef, which references sharedMCPTelemetryConfigresources. The inline field continues to work, but the ref approach enables Kubernetes-native secret references for OTLP auth headers, CA bundle ConfigMap references, and per-serverserviceNameoverrides.New Features
Stateless streamable-HTTP remote server support (#4515)
Adds
--statelessflag tothv runfor proxying MCP servers that only accept POST requests (no SSE streams). When set:Non-standard OAuth scope parameter support (#4712)
Adds
--remote-auth-scope-param-nameCLI flag to override the query parameter name used for scopes in the OAuth authorization URL. This enables authentication with providers like Slack that use non-standard scope parameters (e.g.,user_scopeinstead ofscope).TelemetryConfigRef for VirtualMCPServer (#4801)
VirtualMCPServer now supports
spec.telemetryConfigRefto reference sharedMCPTelemetryConfigresources, consistent with MCPServer and MCPRemoteProxy. Features:config.telemetryTelemetryConfigHashin status for change detection and rolling updatesNew MCP client support
New skill-supporting clients
~/.copilot/skills/,<project>/.github/skills/~/.agents/skills/,<project>/.agents/skills/~/.kiro/skills/,<project>/.kiro/skills/OpenAPI spec for skills registry endpoints (#4800)
The v0.1 skills browsing endpoints now appear in the OpenAPI spec at
/api/openapi.json:GET /registry/{registryName}/v0.1/x/dev.toolhive/skillsGET /registry/{registryName}/v0.1/x/dev.toolhive/skills/{namespace}/{skillName}Bug Fixes
protectedResourceAllowPrivateIPwas a no-op on VirtualMCPServer (#4784)The
protectedResourceAllowPrivateIPCRD field was defined but never propagated through the OIDC resolver, making it silently ignored. Additionally, the converter incorrectly mapped it fromjwksAllowPrivateIP. Both issues are now fixed.Note: The field remains a no-op for MCPServer and MCPRemoteProxy (tracked in #4787).
Skill install failure when clients share directories (#4796)
VS Code and VS Code Insiders both use
~/.copilot/skills/as their skills path. Installing without--clientsexpanded to all clients, and the second client targeting the same directory failed. A deduplication helper now prevents duplicate filesystem operations while still recording all clients in the database.Health check timeout silently capped at 5s (#4791)
A hardcoded
context.WithTimeout(ctx, 5*time.Second)incheckMCPStatussilently cappedTOOLHIVE_HEALTH_CHECK_PING_TIMEOUTat 5 seconds, regardless of the configured value. The redundant timeout is removed sinceMCPPingerimplementations enforce their own timeouts. Also removes two dead zero-value guards that were unreachable.VirtualMCPServer rejected tokens from its own auth server (#4805)
When clients omitted the optional RFC 8707
resourceparameter, the token handler issued tokens with an emptyaudclaim. The OIDC validator then rejected these tokens because it requires a matching audience. Now, whenAllowedAudiencescontains exactly one entry and noresourceparameter is present, the handler defaults to granting that audience.Security
OTEL HTTP exporter memory exhaustion fix (#4683)
Updated
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttpfrom v1.41.0 to v1.43.0 to address CVE-2026-39882 — a vulnerability where OTLP HTTP exporters read full HTTP response bodies into memory without a size cap, enabling memory exhaustion when the collector endpoint is attacker-controlled or MitM'd.Dependency Updates
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttphelm/helmthv-registry-apiimageInternal / Refactoring
storage.LoadfromNotifyBackendExpiredClose()Audienceto authserver test client fixtureTestParseGitReferencefrom ambient envMigration Guides
Migration Guide: GroupRef
Affected resources:
MCPServer,MCPRemoteProxy,MCPServerEntry,VirtualMCPServerSteps:
Update all YAML manifests to use the new struct format:
For VirtualMCPServer, move
spec.config.groupRefto the new top-levelspec.groupReffield:The deprecated
spec.config.groupRefstring path still works viaResolveGroupName()but should be migrated.Apply the new CRDs:
Delete and re-apply affected resources:
Repeat for
mcpremoteproxies,mcpserverentries, andvirtualmcpservers.Migration Guide: protectedResourceAllowPrivateIP
Affected users: Those who set
jwksAllowPrivateIP: trueand relied on it also enabling private IPs for the protected resource endpoint.Before (v0.19.0): Setting
jwksAllowPrivateIP: trueunintentionally also enabled private IPs for the protected resource endpoint.After (v0.20.0): The two fields are independent. If you need private IPs for both JWKS and protected resource endpoints, set both explicitly:
Migration Guide: TelemetryConfigRef (recommended)
Affected users: VirtualMCPServer users who want to share telemetry configuration across resources.
New Contributors
What's Changed
audwhenresourceis absent by @blkt in #4805Audienceto authserver test client fixture by @blkt in #4814TestParseGitReferencefrom ambient env by @blkt in #4813New Contributors
Full Changelog: stacklok/toolhive@v0.19.0...v0.20.0
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.