1) Values file used for Helm install
Inspect the values file located at/root/01-values-min.yaml:
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:Expose the KAgent UI (local access)
Patch thekagent-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 thekagent namespace:
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:5) Locate KMCP controller pod and deployment
Filter pods for the KMCP controller:kagent namespace to confirm the controller deployment name and status:
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: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 isstdio. Some servers supporthttp.
8) Lifecycle: what happens when you create an MCPServer
When you create an MCPServer CR:- KMCP controller detects the new CR and begins reconciliation.
- The controller creates required Kubernetes resources (Deployment, Service, ConfigMaps, Secrets, etc.).
- A pod (or pods) start using the configured image and arguments.
- The MCPServer CR status will progress from unready to
Trueonce the pod(s) reach Ready.
9) Deploy a sample AWS API MCP server and verify
Apply the sample manifest (example file path):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.Links and references
- KAgent official site: https://kagent.dev
- KAgent Helm releases (GitHub/OCI): https://github.com/kagent-dev/kagent
- Kubernetes docs: https://kubernetes.io/docs/