Chapter 2. Troubleshoot isolated MCP gateway deployments
You can troubleshoot common issues with isolated MCP gateway deployments, including MCPGatewayExtension status errors, MCPServerRegistration issues, and empty configuration secrets.
MCP gateway is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features offer early access to upcoming product features, enabling customers to test functionality and give feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.
2.1. Troubleshoot an MCPGatewayExtension ReferenceGrantRequired status Copy linkLink copied to clipboard!
If an MCPGatewayExtension custom resource (CR) targets a Gateway object in a different namespace and no ReferenceGrant CR exists, the extension shows a ReferenceGrantRequired condition.
Prerequisites
-
You installed OpenShift CLI (
oc). - You deployed isolated MCP gateway instances.
Procedure
Check the status of the
MCPGatewayExtensionCR by running the following command:$ oc get mcpgatewayextension -n <namespace> -o yamlReplace
<namespace>with the namespace where theMCPGatewayExtensionCR is applied.Look for the following condition in the output:
conditions: - type: Ready status: "False" reason: ReferenceGrantRequired message: "invalid: ReferenceGrant required in %s to allow cross-namespace reference from %s"Create a
ReferenceGrantCR in theGatewayobject namespace:apiVersion: gateway.networking.k8s.io/v1beta1 kind: ReferenceGrant metadata: name: <team_a_refgrant> namespace: <gateway_namespace> spec: from: - group: mcp.kuadrant.io kind: MCPGatewayExtension namespace: <team_namespace> to: - group: gateway.networking.k8s.io kind: Gateway name: <team_a_gateway>-
Replace the
metadata.namevalue with the name of your team. -
Replace the
metadata.namespacevalue with the namespace where theGatewayobject is applied. -
Replace the
spec.from.namespacevalue with the namespace where theMCPGatewayExtensionCR is applied. -
Replace the
spec.to.namevalue with the name of the teamGatewayobject.
-
Replace the
Verify the
MCPGatewayExtensionCR is ready by running the following command:$ oc wait --for=condition=Ready mcpgatewayextension/<extension_name> -n <namespace> --timeout=60s
2.2. Troubleshooting an MCPGatewayExtension InvalidMCPGatewayExtension status Copy linkLink copied to clipboard!
If an MCPGatewayExtension custom resource (CR) shows an InvalidMCPGatewayExtension status, the target Gateway object does not exist or there is a conflict with another extension.
Prerequisites
-
You installed OpenShift CLI (
oc). - You deployed isolated MCP gateway instances.
Procedure
Verify that the target
Gatewayobject exists by running the following command:$ oc get gateway <gateway_name> -n <gateway_namespace>-
Replace
<gateway_name>with the name of theGatewayobject. -
Replace
<gateway_namespace>with the namespace where theGatewayobject is applied.
-
Replace
Check for conflicting
MCPGatewayExtensionCRs that target the sameGatewayobject by running the following command:$ oc get mcpgatewayextension -AOnly one
MCPGatewayExtensionCR can target a givenGatewayobject. If multiple extensions target the sameGatewayobject, the controller marks newer ones as conflicted. The oldest extension by creation timestamp takes precedence.-
If a conflict exists, update the newer
MCPGatewayExtensionCR to target a differentGatewayobject, or delete the conflicting extension.
2.3. Troubleshooting an MCPServerRegistration NotReady status Copy linkLink copied to clipboard!
If an MCPServerRegistration custom resource (CR) shows a NotReady status, the registration cannot find a valid MCPGatewayExtension CR for the Gateway object that its HTTPRoute CR is attached to. MCPServerRegistration CRs are processed only when a valid MCPGatewayExtension CR exists for the Gateway object that their HTTPRoute CR is attached to.
Prerequisites
-
You installed OpenShift CLI (
oc). - You deployed isolated MCP gateway instances.
Procedure
Check the status of the
MCPServerRegistrationCR by running the following command:$ oc get mcpserverregistration -n <namespace> -o yamlReplace
<namespace>with the namespace where theMCPServerRegistrationCR is applied.Verify the following conditions:
-
The
HTTPRouteCR exists and references the correctGatewayobject, and its status is accepted. -
An
MCPGatewayExtensionCR exists that targets the sameGatewayobject. The
MCPGatewayExtensionCR is inReadystate by running the following command:$ oc get mcpgatewayextension -n <namespace>
-
The
2.4. Troubleshooting an empty configuration secret Copy linkLink copied to clipboard!
If the configuration Secret object exists but contains no MCP server entries, the MCPServerRegistration custom resources (CRs) might not be in a Ready state.
Prerequisites
-
You installed OpenShift CLI (
oc). - You deployed isolated MCP gateway instances.
Procedure
Check the contents of the configuration
Secretobject by running the following command:$ oc get secret mcp-gateway-config -n <namespace> -o jsonpath='{.data.config\.yaml}' | base64 -dReplace
<namespace>with the namespace where theMCPGatewayExtensionCR is applied.Verify that
MCPServerRegistrationCRs exist and are inReadystate by running the following command:$ oc get mcpserverregistration -n <namespace>If no
MCPServerRegistrationCRs exist or none are inReadystate, register MCP servers for this gateway instance.