Approach 1: CRD API
The CRD API lists every custom resource definition installed in the cluster (names, groups, versions, and scope):Approach 2: Kubernetes OpenAPI Spec
Since Kubernetes 1.15+, CRDs with structural schemas are included in the cluster’s OpenAPI spec. The agent can fetch the full API surface (including custom resources) as proper OpenAPI paths:GET /apis/cilium.io/v2/namespaces/{ns}/ciliumnetworkpolicies) with full request/response schemas, in the same format as the Akua OpenAPI spec it already knows how to query with search.
Best for: “How do I call this custom API?” Full REST paths, request bodies, and response schemas.
List custom resources
With the group, version, and resource name from the CRD, the agent queries instances:Full discovery flow
The agent can chain the whole thing: discover CRDs, pick one it hasn’t seen, learn its schema, and query instances:Why this matters
Traditional MCP servers need a pre-built tool for every API. When a cluster has CRDs from Cilium, cert-manager, Prometheus, Argo, or any other operator, those tools don’t exist. The agent is stuck. With Code Mode + the kube proxy, the agent is self-sufficient. It discovers what’s available, learns the schema, and interacts with custom resources at runtime, without any code changes to the MCP server. The API surface of the MCP grows automatically with whatever is installed in the cluster.Related topics
Kubernetes access
The kube proxy and exec endpoints that make this possible.
Cross-cluster comparison
Compare CRDs, versions, and images across your entire fleet.
Code Mode in action
How the two-tool sandbox pattern works.
Platform MCP
Connect local AI tools to Akua through Code Mode.