Skip to main content

MCPGroup

MCPGroup is a grouping construct for backend workloads. Other resources reference an MCPGroup by name to join a shared pool - for example, a VirtualMCPServer aggregates the tools exposed by every member of its referenced group.

API: toolhive.stacklok.dev/v1beta1 · Scope: Namespaced · Short names: mcpg, mcpgroup

Example

mcpgroup.yaml
apiVersion: toolhive.stacklok.dev/v1beta1
kind: MCPGroup
metadata:
name: my-mcpgroup
namespace: default
spec: {}

Schema

spec

MCPGroupSpec defines the desired state of MCPGroup

FieldTypeDescription
descriptionstring

Description provides human-readable context

status

MCPGroupStatus defines observed state

FieldTypeDescription
conditionsobject[]

Conditions represent observations

entriesstring[]

Entries lists MCPServerEntry names in this group

entryCountinteger

EntryCount is the number of MCPServerEntries


format int32
observedGenerationinteger

ObservedGeneration reflects the generation most recently observed by the controller


format int64
phasestring

Phase indicates current state


default "Pending" · enum: Ready | Pending | Failed
remoteProxiesstring[]

RemoteProxies lists MCPRemoteProxy names in this group

remoteProxyCountinteger

RemoteProxyCount is the number of MCPRemoteProxies


format int32
serverCountinteger

ServerCount is the number of MCPServers


format int32
serversstring[]

Servers lists MCPServer names in this group

status.conditions[]

Conditions represent observations

FieldTypeDescription
lastTransitionTimerequiredstring

lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.


format date-time
messagerequiredstring

message is a human readable message indicating details about the transition. This may be an empty string.


maxLength 32768
observedGenerationinteger

observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.


format int64 · min 0
reasonrequiredstring

reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.


pattern ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ · minLength 1 · maxLength 1024
statusrequiredstring

status of the condition, one of True, False, Unknown.


enum: True | False | Unknown
typerequiredstring

type of condition in CamelCase or in foo.example.com/CamelCase.


pattern ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ · maxLength 316

Referenced by: