Scaleway · Capability

Kubernetes API — Nodes

Kubernetes API — Nodes. 5 operations. Lead operation: List Nodes in a Cluster. Self-contained Naftiko capability covering one Scaleway business surface.

Run with Naftiko ScalewayNodes

What You Can Do

GET
Listnodes — List Nodes in a Cluster
/v1/k8s/v1/regions/{region}/clusters/{cluster-id}/nodes
GET
Getnode — Get a Node in a Cluster
/v1/k8s/v1/regions/{region}/nodes/{node-id}
DELETE
Deletenode — Delete a Node in a Cluster
/v1/k8s/v1/regions/{region}/nodes/{node-id}
POST
Rebootnode — Reboot a Node in a Cluster
/v1/k8s/v1/regions/{region}/nodes/{node-id}/reboot
POST
Createexternalnode — Create a Kosmos node
/v1/k8s/v1/regions/{region}/pools/{pool-id}/external-nodes

MCP Tools

list-nodes-cluster

List Nodes in a Cluster

read-only idempotent
get-node-cluster

Get a Node in a Cluster

read-only idempotent
delete-node-cluster

Delete a Node in a Cluster

idempotent
reboot-node-cluster

Reboot a Node in a Cluster

create-kosmos-node

Create a Kosmos node

Capability Spec

kubernetes-nodes.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Kubernetes API — Nodes
  description: 'Kubernetes API — Nodes. 5 operations. Lead operation: List Nodes in a Cluster. Self-contained Naftiko capability
    covering one Scaleway business surface.'
  tags:
  - Scaleway
  - Nodes
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SCALEWAY_API_KEY: SCALEWAY_API_KEY
capability:
  consumes:
  - type: http
    namespace: kubernetes-nodes
    baseUri: https://api.scaleway.com
    description: Kubernetes API — Nodes business capability. Self-contained, no shared references.
    resources:
    - name: k8s-v1-regions-region-clusters-cluster_id-nodes
      path: /k8s/v1/regions/{region}/clusters/{cluster_id}/nodes
      operations:
      - name: listnodes
        method: GET
        description: List Nodes in a Cluster
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: region
          in: path
          type: string
          description: The region you want to target
          required: true
        - name: cluster_id
          in: path
          type: string
          description: Cluster ID from which the nodes will be listed from.
          required: true
        - name: pool_id
          in: query
          type: string
          description: Pool ID on which to filter the returned nodes.
        - name: order_by
          in: query
          type: string
          description: Sort order of the returned nodes.
        - name: page
          in: query
          type: integer
          description: Page number for the returned nodes.
        - name: page_size
          in: query
          type: integer
          description: Maximum number of nodes per page.
        - name: name
          in: query
          type: string
          description: Name to filter on, only nodes containing this substring in their name will be returned.
        - name: status
          in: query
          type: string
          description: Status to filter on, only nodes with this status will be returned.
    - name: k8s-v1-regions-region-nodes-node_id
      path: /k8s/v1/regions/{region}/nodes/{node_id}
      operations:
      - name: getnode
        method: GET
        description: Get a Node in a Cluster
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: region
          in: path
          type: string
          description: The region you want to target
          required: true
        - name: node_id
          in: path
          type: string
          description: ID of the requested node.
          required: true
      - name: deletenode
        method: DELETE
        description: Delete a Node in a Cluster
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: region
          in: path
          type: string
          description: The region you want to target
          required: true
        - name: node_id
          in: path
          type: string
          description: ID of the node to replace.
          required: true
        - name: skip_drain
          in: query
          type: boolean
          description: 'Skip draining node from its workload (Note: this parameter is currently inactive).'
          required: true
    - name: k8s-v1-regions-region-nodes-node_id-reboot
      path: /k8s/v1/regions/{region}/nodes/{node_id}/reboot
      operations:
      - name: rebootnode
        method: POST
        description: Reboot a Node in a Cluster
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: region
          in: path
          type: string
          description: The region you want to target
          required: true
        - name: node_id
          in: path
          type: string
          description: ID of the node to reboot.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: k8s-v1-regions-region-pools-pool_id-external-nodes
      path: /k8s/v1/regions/{region}/pools/{pool_id}/external-nodes
      operations:
      - name: createexternalnode
        method: POST
        description: Create a Kosmos node
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: region
          in: path
          type: string
          description: The region you want to target
          required: true
        - name: pool_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: apikey
      key: X-Auth-Token
      value: '{{env.SCALEWAY_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: kubernetes-nodes-rest
    port: 8080
    description: REST adapter for Kubernetes API — Nodes. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/k8s/v1/regions/{region}/clusters/{cluster-id}/nodes
      name: k8s-v1-regions-region-clusters-cluster-id-nodes
      description: REST surface for k8s-v1-regions-region-clusters-cluster_id-nodes.
      operations:
      - method: GET
        name: listnodes
        description: List Nodes in a Cluster
        call: kubernetes-nodes.listnodes
        with:
          region: rest.region
          cluster_id: rest.cluster_id
          pool_id: rest.pool_id
          order_by: rest.order_by
          page: rest.page
          page_size: rest.page_size
          name: rest.name
          status: rest.status
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/k8s/v1/regions/{region}/nodes/{node-id}
      name: k8s-v1-regions-region-nodes-node-id
      description: REST surface for k8s-v1-regions-region-nodes-node_id.
      operations:
      - method: GET
        name: getnode
        description: Get a Node in a Cluster
        call: kubernetes-nodes.getnode
        with:
          region: rest.region
          node_id: rest.node_id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletenode
        description: Delete a Node in a Cluster
        call: kubernetes-nodes.deletenode
        with:
          region: rest.region
          node_id: rest.node_id
          skip_drain: rest.skip_drain
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/k8s/v1/regions/{region}/nodes/{node-id}/reboot
      name: k8s-v1-regions-region-nodes-node-id-reboot
      description: REST surface for k8s-v1-regions-region-nodes-node_id-reboot.
      operations:
      - method: POST
        name: rebootnode
        description: Reboot a Node in a Cluster
        call: kubernetes-nodes.rebootnode
        with:
          region: rest.region
          node_id: rest.node_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/k8s/v1/regions/{region}/pools/{pool-id}/external-nodes
      name: k8s-v1-regions-region-pools-pool-id-external-nodes
      description: REST surface for k8s-v1-regions-region-pools-pool_id-external-nodes.
      operations:
      - method: POST
        name: createexternalnode
        description: Create a Kosmos node
        call: kubernetes-nodes.createexternalnode
        with:
          region: rest.region
          pool_id: rest.pool_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: kubernetes-nodes-mcp
    port: 9090
    transport: http
    description: MCP adapter for Kubernetes API — Nodes. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: list-nodes-cluster
      description: List Nodes in a Cluster
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: kubernetes-nodes.listnodes
      with:
        region: tools.region
        cluster_id: tools.cluster_id
        pool_id: tools.pool_id
        order_by: tools.order_by
        page: tools.page
        page_size: tools.page_size
        name: tools.name
        status: tools.status
      outputParameters:
      - type: object
        mapping: $.
    - name: get-node-cluster
      description: Get a Node in a Cluster
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: kubernetes-nodes.getnode
      with:
        region: tools.region
        node_id: tools.node_id
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-node-cluster
      description: Delete a Node in a Cluster
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: kubernetes-nodes.deletenode
      with:
        region: tools.region
        node_id: tools.node_id
        skip_drain: tools.skip_drain
      outputParameters:
      - type: object
        mapping: $.
    - name: reboot-node-cluster
      description: Reboot a Node in a Cluster
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kubernetes-nodes.rebootnode
      with:
        region: tools.region
        node_id: tools.node_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-kosmos-node
      description: Create a Kosmos node
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kubernetes-nodes.createexternalnode
      with:
        region: tools.region
        pool_id: tools.pool_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.