You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: static/api-specs/toolhive-crd-api.md
+58-17Lines changed: 58 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -234,6 +234,7 @@ _Appears in:_
234
234
| --- | --- | --- | --- |
235
235
|`name`_string_| Name is the virtual MCP server name. |||
236
236
|`groupRef`_string_| Group references an existing MCPGroup that defines backend workloads.<br />In Kubernetes, the referenced MCPGroup must exist in the same namespace. || Required: \{\} <br /> |
237
+
|`backends`_[vmcp.config.StaticBackendConfig](#vmcpconfigstaticbackendconfig) array_| Backends defines pre-configured backend servers for static mode.<br />When OutgoingAuth.Source is "inline", this field contains the full list of backend<br />servers with their URLs and transport types, eliminating the need for K8s API access.<br />When OutgoingAuth.Source is "discovered", this field is empty and backends are<br />discovered at runtime via Kubernetes API. |||
237
238
|`incomingAuth`_[vmcp.config.IncomingAuthConfig](#vmcpconfigincomingauthconfig)_| IncomingAuth configures how clients authenticate to the virtual MCP server.<br />When using the Kubernetes operator, this is populated by the converter from<br />VirtualMCPServerSpec.IncomingAuth and any values set here will be superseded. |||
238
239
|`outgoingAuth`_[vmcp.config.OutgoingAuthConfig](#vmcpconfigoutgoingauthconfig)_| OutgoingAuth configures how the virtual MCP server authenticates to backends.<br />When using the Kubernetes operator, this is populated by the converter from<br />VirtualMCPServerSpec.OutgoingAuth and any values set here will be superseded. |||
239
240
|`aggregation`_[vmcp.config.AggregationConfig](#vmcpconfigaggregationconfig)_| Aggregation defines tool aggregation and conflict resolution strategies.<br />Supports ToolConfigRef for Kubernetes-native MCPToolConfig resource references. |||
@@ -243,6 +244,7 @@ _Appears in:_
243
244
|`metadata`_object (keys:string, values:string)_| Refer to Kubernetes API documentation for fields of `metadata`. |||
244
245
|`telemetry`_[pkg.telemetry.Config](#pkgtelemetryconfig)_| Telemetry configures OpenTelemetry-based observability for the Virtual MCP server<br />including distributed tracing, OTLP metrics export, and Prometheus metrics endpoint. |||
245
246
|`audit`_[pkg.audit.Config](#pkgauditconfig)_| Audit configures audit logging for the Virtual MCP server.<br />When present, audit logs include MCP protocol operations.<br />See audit.Config for available configuration options. |||
247
+
|`optimizer`_[vmcp.config.OptimizerConfig](#vmcpconfigoptimizerconfig)_| Optimizer configures the MCP optimizer for context optimization on large toolsets.<br />When enabled, vMCP exposes only find_tool and call_tool operations to clients<br />instead of all backend tools directly. This reduces token usage by allowing<br />LLMs to discover relevant tools on demand rather than receiving all tool definitions. |||
246
248
247
249
248
250
#### vmcp.config.ConflictResolutionConfig
@@ -341,7 +343,7 @@ _Appears in:_
341
343
342
344
| Field | Description | Default | Validation |
343
345
| --- | --- | --- | --- |
344
-
|`issuer`_string_| Issuer is the OIDC issuer URL. |||
346
+
|`issuer`_string_| Issuer is the OIDC issuer URL. ||Pattern: `^https?://` <br />|
345
347
|`clientId`_string_| ClientID is the OAuth client ID. |||
346
348
|`clientSecretEnv`_string_| ClientSecretEnv is the name of the environment variable containing the client secret.<br />This is the secure way to reference secrets - the actual secret value is never stored<br />in configuration files, only the environment variable name.<br />The secret value will be resolved from this environment variable at runtime. |||
347
349
|`audience`_string_| Audience is the required token audience. |||
When enabled, vMCP exposes only find_tool and call_tool operations to clients
381
+
instead of all backend tools directly.
382
+
383
+
384
+
385
+
_Appears in:_
386
+
-[vmcp.config.Config](#vmcpconfigconfig)
387
+
388
+
| Field | Description | Default | Validation |
389
+
| --- | --- | --- | --- |
390
+
|`embeddingService`_string_| EmbeddingService is the name of a Kubernetes Service that provides the embedding service<br />for semantic tool discovery. The service must implement the optimizer embedding API. || Required: \{\} <br /> |
391
+
392
+
373
393
#### vmcp.config.OutgoingAuthConfig
374
394
375
395
@@ -439,6 +459,27 @@ _Appears in:_
439
459
|`default`_[pkg.json.Any](#pkgjsonany)_| Default is the fallback value if template expansion fails.<br />Type coercion is applied to match the declared Type. || Schemaless: \{\} <br /> |
440
460
441
461
462
+
#### vmcp.config.StaticBackendConfig
463
+
464
+
465
+
466
+
StaticBackendConfig defines a pre-configured backend server for static mode.
467
+
This allows vMCP to operate without Kubernetes API access by embedding all backend
468
+
information directly in the configuration.
469
+
470
+
471
+
472
+
_Appears in:_
473
+
-[vmcp.config.Config](#vmcpconfigconfig)
474
+
475
+
| Field | Description | Default | Validation |
476
+
| --- | --- | --- | --- |
477
+
|`name`_string_| Name is the backend identifier.<br />Must match the backend name from the MCPGroup for auth config resolution. || Required: \{\} <br /> |
478
+
|`url`_string_| URL is the backend's MCP server base URL. || Pattern: `^https?://` <br />Required: \{\} <br /> |
479
+
|`transport`_string_| Transport is the MCP transport protocol: "sse" or "streamable-http"<br />Only network transports supported by vMCP client are allowed. || Enum: [sse streamable-http] <br />Required: \{\} <br /> |
480
+
|`metadata`_object (keys:string, values:string)_| Refer to Kubernetes API documentation for fields of `metadata`. |||
0 commit comments