From 6c413e7e849f4bdb714393e0121001e7a3b241d5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:43:51 +0000 Subject: [PATCH] Update ToolHive reference docs for toolhive-operator-crds-0.0.98 --- static/api-specs/toolhive-crd-api.md | 75 +++++++++++++++++++++------- 1 file changed, 58 insertions(+), 17 deletions(-) diff --git a/static/api-specs/toolhive-crd-api.md b/static/api-specs/toolhive-crd-api.md index 184eeeee..7e20523d 100644 --- a/static/api-specs/toolhive-crd-api.md +++ b/static/api-specs/toolhive-crd-api.md @@ -234,6 +234,7 @@ _Appears in:_ | --- | --- | --- | --- | | `name` _string_ | Name is the virtual MCP server name. | | | | `groupRef` _string_ | Group references an existing MCPGroup that defines backend workloads.
In Kubernetes, the referenced MCPGroup must exist in the same namespace. | | Required: \{\}
| +| `backends` _[vmcp.config.StaticBackendConfig](#vmcpconfigstaticbackendconfig) array_ | Backends defines pre-configured backend servers for static mode.
When OutgoingAuth.Source is "inline", this field contains the full list of backend
servers with their URLs and transport types, eliminating the need for K8s API access.
When OutgoingAuth.Source is "discovered", this field is empty and backends are
discovered at runtime via Kubernetes API. | | | | `incomingAuth` _[vmcp.config.IncomingAuthConfig](#vmcpconfigincomingauthconfig)_ | IncomingAuth configures how clients authenticate to the virtual MCP server.
When using the Kubernetes operator, this is populated by the converter from
VirtualMCPServerSpec.IncomingAuth and any values set here will be superseded. | | | | `outgoingAuth` _[vmcp.config.OutgoingAuthConfig](#vmcpconfigoutgoingauthconfig)_ | OutgoingAuth configures how the virtual MCP server authenticates to backends.
When using the Kubernetes operator, this is populated by the converter from
VirtualMCPServerSpec.OutgoingAuth and any values set here will be superseded. | | | | `aggregation` _[vmcp.config.AggregationConfig](#vmcpconfigaggregationconfig)_ | Aggregation defines tool aggregation and conflict resolution strategies.
Supports ToolConfigRef for Kubernetes-native MCPToolConfig resource references. | | | @@ -243,6 +244,7 @@ _Appears in:_ | `metadata` _object (keys:string, values:string)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | | | `telemetry` _[pkg.telemetry.Config](#pkgtelemetryconfig)_ | Telemetry configures OpenTelemetry-based observability for the Virtual MCP server
including distributed tracing, OTLP metrics export, and Prometheus metrics endpoint. | | | | `audit` _[pkg.audit.Config](#pkgauditconfig)_ | Audit configures audit logging for the Virtual MCP server.
When present, audit logs include MCP protocol operations.
See audit.Config for available configuration options. | | | +| `optimizer` _[vmcp.config.OptimizerConfig](#vmcpconfigoptimizerconfig)_ | Optimizer configures the MCP optimizer for context optimization on large toolsets.
When enabled, vMCP exposes only find_tool and call_tool operations to clients
instead of all backend tools directly. This reduces token usage by allowing
LLMs to discover relevant tools on demand rather than receiving all tool definitions. | | | #### vmcp.config.ConflictResolutionConfig @@ -341,7 +343,7 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | -| `issuer` _string_ | Issuer is the OIDC issuer URL. | | | +| `issuer` _string_ | Issuer is the OIDC issuer URL. | | Pattern: `^https?://`
| | `clientId` _string_ | ClientID is the OAuth client ID. | | | | `clientSecretEnv` _string_ | ClientSecretEnv is the name of the environment variable containing the client secret.
This is the secure way to reference secrets - the actual secret value is never stored
in configuration files, only the environment variable name.
The secret value will be resolved from this environment variable at runtime. | | | | `audience` _string_ | Audience is the required token audience. | | | @@ -370,6 +372,24 @@ _Appears in:_ | `failureHandling` _[vmcp.config.FailureHandlingConfig](#vmcpconfigfailurehandlingconfig)_ | FailureHandling configures failure handling behavior. | | | +#### vmcp.config.OptimizerConfig + + + +OptimizerConfig configures the MCP optimizer. +When enabled, vMCP exposes only find_tool and call_tool operations to clients +instead of all backend tools directly. + + + +_Appears in:_ +- [vmcp.config.Config](#vmcpconfigconfig) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `embeddingService` _string_ | EmbeddingService is the name of a Kubernetes Service that provides the embedding service
for semantic tool discovery. The service must implement the optimizer embedding API. | | Required: \{\}
| + + #### vmcp.config.OutgoingAuthConfig @@ -439,6 +459,27 @@ _Appears in:_ | `default` _[pkg.json.Any](#pkgjsonany)_ | Default is the fallback value if template expansion fails.
Type coercion is applied to match the declared Type. | | Schemaless: \{\}
| +#### vmcp.config.StaticBackendConfig + + + +StaticBackendConfig defines a pre-configured backend server for static mode. +This allows vMCP to operate without Kubernetes API access by embedding all backend +information directly in the configuration. + + + +_Appears in:_ +- [vmcp.config.Config](#vmcpconfigconfig) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `name` _string_ | Name is the backend identifier.
Must match the backend name from the MCPGroup for auth config resolution. | | Required: \{\}
| +| `url` _string_ | URL is the backend's MCP server base URL. | | Pattern: `^https?://`
Required: \{\}
| +| `transport` _string_ | Transport is the MCP transport protocol: "sse" or "streamable-http"
Only network transports supported by vMCP client are allowed. | | Enum: [sse streamable-http]
Required: \{\}
| +| `metadata` _object (keys:string, values:string)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | | + + #### vmcp.config.StepErrorHandling @@ -603,22 +644,22 @@ _Appears in:_ ## toolhive.stacklok.dev/v1alpha1 ### Resource Types -- [MCPExternalAuthConfig](#mcpexternalauthconfig) -- [MCPExternalAuthConfigList](#mcpexternalauthconfiglist) -- [MCPGroup](#mcpgroup) -- [MCPGroupList](#mcpgrouplist) -- [MCPRegistry](#mcpregistry) -- [MCPRegistryList](#mcpregistrylist) -- [MCPRemoteProxy](#mcpremoteproxy) -- [MCPRemoteProxyList](#mcpremoteproxylist) -- [MCPServer](#mcpserver) -- [MCPServerList](#mcpserverlist) -- [MCPToolConfig](#mcptoolconfig) -- [MCPToolConfigList](#mcptoolconfiglist) -- [VirtualMCPCompositeToolDefinition](#virtualmcpcompositetooldefinition) -- [VirtualMCPCompositeToolDefinitionList](#virtualmcpcompositetooldefinitionlist) -- [VirtualMCPServer](#virtualmcpserver) -- [VirtualMCPServerList](#virtualmcpserverlist) +- [api.v1alpha1.MCPExternalAuthConfig](#apiv1alpha1mcpexternalauthconfig) +- [api.v1alpha1.MCPExternalAuthConfigList](#apiv1alpha1mcpexternalauthconfiglist) +- [api.v1alpha1.MCPGroup](#apiv1alpha1mcpgroup) +- [api.v1alpha1.MCPGroupList](#apiv1alpha1mcpgrouplist) +- [api.v1alpha1.MCPRegistry](#apiv1alpha1mcpregistry) +- [api.v1alpha1.MCPRegistryList](#apiv1alpha1mcpregistrylist) +- [api.v1alpha1.MCPRemoteProxy](#apiv1alpha1mcpremoteproxy) +- [api.v1alpha1.MCPRemoteProxyList](#apiv1alpha1mcpremoteproxylist) +- [api.v1alpha1.MCPServer](#apiv1alpha1mcpserver) +- [api.v1alpha1.MCPServerList](#apiv1alpha1mcpserverlist) +- [api.v1alpha1.MCPToolConfig](#apiv1alpha1mcptoolconfig) +- [api.v1alpha1.MCPToolConfigList](#apiv1alpha1mcptoolconfiglist) +- [api.v1alpha1.VirtualMCPCompositeToolDefinition](#apiv1alpha1virtualmcpcompositetooldefinition) +- [api.v1alpha1.VirtualMCPCompositeToolDefinitionList](#apiv1alpha1virtualmcpcompositetooldefinitionlist) +- [api.v1alpha1.VirtualMCPServer](#apiv1alpha1virtualmcpserver) +- [api.v1alpha1.VirtualMCPServerList](#apiv1alpha1virtualmcpserverlist)