Skip to main content
Deploy an AI-powered Kubernetes SRE agent that uses orchestration mode to coordinate specialized workers — one for cluster inspection, one for metrics analysis — each with access to only the tools they need.

What You’ll Build

The coordinator receives user queries and dispatches them to:
  • cluster_inspector — filtered to Kubernetes MCP tools (pods, deployments, logs, events)
  • metrics_analyst — filtered to Prometheus MCP tools (PromQL queries, alerts, targets)

Prerequisites

Setup

All commands assume you’re in the repo root.

1. Create a KIND cluster

2. Deploy the OpenTelemetry Demo

The OpenTelemetry Demo deploys a microservices application with Prometheus, Grafana, and Jaeger — giving your SRE agent real workloads and metrics to inspect.
Wait for pods to come up (this takes a few minutes on first pull):
Not every pod needs to be Running before proceeding. As long as the Prometheus pod is ready, you can continue.
Verify Prometheus is running and note the service name:
You should see a service like prometheus on port 9090. Note the name — if it differs, use it in the --set flag in step 3 below.

3. Deploy the MCP servers

Both MCP servers have community Helm charts. Install them with:
Different Prometheus service name? Run kubectl get svc | grep prometheus and replace the URL above with the correct service name from step 2.
Verify both MCP servers are healthy before proceeding:
Wait for them to start:

4. Deploy AURA

Using a different LLM provider? Edit aura-values.yaml and update the [agent.llm] section. See examples/reference.toml for all provider options.
Wait for AURA:

5. Try it out

The AURA CLI ships inside the same image as the server, so there’s no separate CLI container to deploy. Exec into the running AURA pod and launch the bundled CLI against the in-pod server:
This drops you into an interactive REPL. Try these queries:
The coordinator dispatches to both workers: cluster_inspector checks pod status and events, while metrics_analyst queries Prometheus for resource usage. You can toggle the SSE event panel with /stream to watch the orchestration in real time. Type /quit to exit.
Prefer a browser or a local CLI? Port-forward the service with kubectl port-forward svc/aura 8080:80, then point any OpenAI-compatible client — or a locally built aura --api-url http://localhost:8080 — at it.

How the orchestration config works

Open aura-values.yaml and look at the config.content section. The key pieces: [orchestration] — enables orchestration mode. The coordinator agent receives every query and decides whether to answer directly, ask for clarification, or dispatch to workers. [orchestration.worker.cluster_inspector] — a worker with mcp_filter set to only Kubernetes tool names. Even though both MCP servers are connected, this worker can only see and use K8s tools. [orchestration.worker.metrics_analyst] — a worker with mcp_filter set to only Prometheus tool names. It can only query metrics, not touch the cluster. This separation means each worker operates with least-privilege access to tools, and the coordinator handles synthesis across domains.

Customizing tool filters

The mcp_filter arrays in aura-values.yaml list the exact tool names exposed by each MCP server. The names in this quickstart were sourced from the upstream repos: To verify the tools AURA actually discovered at runtime:
If a tool name in mcp_filter doesn’t match any real tool, it’s silently ignored. If none match, the worker has zero tools and will fail.

Cleanup