Scaleway · Capability
Kubernetes API — Clusters
Kubernetes API — Clusters. 11 operations. Lead operation: List Clusters. Self-contained Naftiko capability covering one Scaleway business surface.
What You Can Do
GET
Listclusters
— List Clusters
/v1/k8s/v1/regions/{region}/clusters
POST
Createcluster
— Create a new Cluster
/v1/k8s/v1/regions/{region}/clusters
GET
Getcluster
— Get a Cluster
/v1/k8s/v1/regions/{region}/clusters/{cluster-id}
PATCH
Updatecluster
— Update a Cluster
/v1/k8s/v1/regions/{region}/clusters/{cluster-id}
DELETE
Deletecluster
— Delete a Cluster
/v1/k8s/v1/regions/{region}/clusters/{cluster-id}
GET
Listclusteravailabletypes
— List available cluster types for a cluster
/v1/k8s/v1/regions/{region}/clusters/{cluster-id}/available-types
GET
Listclusteravailableversions
— List available versions for a Cluster
/v1/k8s/v1/regions/{region}/clusters/{cluster-id}/available-versions
GET
Getclusterkubeconfig
— Download the kubeconfig for a Cluster
/v1/k8s/v1/regions/{region}/clusters/{cluster-id}/kubeconfig
POST
Resetclusteradmintoken
— Reset the admin token of a Cluster
/v1/k8s/v1/regions/{region}/clusters/{cluster-id}/reset-admin-token
POST
Setclustertype
— Change the Cluster type
/v1/k8s/v1/regions/{region}/clusters/{cluster-id}/set-type
POST
Upgradecluster
— Upgrade a Cluster
/v1/k8s/v1/regions/{region}/clusters/{cluster-id}/upgrade
MCP Tools
list-clusters
List Clusters
read-only
idempotent
create-new-cluster
Create a new Cluster
get-cluster
Get a Cluster
read-only
idempotent
update-cluster
Update a Cluster
idempotent
delete-cluster
Delete a Cluster
idempotent
list-available-cluster-types-cluster
List available cluster types for a cluster
read-only
idempotent
list-available-versions-cluster
List available versions for a Cluster
read-only
idempotent
download-kubeconfig-cluster
Download the kubeconfig for a Cluster
read-only
idempotent
reset-admin-token-cluster
Reset the admin token of a Cluster
change-cluster-type
Change the Cluster type
upgrade-cluster
Upgrade a Cluster
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Kubernetes API — Clusters
description: 'Kubernetes API — Clusters. 11 operations. Lead operation: List Clusters. Self-contained Naftiko capability
covering one Scaleway business surface.'
tags:
- Scaleway
- Clusters
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
SCALEWAY_API_KEY: SCALEWAY_API_KEY
capability:
consumes:
- type: http
namespace: kubernetes-clusters
baseUri: https://api.scaleway.com
description: Kubernetes API — Clusters business capability. Self-contained, no shared references.
resources:
- name: k8s-v1-regions-region-clusters
path: /k8s/v1/regions/{region}/clusters
operations:
- name: listclusters
method: GET
description: List Clusters
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: organization_id
in: query
type: string
description: Organization ID on which to filter the returned clusters.
- name: project_id
in: query
type: string
description: Project ID on which to filter the returned clusters.
- name: order_by
in: query
type: string
description: Sort order of returned clusters.
- name: page
in: query
type: integer
description: Page number to return for clusters, from the paginated results.
- name: page_size
in: query
type: integer
description: Maximum number of clusters per page.
- name: name
in: query
type: string
description: Name to filter on, only clusters containing this substring in their name will be returned.
- name: status
in: query
type: string
description: Status to filter on, only clusters with this status will be returned.
- name: type
in: query
type: string
description: Type to filter on, only clusters with this type will be returned.
- name: private_network_id
in: query
type: string
description: Private Network ID to filter on, only clusters within this Private Network will be returned.
- name: createcluster
method: POST
description: Create a new 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: body
in: body
type: object
description: Request body (JSON).
required: true
- name: k8s-v1-regions-region-clusters-cluster_id
path: /k8s/v1/regions/{region}/clusters/{cluster_id}
operations:
- name: getcluster
method: GET
description: Get 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: ID of the requested cluster.
required: true
- name: updatecluster
method: PATCH
description: Update 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: ID of the cluster to update.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deletecluster
method: DELETE
description: Delete 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: ID of the cluster to delete.
required: true
- name: with_additional_resources
in: query
type: boolean
description: Defines whether all volumes (including retain volume type), empty Private Networks and Load Balancers
with a name starting with the cluster ID will also be dele
required: true
- name: k8s-v1-regions-region-clusters-cluster_id-available-types
path: /k8s/v1/regions/{region}/clusters/{cluster_id}/available-types
operations:
- name: listclusteravailabletypes
method: GET
description: List available cluster types for 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 for which the available Kubernetes types will be listed.
required: true
- name: k8s-v1-regions-region-clusters-cluster_id-available-versions
path: /k8s/v1/regions/{region}/clusters/{cluster_id}/available-versions
operations:
- name: listclusteravailableversions
method: GET
description: List available versions for 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 for which the available Kubernetes versions will be listed.
required: true
- name: k8s-v1-regions-region-clusters-cluster_id-kubeconfig
path: /k8s/v1/regions/{region}/clusters/{cluster_id}/kubeconfig
operations:
- name: getclusterkubeconfig
method: GET
description: Download the kubeconfig for 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 for which to download the kubeconfig.
required: true
- name: redacted
in: query
type: boolean
description: Hide the legacy token from the kubeconfig.
- name: k8s-v1-regions-region-clusters-cluster_id-reset-admin-token
path: /k8s/v1/regions/{region}/clusters/{cluster_id}/reset-admin-token
operations:
- name: resetclusteradmintoken
method: POST
description: Reset the admin token of 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 on which the admin token will be renewed.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: k8s-v1-regions-region-clusters-cluster_id-set-type
path: /k8s/v1/regions/{region}/clusters/{cluster_id}/set-type
operations:
- name: setclustertype
method: POST
description: Change the Cluster type
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: ID of the cluster to migrate from one type to another.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: k8s-v1-regions-region-clusters-cluster_id-upgrade
path: /k8s/v1/regions/{region}/clusters/{cluster_id}/upgrade
operations:
- name: upgradecluster
method: POST
description: Upgrade 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: ID of the cluster to upgrade.
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-clusters-rest
port: 8080
description: REST adapter for Kubernetes API — Clusters. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/k8s/v1/regions/{region}/clusters
name: k8s-v1-regions-region-clusters
description: REST surface for k8s-v1-regions-region-clusters.
operations:
- method: GET
name: listclusters
description: List Clusters
call: kubernetes-clusters.listclusters
with:
region: rest.region
organization_id: rest.organization_id
project_id: rest.project_id
order_by: rest.order_by
page: rest.page
page_size: rest.page_size
name: rest.name
status: rest.status
type: rest.type
private_network_id: rest.private_network_id
outputParameters:
- type: object
mapping: $.
- method: POST
name: createcluster
description: Create a new Cluster
call: kubernetes-clusters.createcluster
with:
region: rest.region
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/k8s/v1/regions/{region}/clusters/{cluster-id}
name: k8s-v1-regions-region-clusters-cluster-id
description: REST surface for k8s-v1-regions-region-clusters-cluster_id.
operations:
- method: GET
name: getcluster
description: Get a Cluster
call: kubernetes-clusters.getcluster
with:
region: rest.region
cluster_id: rest.cluster_id
outputParameters:
- type: object
mapping: $.
- method: PATCH
name: updatecluster
description: Update a Cluster
call: kubernetes-clusters.updatecluster
with:
region: rest.region
cluster_id: rest.cluster_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletecluster
description: Delete a Cluster
call: kubernetes-clusters.deletecluster
with:
region: rest.region
cluster_id: rest.cluster_id
with_additional_resources: rest.with_additional_resources
outputParameters:
- type: object
mapping: $.
- path: /v1/k8s/v1/regions/{region}/clusters/{cluster-id}/available-types
name: k8s-v1-regions-region-clusters-cluster-id-available-types
description: REST surface for k8s-v1-regions-region-clusters-cluster_id-available-types.
operations:
- method: GET
name: listclusteravailabletypes
description: List available cluster types for a cluster
call: kubernetes-clusters.listclusteravailabletypes
with:
region: rest.region
cluster_id: rest.cluster_id
outputParameters:
- type: object
mapping: $.
- path: /v1/k8s/v1/regions/{region}/clusters/{cluster-id}/available-versions
name: k8s-v1-regions-region-clusters-cluster-id-available-versions
description: REST surface for k8s-v1-regions-region-clusters-cluster_id-available-versions.
operations:
- method: GET
name: listclusteravailableversions
description: List available versions for a Cluster
call: kubernetes-clusters.listclusteravailableversions
with:
region: rest.region
cluster_id: rest.cluster_id
outputParameters:
- type: object
mapping: $.
- path: /v1/k8s/v1/regions/{region}/clusters/{cluster-id}/kubeconfig
name: k8s-v1-regions-region-clusters-cluster-id-kubeconfig
description: REST surface for k8s-v1-regions-region-clusters-cluster_id-kubeconfig.
operations:
- method: GET
name: getclusterkubeconfig
description: Download the kubeconfig for a Cluster
call: kubernetes-clusters.getclusterkubeconfig
with:
region: rest.region
cluster_id: rest.cluster_id
redacted: rest.redacted
outputParameters:
- type: object
mapping: $.
- path: /v1/k8s/v1/regions/{region}/clusters/{cluster-id}/reset-admin-token
name: k8s-v1-regions-region-clusters-cluster-id-reset-admin-token
description: REST surface for k8s-v1-regions-region-clusters-cluster_id-reset-admin-token.
operations:
- method: POST
name: resetclusteradmintoken
description: Reset the admin token of a Cluster
call: kubernetes-clusters.resetclusteradmintoken
with:
region: rest.region
cluster_id: rest.cluster_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/k8s/v1/regions/{region}/clusters/{cluster-id}/set-type
name: k8s-v1-regions-region-clusters-cluster-id-set-type
description: REST surface for k8s-v1-regions-region-clusters-cluster_id-set-type.
operations:
- method: POST
name: setclustertype
description: Change the Cluster type
call: kubernetes-clusters.setclustertype
with:
region: rest.region
cluster_id: rest.cluster_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/k8s/v1/regions/{region}/clusters/{cluster-id}/upgrade
name: k8s-v1-regions-region-clusters-cluster-id-upgrade
description: REST surface for k8s-v1-regions-region-clusters-cluster_id-upgrade.
operations:
- method: POST
name: upgradecluster
description: Upgrade a Cluster
call: kubernetes-clusters.upgradecluster
with:
region: rest.region
cluster_id: rest.cluster_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: kubernetes-clusters-mcp
port: 9090
transport: http
description: MCP adapter for Kubernetes API — Clusters. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: list-clusters
description: List Clusters
hints:
readOnly: true
destructive: false
idempotent: true
call: kubernetes-clusters.listclusters
with:
region: tools.region
organization_id: tools.organization_id
project_id: tools.project_id
order_by: tools.order_by
page: tools.page
page_size: tools.page_size
name: tools.name
status: tools.status
type: tools.type
private_network_id: tools.private_network_id
outputParameters:
- type: object
mapping: $.
- name: create-new-cluster
description: Create a new Cluster
hints:
readOnly: false
destructive: false
idempotent: false
call: kubernetes-clusters.createcluster
with:
region: tools.region
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-cluster
description: Get a Cluster
hints:
readOnly: true
destructive: false
idempotent: true
call: kubernetes-clusters.getcluster
with:
region: tools.region
cluster_id: tools.cluster_id
outputParameters:
- type: object
mapping: $.
- name: update-cluster
description: Update a Cluster
hints:
readOnly: false
destructive: false
idempotent: true
call: kubernetes-clusters.updatecluster
with:
region: tools.region
cluster_id: tools.cluster_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-cluster
description: Delete a Cluster
hints:
readOnly: false
destructive: true
idempotent: true
call: kubernetes-clusters.deletecluster
with:
region: tools.region
cluster_id: tools.cluster_id
with_additional_resources: tools.with_additional_resources
outputParameters:
- type: object
mapping: $.
- name: list-available-cluster-types-cluster
description: List available cluster types for a cluster
hints:
readOnly: true
destructive: false
idempotent: true
call: kubernetes-clusters.listclusteravailabletypes
with:
region: tools.region
cluster_id: tools.cluster_id
outputParameters:
- type: object
mapping: $.
- name: list-available-versions-cluster
description: List available versions for a Cluster
hints:
readOnly: true
destructive: false
idempotent: true
call: kubernetes-clusters.listclusteravailableversions
with:
region: tools.region
cluster_id: tools.cluster_id
outputParameters:
- type: object
mapping: $.
- name: download-kubeconfig-cluster
description: Download the kubeconfig for a Cluster
hints:
readOnly: true
destructive: false
idempotent: true
call: kubernetes-clusters.getclusterkubeconfig
with:
region: tools.region
cluster_id: tools.cluster_id
redacted: tools.redacted
outputParameters:
- type: object
mapping: $.
- name: reset-admin-token-cluster
description: Reset the admin token of a Cluster
hints:
readOnly: false
destructive: false
idempotent: false
call: kubernetes-clusters.resetclusteradmintoken
with:
region: tools.region
cluster_id: tools.cluster_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: change-cluster-type
description: Change the Cluster type
hints:
readOnly: false
destructive: false
idempotent: false
call: kubernetes-clusters.setclustertype
with:
region: tools.region
cluster_id: tools.cluster_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: upgrade-cluster
description: Upgrade a Cluster
hints:
readOnly: false
destructive: false
idempotent: false
call: kubernetes-clusters.upgradecluster
with:
region: tools.region
cluster_id: tools.cluster_id
body: tools.body
outputParameters:
- type: object
mapping: $.