Kubecost · Capability

Kubecost Budget API — Model

Kubecost Budget API — Model. 5 operations. Lead operation: Kubecost List all budgets. Self-contained Naftiko capability covering one Kubecost business surface.

Run with Naftiko KubecostModel

What You Can Do

GET
Listbudgets — Kubecost List all budgets
/v1/model/budget
POST
Createbudget — Kubecost Create a budget
/v1/model/budget
GET
Getbudget — Kubecost Get a specific budget
/v1/model/budget/{id}
PUT
Updatebudget — Kubecost Update a budget
/v1/model/budget/{id}
DELETE
Deletebudget — Kubecost Delete a budget
/v1/model/budget/{id}

MCP Tools

kubecost-list-all-budgets

Kubecost List all budgets

read-only idempotent
kubecost-create-budget

Kubecost Create a budget

kubecost-get-specific-budget

Kubecost Get a specific budget

read-only idempotent
kubecost-update-budget

Kubecost Update a budget

idempotent
kubecost-delete-budget

Kubecost Delete a budget

idempotent

Capability Spec

budget-model.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Kubecost Budget API — Model
  description: 'Kubecost Budget API — Model. 5 operations. Lead operation: Kubecost List all budgets. Self-contained Naftiko
    capability covering one Kubecost business surface.'
  tags:
  - Kubecost
  - Model
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    KUBECOST_API_KEY: KUBECOST_API_KEY
capability:
  consumes:
  - type: http
    namespace: budget-model
    baseUri: http://{kubecost-address}
    description: Kubecost Budget API — Model business capability. Self-contained, no shared references.
    resources:
    - name: model-budget
      path: /model/budget
      operations:
      - name: listbudgets
        method: GET
        description: Kubecost List all budgets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createbudget
        method: POST
        description: Kubecost Create a budget
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: model-budget-id
      path: /model/budget/{id}
      operations:
      - name: getbudget
        method: GET
        description: Kubecost Get a specific budget
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Unique identifier of the budget.
          required: true
      - name: updatebudget
        method: PUT
        description: Kubecost Update a budget
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Unique identifier of the budget.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletebudget
        method: DELETE
        description: Kubecost Delete a budget
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Unique identifier of the budget.
          required: true
  exposes:
  - type: rest
    namespace: budget-model-rest
    port: 8080
    description: REST adapter for Kubecost Budget API — Model. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/model/budget
      name: model-budget
      description: REST surface for model-budget.
      operations:
      - method: GET
        name: listbudgets
        description: Kubecost List all budgets
        call: budget-model.listbudgets
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createbudget
        description: Kubecost Create a budget
        call: budget-model.createbudget
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/model/budget/{id}
      name: model-budget-id
      description: REST surface for model-budget-id.
      operations:
      - method: GET
        name: getbudget
        description: Kubecost Get a specific budget
        call: budget-model.getbudget
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatebudget
        description: Kubecost Update a budget
        call: budget-model.updatebudget
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletebudget
        description: Kubecost Delete a budget
        call: budget-model.deletebudget
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: budget-model-mcp
    port: 9090
    transport: http
    description: MCP adapter for Kubecost Budget API — Model. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: kubecost-list-all-budgets
      description: Kubecost List all budgets
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: budget-model.listbudgets
      outputParameters:
      - type: object
        mapping: $.
    - name: kubecost-create-budget
      description: Kubecost Create a budget
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: budget-model.createbudget
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: kubecost-get-specific-budget
      description: Kubecost Get a specific budget
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: budget-model.getbudget
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: kubecost-update-budget
      description: Kubecost Update a budget
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: budget-model.updatebudget
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: kubecost-delete-budget
      description: Kubecost Delete a budget
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: budget-model.deletebudget
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.