Skip to main content
Welcome to this KMCP controllers lesson. Here you’ll learn how to install the KMCP controller (bundled with KAgent), confirm CRDs and API resources, inspect controller components, and deploy a sample MCPServer to verify reconciliation behavior. This guide assumes the KMCP CRDs and model config were already installed. We’ll begin by reviewing the Helm values file used to install KAgent.

1) Values file used for Helm install

Inspect the values file located at /root/01-values-min.yaml:
Summary: the kmcp controller is enabled (kmcp.enabled=true) and minimal agents are enabled. The kagent-tools are also enabled.

2) Install KAgent (includes KMCP controller)

Install the KAgent Helm chart using the values file:
Helm should pull the chart and install the release. Example Helm output:

Expose the KAgent UI (local access)

Patch the kagent-ui Service to NodePort for local access (adjust nodePort as required):
Exposing services via NodePort opens them on each cluster node. For production clusters prefer LoadBalancer or Ingress solutions with proper authentication.

3) Verify pods and controller components

Check pods in the kagent namespace:
Example output:
Troubleshooting quick pointers:
  • Check pod status: kubectl -n kagent get pods
  • View recent events: kubectl -n kagent get events --sort-by='.lastTimestamp'
  • Tail controller logs: kubectl -n kagent logs -l app.kubernetes.io/component=controller -f
  • Primary docs: https://kagent.dev

4) Confirm CRDs and API resources

List CRDs related to KAgent and KMCP:
Example CRDs present:
You can also confirm the MCP API resource registration:
Example API resources:
Table — typical MCP-related CRDs:

5) Locate KMCP controller pod and deployment

Filter pods for the KMCP controller:
Example:
Check deployments in the kagent namespace to confirm the controller deployment name and status:
Example:
Tail controller logs to verify the KMCP controller has started and is reconciling:
Look for messages indicating the MCP controller has started, registered event sources, and is serving metrics. Verify service accounts created by the KMCP controller:
Example:

6) What the KMCP controller manages

  • The KMCP controller watches MCPServer custom resources and reconciles them into concrete Kubernetes objects (Deployments, Services, RBAC, etc.).
  • Each MCPServer CR results in one or more pods running the defined MCP server image/configuration.
  • The controller also updates MCPServer status conditions (e.g., whether the underlying pods are Ready).

7) MCPServer CRD structure (example)

Always verify CRD schema in your installed version. A high-level example of an MCPServer resource:
Notes about the main fields:
  • spec.deployment.image: Container image for the MCP server.
  • spec.deployment.port: Port the server listens on inside the container.
  • spec.deployment.cmd / args: Command and arguments to start the server.
  • spec.deployment.env: Environment variables (for example, LLM API keys).
  • spec.transportType: Recommended transport for local KAgent servers is stdio. Some servers support http.

8) Lifecycle: what happens when you create an MCPServer

When you create an MCPServer CR:
  1. KMCP controller detects the new CR and begins reconciliation.
  2. The controller creates required Kubernetes resources (Deployment, Service, ConfigMaps, Secrets, etc.).
  3. A pod (or pods) start using the configured image and arguments.
  4. The MCPServer CR status will progress from unready to True once the pod(s) reach Ready.

9) Deploy a sample AWS API MCP server and verify

Apply the sample manifest (example file path):
Verify the MCPServer resource and status:
During initialization the MCPServer’s status may show False until the pod becomes Ready. Once the pod is Running and Ready, the MCPServer status will indicate success.

10) Common questions (FAQ)

11) Next steps

This lesson completed the KMCP installation and basic exploration. The next lesson will show deploying additional AWS MCP servers and demonstrating integrations with model configs and tool servers.

Watch Video

Practice Lab