Skip to main content
Hello — in this lesson we install and verify two AWS MCP (Managed Chat/Compute Provider) servers using KAgent: one via the KAgent UI and one via a manifest (YAML). We’ll:
  • Install a minimal KAgent deployment (with a provided 01-values-min).
  • Expose the KAgent UI.
  • Create an AWS Pricing MCP Server via the UI.
  • Create an AWS Well-Architected Security MCP Server via a manifest.
  • Verify the MCP servers and view their exposed tools.
Prerequisites: the CRD and model config for KAgent are already installed and the 01-values-min file has been provided.
The values file used below enables only the minimal components required to run KAgent and disables optional agents. This reduces resource usage while you work through the lab.

Minimal values file (01-values-min)

Use the following values to install KAgent with minimal components enabled:
Install KAgent using the provided values (installation command is assumed to be performed in the lab environment). After applying the chart/manifest, monitor the controller logs if you need to troubleshoot:

Inspect KAgent pods and services

Confirm pods and services in the kagent namespace:
Example output:
Example output:
If you want to access the UI on a specific NodePort (for example 30080), patch the kagent-ui service:
After image pulls and initialization complete, pods should reach Running:
Example final output:

AWS credentials used by MCP servers

MCP servers require AWS credentials (or other supported credential delivery methods). In this lab environment, credentials are stored at /root/.aws/credentials:
Example output:
Region used in this lesson: us-east-1.
MCP servers support multiple credential delivery methods (plain keys, IAM roles, etc.). Follow security best practices for credential handling and avoid checking credentials into source control.

Install AWS Pricing MCP Server via the KAgent UI

  1. Ensure the KAgent UI is accessible (port-forward or use the NodePort you set, e.g., 30080).
  2. Open the KAgent UI in your browser (use the lab environment link or Node IP + NodePort).
  3. In the UI:
    • Click Create → New MCPServer.
    • Click Add MCP Server.
    • Enter the server name exactly: AWS Pricing MCP Server.
    • Namespace: kagent (default).
    • Choose the “Command” option (not URL).
    • Command executor: select uvx (Python-based executor).
    • Package name: awslabs.aws-pricing-mcp-server@latest.
    • Provide environment variables copied from /root/.aws/credentials using these exact keys:
      • AWS_ACCESS_KEY_ID
      • AWS_SECRET_ACCESS_KEY
      • AWS_REGION (for example, us-east-1)
Example command used by the package:
After adding the server, KAgent creates a pod for the MCP Server. Monitor resources:
You may first see the MCPServer with False readiness while images are pulling:
Wait until the MCPServer is True and the pod is Running:
Example final output:
If readiness stays False, inspect events, pod describe, and pod logs:

Install AWS Well-Architected Security MCP Server via manifest

Create a file named mcp-server.yaml with the following MCPServer manifest. Populate AWS credentials in the env section before applying:
Important: do not change the port (must remain 3000) or the transportType (stdio) — these are required by the package. Steps:
  1. Edit mcp-server.yaml and set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY with values from /root/.aws/credentials.
  2. Apply the manifest:
Example output:
Check status and pods:
Example output:

Viewing tools exposed by an MCP Server in the UI

In the KAgent UI:
  • Click the MCPServer entry, then click View → Tools.
  • Each MCP Server lists how many tools it exposes. Example:
    • AWS Well-Architected Security MCP Server — may show 6 tools.
    • AWS Pricing MCP Server — may show 9 tools.
  • Click the number to inspect individual tools exposed by the MCP Server.

Notes and troubleshooting tips

  • Environment variables must use the exact key names required by the package: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION.
  • uvx runs Python-based packages. Some packages may use npx (npm). Choose the executor that matches the package.
  • Image pulls and container initialization can take time. Use kubectl logs, kubectl describe, and kubectl get -w to monitor readiness.
  • For persistent issues, inspect controller logs:
That’s it — you installed one MCP Server via the UI and one via a manifest, verified both, and viewed the tools each server exposes. See you in the next lab.

Watch Video

Practice Lab