CAST AI · Capability

CAST AI Kubernetes Cost Optimization API

CAST AI is a Kubernetes cost optimization platform that provides APIs for managing clusters, autoscaling, node configuration, workload optimization, cost reporting, security insights, and more. The platform continuously monitors clusters and optimizes them for cost efficiency using autoscaling, spot instance automation, bin packing, and other techniques.

Run with Naftiko CastAiAPI

What You Can Do

GET
Externalclusterapi listnodes — CAST AI List cluster nodes
/kubernetes/external-clusters/{clusterId}/nodes
POST
Externalclusterapi drainnode — CAST AI Drain cluster node
/kubernetes/external-clusters/{clusterId}/nodes/{nodeId}/drain
DELETE
Externalclusterapi deletenode — CAST AI Delete cluster node
/kubernetes/external-clusters/{clusterId}/nodes/{nodeId}
GET
Policiesapi getclusterpolicies — CAST AI Get cluster policies
/kubernetes/clusters/{clusterId}/policies
PUT
Policiesapi upsertclusterpolicies — CAST AI Upsert cluster policies
/kubernetes/clusters/{clusterId}/policies
GET
Nodetemplatesapi listnodetemplates — CAST AI List node templates
/kubernetes/clusters/{clusterId}/node-templates
POST
Nodetemplatesapi createnodetemplate — CAST AI Create node template
/kubernetes/clusters/{clusterId}/node-templates
GET
Nodetemplatesapi getnodetemplate — CAST AI Get node template
/kubernetes/clusters/{clusterId}/node-templates/{nodeTemplateId}
PUT
Nodetemplatesapi updatenodetemplate — CAST AI Update node template
/kubernetes/clusters/{clusterId}/node-templates/{nodeTemplateId}
DELETE
Nodetemplatesapi deletenodetemplate — CAST AI Delete node template
/kubernetes/clusters/{clusterId}/node-templates/{nodeTemplateId}
GET
Nodeconfigurationapi listconfigurations — CAST AI List node configurations
/kubernetes/clusters/{clusterId}/node-configurations
POST
Nodeconfigurationapi createconfiguration — CAST AI Create node configuration
/kubernetes/clusters/{clusterId}/node-configurations
DELETE
Nodeconfigurationapi deleteconfiguration — CAST AI Delete node configuration
/kubernetes/clusters/{clusterId}/node-configurations/{configurationId}
POST
Autoscalerapi executerebalancingplan — CAST AI Trigger rebalancing plan
/kubernetes/clusters/{clusterId}/rebalancing-plans/{rebalancingPlanId}/execute
POST
Clusteractionsapi ackclusteraction — CAST AI Acknowledge cluster action
/kubernetes/clusters/{clusterId}/actions/{actionId}/ack
POST
Clusteractionsapi ingestlogs — CAST AI Ingest cluster controller logs
/kubernetes/clusters/{clusterId}/actions/logs
GET
Workloadoptimizationapi listworkloads — CAST AI List workloads
/workload-autoscaling/clusters/{clusterId}/workloads
GET
Workloadoptimizationapi getworkload — CAST AI Get workload
/workload-autoscaling/clusters/{clusterId}/workloads/{workloadId}
GET
Workloadoptimizationapi getorganizationagentstat — CAST AI Get agent statuses
/workload-autoscaling/agent-statuses
POST
Scheduledrebalancingapi createrebalancingschedul — CAST AI Create rebalancing schedule
/scheduled-rebalancing/schedules
GET
Scheduledrebalancingapi getrebalancingschedule — CAST AI Get rebalancing schedule
/scheduled-rebalancing/schedules/{scheduleId}
DELETE
Scheduledrebalancingapi deleterebalancingschedul — CAST AI Delete rebalancing schedule
/scheduled-rebalancing/schedules/{scheduleId}
GET
Operationsapi getoperation — CAST AI Get operation
/operations/{operationId}
POST
Inventoryblacklistapi addblacklist — CAST AI Add to blacklist
/inventory/blacklist/add
GET
Pricingapi getnodepricing — CAST AI Get node pricing
/pricing/clusters/{clusterId}/nodes/{nodeId}
POST
Pricingapi syncgcpbillingapidata — CAST AI Sync GCP billing data
/pricing/sync-gcp-billing
GET
Costreportsapi getclusterefficiency — CAST AI Get cluster efficiency
/cost-reports/clusters/{clusterId}/efficiency
GET
Allocationgroupapi getallocationgroupworkloadsef — CAST AI Get allocation group workloads efficiency
/allocation-groups/{allocationGroupId}/workloads/efficiency
GET
Insightsapi getbestpracticesreportfilters — CAST AI Get best practices report filters
/security/insights/best-practices/filters
GET
Insightsapi getcontainerimagedigests — CAST AI Get container image digests
/security/insights/images/{tagId}/digests
POST
Hibernationschedulesapi createhibernationschedul — CAST AI Create hibernation schedule
/hibernation/schedules
PUT
Settingsapi upsertapikeysettings — CAST AI Create or update API key settings
/settings/api-keys/{apiKeyId}
GET
Aienablerprovidersapi getproviders — CAST AI Get LLM providers
/llm/providers
POST
Aienablerprovidersapi registerproviders — CAST AI Register LLM providers
/llm/providers
GET
Metricsapi getclustermetrics — CAST AI Get cluster metrics
/metrics/prom
GET
Metricsapi getnodemetrics — CAST AI Get node metrics
/metrics/nodes
GET
Metricsapi getworkloadmetrics — CAST AI Get workload metrics
/metrics/workloads
GET
Metricsapi getallocationgroupmetrics — CAST AI Get allocation group metrics
/metrics/allocation-groups

MCP Tools

externalclusterapi-listnodes

CAST AI List cluster nodes

read-only idempotent
externalclusterapi-drainnode

CAST AI Drain cluster node

externalclusterapi-deletenode

CAST AI Delete cluster node

idempotent
policiesapi-getclusterpolicies

CAST AI Get cluster policies

read-only idempotent
policiesapi-upsertclusterpolicies

CAST AI Upsert cluster policies

idempotent
nodetemplatesapi-listnodetemplates

CAST AI List node templates

read-only idempotent
nodetemplatesapi-createnodetemplate

CAST AI Create node template

nodetemplatesapi-getnodetemplate

CAST AI Get node template

read-only idempotent
nodetemplatesapi-updatenodetemplate

CAST AI Update node template

idempotent
nodetemplatesapi-deletenodetemplate

CAST AI Delete node template

idempotent
nodeconfigurationapi-listconfigurations

CAST AI List node configurations

read-only idempotent
nodeconfigurationapi-createconfiguration

CAST AI Create node configuration

nodeconfigurationapi-deleteconfiguration

CAST AI Delete node configuration

idempotent
autoscalerapi-executerebalancingplan

CAST AI Trigger rebalancing plan

clusteractionsapi-ackclusteraction

CAST AI Acknowledge cluster action

clusteractionsapi-ingestlogs

CAST AI Ingest cluster controller logs

workloadoptimizationapi-listworkloads

CAST AI List workloads

read-only idempotent
workloadoptimizationapi-getworkload

CAST AI Get workload

read-only idempotent
workloadoptimizationapi-getorganizationagentstat

CAST AI Get agent statuses

read-only idempotent
scheduledrebalancingapi-createrebalancingschedul

CAST AI Create rebalancing schedule

scheduledrebalancingapi-getrebalancingschedule

CAST AI Get rebalancing schedule

read-only idempotent
scheduledrebalancingapi-deleterebalancingschedul

CAST AI Delete rebalancing schedule

idempotent
operationsapi-getoperation

CAST AI Get operation

read-only idempotent
inventoryblacklistapi-addblacklist

CAST AI Add to blacklist

pricingapi-getnodepricing

CAST AI Get node pricing

read-only idempotent
pricingapi-syncgcpbillingapidata

CAST AI Sync GCP billing data

costreportsapi-getclusterefficiency

CAST AI Get cluster efficiency

read-only idempotent
allocationgroupapi-getallocationgroupworkloadsef

CAST AI Get allocation group workloads efficiency

read-only idempotent
insightsapi-getbestpracticesreportfilters

CAST AI Get best practices report filters

read-only idempotent
insightsapi-getcontainerimagedigests

CAST AI Get container image digests

read-only idempotent
hibernationschedulesapi-createhibernationschedul

CAST AI Create hibernation schedule

settingsapi-upsertapikeysettings

CAST AI Create or update API key settings

idempotent
aienablerprovidersapi-getproviders

CAST AI Get LLM providers

read-only idempotent
aienablerprovidersapi-registerproviders

CAST AI Register LLM providers

metricsapi-getclustermetrics

CAST AI Get cluster metrics

read-only idempotent
metricsapi-getnodemetrics

CAST AI Get node metrics

read-only idempotent
metricsapi-getworkloadmetrics

CAST AI Get workload metrics

read-only idempotent
metricsapi-getallocationgroupmetrics

CAST AI Get allocation group metrics

read-only idempotent

Capability Spec

cast-ai-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: CAST AI Kubernetes Cost Optimization API
  description: CAST AI is a Kubernetes cost optimization platform that provides APIs for managing clusters, autoscaling, node
    configuration, workload optimization, cost reporting, security insights, and more. The platform continuously monitors
    clusters and optimizes them for cost efficiency using autoscaling, spot instance automation, bin packing, and other techniques.
  tags:
  - Cast
  - Ai
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: cast-ai
    baseUri: https://api.cast.ai/v1
    description: CAST AI Kubernetes Cost Optimization API HTTP API.
    authentication:
      type: apikey
      in: header
      name: X-API-Key
      value: '{{CAST_AI_TOKEN}}'
    resources:
    - name: kubernetes-external-clusters-clusterid-nodes
      path: /kubernetes/external-clusters/{clusterId}/nodes
      operations:
      - name: externalclusterapi-listnodes
        method: GET
        description: CAST AI List cluster nodes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kubernetes-external-clusters-clusterid-nodes-nod
      path: /kubernetes/external-clusters/{clusterId}/nodes/{nodeId}/drain
      operations:
      - name: externalclusterapi-drainnode
        method: POST
        description: CAST AI Drain cluster node
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kubernetes-external-clusters-clusterid-nodes-nod
      path: /kubernetes/external-clusters/{clusterId}/nodes/{nodeId}
      operations:
      - name: externalclusterapi-deletenode
        method: DELETE
        description: CAST AI Delete cluster node
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kubernetes-clusters-clusterid-policies
      path: /kubernetes/clusters/{clusterId}/policies
      operations:
      - name: policiesapi-getclusterpolicies
        method: GET
        description: CAST AI Get cluster policies
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: policiesapi-upsertclusterpolicies
        method: PUT
        description: CAST AI Upsert cluster policies
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kubernetes-clusters-clusterid-node-templates
      path: /kubernetes/clusters/{clusterId}/node-templates
      operations:
      - name: nodetemplatesapi-listnodetemplates
        method: GET
        description: CAST AI List node templates
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: nodetemplatesapi-createnodetemplate
        method: POST
        description: CAST AI Create node template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kubernetes-clusters-clusterid-node-templates-nod
      path: /kubernetes/clusters/{clusterId}/node-templates/{nodeTemplateId}
      operations:
      - name: nodetemplatesapi-getnodetemplate
        method: GET
        description: CAST AI Get node template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: nodetemplatesapi-updatenodetemplate
        method: PUT
        description: CAST AI Update node template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: nodetemplatesapi-deletenodetemplate
        method: DELETE
        description: CAST AI Delete node template
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kubernetes-clusters-clusterid-node-configuration
      path: /kubernetes/clusters/{clusterId}/node-configurations
      operations:
      - name: nodeconfigurationapi-listconfigurations
        method: GET
        description: CAST AI List node configurations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: nodeconfigurationapi-createconfiguration
        method: POST
        description: CAST AI Create node configuration
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kubernetes-clusters-clusterid-node-configuration
      path: /kubernetes/clusters/{clusterId}/node-configurations/{configurationId}
      operations:
      - name: nodeconfigurationapi-deleteconfiguration
        method: DELETE
        description: CAST AI Delete node configuration
        inputParameters:
        - name: configurationId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kubernetes-clusters-clusterid-rebalancing-plans-
      path: /kubernetes/clusters/{clusterId}/rebalancing-plans/{rebalancingPlanId}/execute
      operations:
      - name: autoscalerapi-executerebalancingplan
        method: POST
        description: CAST AI Trigger rebalancing plan
        inputParameters:
        - name: rebalancingPlanId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kubernetes-clusters-clusterid-actions-actionid-a
      path: /kubernetes/clusters/{clusterId}/actions/{actionId}/ack
      operations:
      - name: clusteractionsapi-ackclusteraction
        method: POST
        description: CAST AI Acknowledge cluster action
        inputParameters:
        - name: actionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: kubernetes-clusters-clusterid-actions-logs
      path: /kubernetes/clusters/{clusterId}/actions/logs
      operations:
      - name: clusteractionsapi-ingestlogs
        method: POST
        description: CAST AI Ingest cluster controller logs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: workload-autoscaling-clusters-clusterid-workload
      path: /workload-autoscaling/clusters/{clusterId}/workloads
      operations:
      - name: workloadoptimizationapi-listworkloads
        method: GET
        description: CAST AI List workloads
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: workload-autoscaling-clusters-clusterid-workload
      path: /workload-autoscaling/clusters/{clusterId}/workloads/{workloadId}
      operations:
      - name: workloadoptimizationapi-getworkload
        method: GET
        description: CAST AI Get workload
        inputParameters:
        - name: workloadId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: workload-autoscaling-agent-statuses
      path: /workload-autoscaling/agent-statuses
      operations:
      - name: workloadoptimizationapi-getorganizationagentstat
        method: GET
        description: CAST AI Get agent statuses
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: scheduled-rebalancing-schedules
      path: /scheduled-rebalancing/schedules
      operations:
      - name: scheduledrebalancingapi-createrebalancingschedul
        method: POST
        description: CAST AI Create rebalancing schedule
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: scheduled-rebalancing-schedules-scheduleid
      path: /scheduled-rebalancing/schedules/{scheduleId}
      operations:
      - name: scheduledrebalancingapi-getrebalancingschedule
        method: GET
        description: CAST AI Get rebalancing schedule
        inputParameters:
        - name: scheduleId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: scheduledrebalancingapi-deleterebalancingschedul
        method: DELETE
        description: CAST AI Delete rebalancing schedule
        inputParameters:
        - name: scheduleId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: operations-operationid
      path: /operations/{operationId}
      operations:
      - name: operationsapi-getoperation
        method: GET
        description: CAST AI Get operation
        inputParameters:
        - name: operationId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: inventory-blacklist-add
      path: /inventory/blacklist/add
      operations:
      - name: inventoryblacklistapi-addblacklist
        method: POST
        description: CAST AI Add to blacklist
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: pricing-clusters-clusterid-nodes-nodeid
      path: /pricing/clusters/{clusterId}/nodes/{nodeId}
      operations:
      - name: pricingapi-getnodepricing
        method: GET
        description: CAST AI Get node pricing
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: pricing-sync-gcp-billing
      path: /pricing/sync-gcp-billing
      operations:
      - name: pricingapi-syncgcpbillingapidata
        method: POST
        description: CAST AI Sync GCP billing data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: cost-reports-clusters-clusterid-efficiency
      path: /cost-reports/clusters/{clusterId}/efficiency
      operations:
      - name: costreportsapi-getclusterefficiency
        method: GET
        description: CAST AI Get cluster efficiency
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: allocation-groups-allocationgroupid-workloads-ef
      path: /allocation-groups/{allocationGroupId}/workloads/efficiency
      operations:
      - name: allocationgroupapi-getallocationgroupworkloadsef
        method: GET
        description: CAST AI Get allocation group workloads efficiency
        inputParameters:
        - name: allocationGroupId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: security-insights-best-practices-filters
      path: /security/insights/best-practices/filters
      operations:
      - name: insightsapi-getbestpracticesreportfilters
        method: GET
        description: CAST AI Get best practices report filters
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: security-insights-images-tagid-digests
      path: /security/insights/images/{tagId}/digests
      operations:
      - name: insightsapi-getcontainerimagedigests
        method: GET
        description: CAST AI Get container image digests
        inputParameters:
        - name: tagId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: hibernation-schedules
      path: /hibernation/schedules
      operations:
      - name: hibernationschedulesapi-createhibernationschedul
        method: POST
        description: CAST AI Create hibernation schedule
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: settings-api-keys-apikeyid
      path: /settings/api-keys/{apiKeyId}
      operations:
      - name: settingsapi-upsertapikeysettings
        method: PUT
        description: CAST AI Create or update API key settings
        inputParameters:
        - name: apiKeyId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: llm-providers
      path: /llm/providers
      operations:
      - name: aienablerprovidersapi-getproviders
        method: GET
        description: CAST AI Get LLM providers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: aienablerprovidersapi-registerproviders
        method: POST
        description: CAST AI Register LLM providers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: metrics-prom
      path: /metrics/prom
      operations:
      - name: metricsapi-getclustermetrics
        method: GET
        description: CAST AI Get cluster metrics
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: metrics-nodes
      path: /metrics/nodes
      operations:
      - name: metricsapi-getnodemetrics
        method: GET
        description: CAST AI Get node metrics
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: metrics-workloads
      path: /metrics/workloads
      operations:
      - name: metricsapi-getworkloadmetrics
        method: GET
        description: CAST AI Get workload metrics
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: metrics-allocation-groups
      path: /metrics/allocation-groups
      operations:
      - name: metricsapi-getallocationgroupmetrics
        method: GET
        description: CAST AI Get allocation group metrics
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: cast-ai-rest
    description: REST adapter for CAST AI Kubernetes Cost Optimization API.
    resources:
    - path: /kubernetes/external-clusters/{clusterId}/nodes
      name: externalclusterapi-listnodes
      operations:
      - method: GET
        name: externalclusterapi-listnodes
        description: CAST AI List cluster nodes
        call: cast-ai.externalclusterapi-listnodes
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/external-clusters/{clusterId}/nodes/{nodeId}/drain
      name: externalclusterapi-drainnode
      operations:
      - method: POST
        name: externalclusterapi-drainnode
        description: CAST AI Drain cluster node
        call: cast-ai.externalclusterapi-drainnode
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/external-clusters/{clusterId}/nodes/{nodeId}
      name: externalclusterapi-deletenode
      operations:
      - method: DELETE
        name: externalclusterapi-deletenode
        description: CAST AI Delete cluster node
        call: cast-ai.externalclusterapi-deletenode
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/policies
      name: policiesapi-getclusterpolicies
      operations:
      - method: GET
        name: policiesapi-getclusterpolicies
        description: CAST AI Get cluster policies
        call: cast-ai.policiesapi-getclusterpolicies
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/policies
      name: policiesapi-upsertclusterpolicies
      operations:
      - method: PUT
        name: policiesapi-upsertclusterpolicies
        description: CAST AI Upsert cluster policies
        call: cast-ai.policiesapi-upsertclusterpolicies
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/node-templates
      name: nodetemplatesapi-listnodetemplates
      operations:
      - method: GET
        name: nodetemplatesapi-listnodetemplates
        description: CAST AI List node templates
        call: cast-ai.nodetemplatesapi-listnodetemplates
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/node-templates
      name: nodetemplatesapi-createnodetemplate
      operations:
      - method: POST
        name: nodetemplatesapi-createnodetemplate
        description: CAST AI Create node template
        call: cast-ai.nodetemplatesapi-createnodetemplate
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/node-templates/{nodeTemplateId}
      name: nodetemplatesapi-getnodetemplate
      operations:
      - method: GET
        name: nodetemplatesapi-getnodetemplate
        description: CAST AI Get node template
        call: cast-ai.nodetemplatesapi-getnodetemplate
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/node-templates/{nodeTemplateId}
      name: nodetemplatesapi-updatenodetemplate
      operations:
      - method: PUT
        name: nodetemplatesapi-updatenodetemplate
        description: CAST AI Update node template
        call: cast-ai.nodetemplatesapi-updatenodetemplate
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/node-templates/{nodeTemplateId}
      name: nodetemplatesapi-deletenodetemplate
      operations:
      - method: DELETE
        name: nodetemplatesapi-deletenodetemplate
        description: CAST AI Delete node template
        call: cast-ai.nodetemplatesapi-deletenodetemplate
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/node-configurations
      name: nodeconfigurationapi-listconfigurations
      operations:
      - method: GET
        name: nodeconfigurationapi-listconfigurations
        description: CAST AI List node configurations
        call: cast-ai.nodeconfigurationapi-listconfigurations
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/node-configurations
      name: nodeconfigurationapi-createconfiguration
      operations:
      - method: POST
        name: nodeconfigurationapi-createconfiguration
        description: CAST AI Create node configuration
        call: cast-ai.nodeconfigurationapi-createconfiguration
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/node-configurations/{configurationId}
      name: nodeconfigurationapi-deleteconfiguration
      operations:
      - method: DELETE
        name: nodeconfigurationapi-deleteconfiguration
        description: CAST AI Delete node configuration
        call: cast-ai.nodeconfigurationapi-deleteconfiguration
        with:
          configurationId: rest.configurationId
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/rebalancing-plans/{rebalancingPlanId}/execute
      name: autoscalerapi-executerebalancingplan
      operations:
      - method: POST
        name: autoscalerapi-executerebalancingplan
        description: CAST AI Trigger rebalancing plan
        call: cast-ai.autoscalerapi-executerebalancingplan
        with:
          rebalancingPlanId: rest.rebalancingPlanId
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/actions/{actionId}/ack
      name: clusteractionsapi-ackclusteraction
      operations:
      - method: POST
        name: clusteractionsapi-ackclusteraction
        description: CAST AI Acknowledge cluster action
        call: cast-ai.clusteractionsapi-ackclusteraction
        with:
          actionId: rest.actionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /kubernetes/clusters/{clusterId}/actions/logs
      name: clusteractionsapi-ingestlogs
      operations:
      - method: POST
        name: clusteractionsapi-ingestlogs
        description: CAST AI Ingest cluster controller logs
        call: cast-ai.clusteractionsapi-ingestlogs
        outputParameters:
        - type: object
          mapping: $.
    - path: /workload-autoscaling/clusters/{clusterId}/workloads
      name: workloadoptimizationapi-listworkloads
      operations:
      - method: GET
        name: workloadoptimizationapi-listworkloads
        description: CAST AI List workloads
        call: cast-ai.workloadoptimizationapi-listworkloads
        outputParameters:
        - type: object
          mapping: $.
    - path: /workload-autoscaling/clusters/{clusterId}/workloads/{workloadId}
      name: workloadoptimizationapi-getworkload
      operations:
      - method: GET
        name: workloadoptimizationapi-getworkload
        description: CAST AI Get workload
        call: cast-ai.workloadoptimizationapi-getworkload
        with:
          workloadId: rest.workloadId
        outputParameters:
        - type: object
          mapping: $.
    - path: /workload-autoscaling/agent-statuses
      name: workloadoptimizationapi-getorganizationagentstat
      operations:
      - method: GET
        name: workloadoptimizationapi-getorganizationagentstat
        description: CAST AI Get agent statuses
        call: cast-ai.workloadoptimizationapi-getorganizationagentstat
        outputParameters:
        - type: object
          mapping: $.
    - path: /scheduled-rebalancing/schedules
      name: scheduledrebalancingapi-createrebalancingschedul
      operations:
      - method: POST
        name: scheduledrebalancingapi-createrebalancingschedul
        description: CAST AI Create rebalancing schedule
        call: cast-ai.scheduledrebalancingapi-createrebalancingschedul
        outputParameters:
        - type: object
          mapping: $.
    - path: /scheduled-rebalancing/schedules/{scheduleId}
      name: scheduledrebalancingapi-getrebalancingschedule
      operations:
      - method: GET
        name: scheduledrebalancingapi-getrebalancingschedule
        description: CAST AI Get rebalancing schedule
        call: cast-ai.scheduledrebalancingapi-getrebalancingschedule
        with:
          scheduleId: rest.scheduleId
        outputParameters:
        - type: object
          mapping: $.
    - path: /scheduled-rebalancing/schedules/{scheduleId}
      name: scheduledrebalancingapi-deleterebalancingschedul
      operations:
      - method: DELETE
        name: scheduledrebalancingapi-deleterebalancingschedul
        description: CAST AI Delete rebalancing schedule
        call: cast-ai.scheduledrebalancingapi-deleterebalancingschedul
        with:
          scheduleId: rest.scheduleId
        outputParameters:
        - type: object
          mapping: $.
    - path: /operations/{operationId}
      name: operationsapi-getoperation
      operations:
      - method: GET
        name: operationsapi-getoperation
        description: CAST AI Get operation
        call: cast-ai.operationsapi-getoperation
        with:
          operationId: rest.operationId
        outputParameters:
        - type: object
          mapping: $.
    - path: /inventory/blacklist/add
      name: inventoryblacklistapi-addblacklist
      operations:
      - method: POST
        name: inventoryblacklistapi-addblacklist
        description: CAST AI Add to blacklist
        call: cast-ai.inventoryblacklistapi-addblacklist
        outputParameters:
        - type: object
          mapping: $.
    - path: /pricing/clusters/{clusterId}/nodes/{nodeId}
      name: pricingapi-getnodepricing
      operations:
      - method: GET
        name: pricingapi-getnodepricing
        description: CAST AI Get node pricing
        call: cast-ai.pricingapi-getnodepricing
        outputParameters:
        - type: object
          mapping: $.
    - path: /pricing/sync-gcp-billing
      name: pricingapi-syncgcpbillingapidata
      operations:
      - method: POST
        name: pricingapi-syncgcpbillingapidata
        description: CAST AI Sync GCP billing data
        call: cast-ai.pricingapi-syncgcpbillingapidata
        outputParameters:
        - type: object
          mapping: $.
    - path: /cost-reports/clusters/{clusterId}/efficiency
      name: costreportsapi-getclusterefficiency
      operations:
      - method: GET
        name: costreportsapi-getclusterefficiency
        description: CAST AI Get cluster efficiency
        call: cast-ai.costreportsapi-getclusterefficiency
        outputParameters:
        - type: object
          mapping: $.
    - path: /allocation-groups/{allocationGroupId}/workloads/efficiency
      name: allocationgroupapi-getallocationgroupworkloadsef
      operations:
      - method: GET
        name: allocationgroupapi-getallocationgroupworkloadsef
        description: CAST AI Get allocation group workloads efficiency
        call: cast-ai.allocationgroupapi-getallocationgroupworkloadsef
        with:
          allocationGroupId: rest.allocationGroupId
        outputParameters:
        - type: object
          mapping: $.
    - path: /security/insights/best-practices/filters
      name: insightsapi-getbestpracticesreportfilters
      operations:
      - method: GET
        name: insightsapi-getbestpracticesreportfilters
        description: CAST AI Get best practices report filters
        call: cast-ai.insightsapi-getbestpracticesreportfilters
        outputParameters:
        - type: object
          mapping: $.
    - path: /security/insights/images/{tagId}/digests
      name: insightsapi-getcontainerimagedigests
      operations:
      - method: GET
        name: insightsapi-getcontainerimagedigests
        description: CAST AI Get container image digests
        call: cast-ai.insightsapi-getcontainerimagedigests
        with:
          tagId: rest.tagId
        outputParameters:
        - type: object
          mapping: $.
    - path: /hibernation/schedules
      name: hibernationschedulesapi-createhibernationschedul
      operations:
      - method: POST
        name: hibernationschedulesapi-createhibernationschedul
        description: CAST AI Create hibernation schedule
        call: cast-ai.hibernationschedulesapi-createhibernationschedul
        outputParameters:
        - type: object
          mapping: $.
    - path: /settings/api-keys/{apiKeyId}
      name: settingsapi-upsertapikeysettings
      operations:
      - method: PUT
        name: settingsapi-upsertapikeysettings
        description: CAST AI Create or update API key settings
        call: cast-ai.settingsapi-upsertapikeysettings
        with:
          apiKeyId: rest.apiKeyId
        outputParameters:
        - type: object
          mapping: $.
    - path: /llm/providers
      name: aienablerprovidersapi-getproviders
      operations:
      - method: GET
        name: aienablerprovidersapi-getproviders
        description: CAST AI Get LLM providers
        call: cast-ai.aienablerprovidersapi-getproviders
        outputParameters:
        - type: object
          mapping: $.
    - path: /llm/providers
      name: aienablerprovidersapi-registerproviders
      operations:
      - method: POST
        name: aienablerprovidersapi-registerproviders
        description: CAST AI Register LLM providers
        call: cast-ai.aienablerprovidersapi-registerproviders
        outputParameters:
        - type: object
          mapping: $.
    - path: /metrics/prom
      name: metricsapi-getclustermetrics
      operations:
      - method: GET
        name: metricsapi-getclustermetrics
        description: CAST AI Get cluster metrics
        call: cast-ai.metricsapi-getclustermetrics
        outputParameters:
        - type: object
          mapping: $.
    - path: /metrics/nodes
      name: metricsapi-getnodemetrics
      operations:
      - method: GET
        name: metricsapi-getnodemetrics
        description: CAST AI Get node metrics
        call: cast-ai.metricsapi-getnodemetrics
        outputParameters:
        - type: object
          mapping: $.
    - path: /metrics/workloads
      name: metricsapi-getworkloadmetrics
      operations:
      - method: GET
        name: metricsapi-getworkloadmetrics
        description: CAST AI Get workload metrics
        call: cast-ai.metricsapi-getworkloadmetrics
        outputParameters:
        - type: object
          mapping: $.
    - path: /metrics/allocation-groups
      name: metricsapi-getallocationgroupmetrics
      operations:
      - method: GET
        name: metricsapi-getallocationgroupmetrics
        description: CAST AI Get allocation group metrics
        call: cast-ai.metricsapi-getallocationgroupmetrics
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: cast-ai-mcp
    transport: http
    description: MCP adapter for CAST AI Kubernetes Cost Optimization API for AI agent use.
    tools:
    - name: externalclusterapi-listnodes
      description: CAST AI List cluster nodes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cast-ai.externalclusterapi-listnodes
      outputParameters:
      - type: object
        mapping: $.
    - name: externalclusterapi-drainnode
      description: CAST AI Drain cluster node
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: cast-ai.externalclusterapi-drainnode
      outputParameters:
      - type: object
        mapping: $.
    - name: externalclusterapi-deletenode
      description: CAST AI Delete cluster node
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: cast-ai.externalclusterapi-deletenode
      outputParameters:
      - type: object
        mapping: $.
    - name: policiesapi-getclusterpolicies
      description: CAST AI Get cluster policies
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cast-ai.policiesapi-getclusterpolicies
      outputParameters:
      - type: object
        mapping: $.
    - name: policiesapi-upsertclusterpolicies
      description: CAST AI Upsert cluster policies
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: cast-ai.policiesapi-upsertclusterpolicies
      outputParameters:
      - type: object
        mapping: $.
    - name: nodetemplatesapi-listnodetemplates
      description: CAST AI List node templates
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cast-ai.nodetemplatesapi-listnodetemplates
      outputParameters:
      - type: object
        mapping: $.
    - name: nodetemplatesapi-createnodetemplate
      description: CAST AI Create node template
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: cast-ai.nodetemplatesapi-createnodetemplate
      outputParameters:
      - type: object
        mapping: $.
    - name: nodetemplatesapi-getnodetemplate
      description: CAST AI Get node template
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cast-ai.nodetemplatesapi-getnodetemplate
      outputParameters:
      - type: object
        mapping: $.
    - name: nodetemplatesapi-updatenodetemplate
      description: CAST AI Update node template
      hints:
        readOnly: false
        destructive: false
        id

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cast-ai/refs/heads/main/capabilities/cast-ai-capability.yaml