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
+31-4Lines changed: 31 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -287,6 +287,22 @@ _Appears in:_
287
287
|`url`_string_| URL is the URL of the backend MCPServer |||
288
288
289
289
290
+
#### ElicitationResponseHandler
291
+
292
+
293
+
294
+
ElicitationResponseHandler defines how to handle user responses to elicitation requests
295
+
296
+
297
+
298
+
_Appears in:_
299
+
-[WorkflowStep](#workflowstep)
300
+
301
+
| Field | Description | Default | Validation |
302
+
| --- | --- | --- | --- |
303
+
|`action`_string_| Action defines the action to take when the user declines or cancels<br />- skip_remaining: Skip remaining steps in the workflow<br />- abort: Abort the entire workflow execution<br />- continue: Continue to the next step | abort | Enum: [skip_remaining abort continue] <br /> |
304
+
305
+
290
306
291
307
292
308
#### EnvVar
@@ -359,6 +375,7 @@ _Appears in:_
359
375
| --- | --- |
360
376
|`tokenExchange`| ExternalAuthTypeTokenExchange is the type for RFC-8693 token exchange<br /> |
361
377
|`headerInjection`| ExternalAuthTypeHeaderInjection is the type for custom header injection<br /> |
378
+
|`unauthenticated`| ExternalAuthTypeUnauthenticated is the type for no authentication<br />This should only be used for backends on trusted networks (e.g., localhost, VPC)<br />or when authentication is handled by network-level security<br /> |
362
379
363
380
364
381
#### FailureHandlingConfig
@@ -495,6 +512,7 @@ _Appears in:_
495
512
|`jwksAllowPrivateIP`_boolean_| JWKSAllowPrivateIP allows JWKS/OIDC endpoints on private IP addresses<br />Use with caution - only enable for trusted internal IDPs | false ||
496
513
|`protectedResourceAllowPrivateIP`_boolean_| ProtectedResourceAllowPrivateIP allows protected resource endpoint on private IP addresses<br />Use with caution - only enable for trusted internal IDPs or testing | false ||
497
514
|`insecureAllowHTTP`_boolean_| InsecureAllowHTTP allows HTTP (non-HTTPS) OIDC issuers for development/testing<br />WARNING: This is insecure and should NEVER be used in production<br />Only enable for local development, testing, or trusted internal networks | false ||
515
+
|`scopes`_string array_| Scopes is the list of OAuth scopes to advertise in the well-known endpoint (RFC 9728)<br />If empty, defaults to ["openid"]|||
498
516
499
517
500
518
#### KubernetesOIDCConfig
@@ -579,7 +597,7 @@ _Appears in:_
579
597
580
598
| Field | Description | Default | Validation |
581
599
| --- | --- | --- | --- |
582
-
|`type`_[ExternalAuthType](#externalauthtype)_| Type is the type of external authentication to configure || Enum: [tokenExchange headerInjection] <br />Required: \{\} <br /> |
600
+
|`type`_[ExternalAuthType](#externalauthtype)_| Type is the type of external authentication to configure || Enum: [tokenExchange headerInjection unauthenticated] <br />Required: \{\} <br /> |
583
601
|`tokenExchange`_[TokenExchangeConfig](#tokenexchangeconfig)_| TokenExchange configures RFC-8693 OAuth 2.0 Token Exchange<br />Only used when Type is "tokenExchange" |||
584
602
|`headerInjection`_[HeaderInjectionConfig](#headerinjectionconfig)_| HeaderInjection configures custom HTTP header injection<br />Only used when Type is "headerInjection" |||
585
603
@@ -693,8 +711,10 @@ _Appears in:_
693
711
| Field | Description | Default | Validation |
694
712
| --- | --- | --- | --- |
695
713
|`phase`_[MCPGroupPhase](#mcpgroupphase)_| Phase indicates current state | Pending | Enum: [Ready Pending Failed] <br /> |
696
-
|`servers`_string array_| Servers lists server names in this group |||
697
-
|`serverCount`_integer_| ServerCount is the number of servers |||
714
+
|`servers`_string array_| Servers lists MCPServer names in this group |||
715
+
|`serverCount`_integer_| ServerCount is the number of MCPServers |||
716
+
|`remoteProxies`_string array_| RemoteProxies lists MCPRemoteProxy names in this group |||
717
+
|`remoteProxyCount`_integer_| RemoteProxyCount is the number of MCPRemoteProxies |||
|`resources`_[ResourceRequirements](#resourcerequirements)_| Resources defines the resource requirements for the proxy container |||
941
961
|`trustProxyHeaders`_boolean_| TrustProxyHeaders indicates whether to trust X-Forwarded-* headers from reverse proxies<br />When enabled, the proxy will use X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port,<br />and X-Forwarded-Prefix headers to construct endpoint URLs | false ||
942
962
|`resourceOverrides`_[ResourceOverrides](#resourceoverrides)_| ResourceOverrides allows overriding annotations and labels for resources created by the operator |||
963
+
|`groupRef`_string_| GroupRef is the name of the MCPGroup this proxy belongs to<br />Must reference an existing MCPGroup in the same namespace |||
943
964
944
965
945
966
#### MCPRemoteProxyStatus
@@ -1294,6 +1315,7 @@ _Appears in:_
1294
1315
1295
1316
| Field | Description | Default | Validation |
1296
1317
| --- | --- | --- | --- |
1318
+
|`logLevel`_string_| LogLevel sets the logging level for the Virtual MCP server.<br />Set to "debug" to enable debug logging. When not set, defaults to info level. || Enum: [debug] <br /> |
@@ -1695,6 +1717,7 @@ TelemetryConfig defines observability configuration for the MCP server
1695
1717
_Appears in:_
1696
1718
-[MCPRemoteProxySpec](#mcpremoteproxyspec)
1697
1719
-[MCPServerSpec](#mcpserverspec)
1720
+
-[VirtualMCPServerSpec](#virtualmcpserverspec)
1698
1721
1699
1722
| Field | Description | Default | Validation |
1700
1723
| --- | --- | --- | --- |
@@ -1973,6 +1996,7 @@ _Appears in:_
1973
1996
|`operational`_[OperationalConfig](#operationalconfig)_| Operational defines operational settings like timeouts and health checks |||
1974
1997
|`serviceType`_string_| ServiceType specifies the Kubernetes service type for the Virtual MCP server | ClusterIP | Enum: [ClusterIP NodePort LoadBalancer] <br /> |
1975
1998
|`podTemplateSpec`_[RawExtension](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#rawextension-runtime-pkg)_| PodTemplateSpec defines the pod template to use for the Virtual MCP server<br />This allows for customizing the pod configuration beyond what is provided by the other fields.<br />Note that to modify the specific container the Virtual MCP server runs in, you must specify<br />the 'vmcp' container name in the PodTemplateSpec.<br />This field accepts a PodTemplateSpec object as JSON/YAML. || Type: object <br /> |
1999
+
|`telemetry`_[TelemetryConfig](#telemetryconfig)_| Telemetry configures OpenTelemetry-based observability for the Virtual MCP server<br />including distributed tracing, OTLP metrics export, and Prometheus metrics endpoint |||
1976
2000
1977
2001
1978
2002
#### VirtualMCPServerStatus
@@ -2033,13 +2057,16 @@ _Appears in:_
2033
2057
|`id`_string_| ID is the unique identifier for this step || Required: \{\} <br /> |
2034
2058
|`type`_string_| Type is the step type (tool, elicitation, etc.) | tool | Enum: [tool elicitation] <br /> |
2035
2059
|`tool`_string_| Tool is the tool to call (format: "workload.tool_name")<br />Only used when Type is "tool" |||
2036
-
|`arguments`_object (keys:string, values:string)_| Arguments is a map of argument templates<br />Supports Go template syntax with .params and .steps |||
2060
+
|`arguments`_[RawExtension](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#rawextension-runtime-pkg)_| Arguments is a map of argument values with template expansion support.<br />Supports Go template syntax with .params and .steps for string values.<br />Non-string values (integers, booleans, arrays, objects) are passed as-is.<br />Note: the templating is only supported on the first level of the key-value pairs. ||Type: object <br />|
2037
2061
|`message`_string_| Message is the elicitation message<br />Only used when Type is "elicitation" |||
2038
2062
|`schema`_[RawExtension](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#rawextension-runtime-pkg)_| Schema defines the expected response schema for elicitation || Type: object <br /> |
2063
+
|`onDecline`_[ElicitationResponseHandler](#elicitationresponsehandler)_| OnDecline defines the action to take when the user explicitly declines the elicitation<br />Only used when Type is "elicitation" |||
2064
+
|`onCancel`_[ElicitationResponseHandler](#elicitationresponsehandler)_| OnCancel defines the action to take when the user cancels/dismisses the elicitation<br />Only used when Type is "elicitation" |||
2039
2065
|`dependsOn`_string array_| DependsOn lists step IDs that must complete before this step |||
2040
2066
|`condition`_string_| Condition is a template expression that determines if the step should execute |||
|`timeout`_string_| Timeout is the maximum execution time for this step |||
2069
+
|`defaultResults`_object (keys:string, values:[RawExtension](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#rawextension-runtime-pkg))_| DefaultResults provides fallback output values when this step is skipped<br />(due to condition evaluating to false) or fails (when onError.action is "continue").<br />Each key corresponds to an output field name referenced by downstream steps.<br />Required if the step may be skipped AND downstream steps reference this step's output. || Schemaless: \{\} <br /> |
0 commit comments