Skip to main content
Glama
sjk4425

ncloud-mcp-server

by sjk4425

ncloud_nks_create_cluster

Provision a new NKS Kubernetes cluster on Naver Cloud Platform with dry-run support to preview settings before creation.

Instructions

Create a new NKS Kubernetes cluster. Use dryRun=true to preview without creating.

G3(KVM) cluster requirements:

  • hypervisorCode: 'KVM' (required)

  • clusterType: must contain G003 (e.g., SVR.VNKS.STAND.C004.M016.G003)

  • k8sVersion: must use nks.2 suffix (e.g., 1.35.3-nks.2)

  • lbPrivateSubnetNo: Private LB subnet number (required — returns 400 without details if missing)

  • zoneCode: Required at cluster level when isRegional=false (default). Missing causes 400 without details.

  • nodePool.softwareCode: Must use FULL value from ncloud_nks_get_server_images including pipe and image number (e.g., SW.VSVR.OS.LNX64.UBNTU.SVR22.WRKND.G003|23215604)

  • nodePool.serverSpecCode: g3 spec code (e.g., c2-g3)

  • nodePool.storageSize: 100~2000GB (required)

Server-side validations added 2026-09-17 (request fails with 400 if violated):

  • Regional cluster (isRegional=true): every nodePool.zoneCode must match the zone of the subnets assigned to that node pool (subnetNoList). Check each subnet's zone with the VPC subnet tools before creating.

  • log.audit=true requires an active Cloud Log Analytics (CLA) subscription on the account — subscribe first or leave audit off and enable later with ncloud_nks_set_audit_log.

  • Istio is now available as an add-on (1.36+ clusters): install after creation with ncloud_nks_install_addons.

G2(XEN) vs G3(KVM) differences:

  • G2: clusterType contains G002, k8sVersion suffix nks.1, hypervisorCode optional

  • G3: clusterType contains G003, k8sVersion suffix nks.2, hypervisorCode='KVM' required

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
logNoLog settings. audit=true sends the Kubernetes audit log to Cloud Log Analytics and, since 2026-09-17, is rejected (400) unless the account has an active CLA subscription
nameYesCluster name (3-30 chars, lowercase+numbers+'-')
vpcNoYesVPC number
dryRunNoIf true, returns a preview without actually creating
nodePoolNoInitial node pool configurations
zoneCodeNoZone code (e.g., KR-2). Required when isRegional is false (default). API returns 400 without details if missing for single-zone clusters
isRegionalNoMulti-zone (Regional) cluster. Default: false
k8sVersionNoKubernetes version (from ncloud_nks_get_versions). G3/KVM uses nks.2 suffix, G2/XEN uses nks.1 suffix
regionCodeYesRegion code (e.g., KR, SGN, JPN)
clusterTypeYesCluster type (e.g., SVR.VNKS.STAND.C004.M016.G003 for G3, SVR.VNKS.STAND.C004.M016.G002 for G2)
loginKeyNameYesLogin key name for node access
subnetNoListYesSubnet number list for the cluster
publicNetworkNoSubnet network type. true=Public, false=Private (default)
hypervisorCodeNoHypervisor code: XEN (default) or KVM. Required as 'KVM' for G3 clusters
lbPublicSubnetNoYesLoad balancer public subnet number
lbPrivateSubnetNoNoLoad balancer private subnet number. Required for G3/KVM clusters (API returns 400 without details if missing)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.16.0
    • changedInput schema / properties / log / description
      Previous value: -"Log settings (audit log)"New value: +"Log settings. audit=true sends the Kubernetes audit log to Cloud Log Analytics and, since 2026-09-17, is rejected (400) unless the account has an active CLA subscription"
    • changedInput schema / properties / nodePool / items / properties / zoneCode / description
      Previous value: -"Zone code (required for Regional clusters)"New value: +"Zone code (e.g., KR-1). Required for Regional clusters and, since 2026-09-17, must match the zone of the subnets assigned to this node pool — a mismatch is rejected with 400"
  2. First observedv1.10.1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations carry only destructiveHint: false, so the description carries nearly the whole behavioral burden — and it discharges it thoroughly. It discloses failure modes (400 without details when lbPrivateSubnetNo/zoneCode are missing), prerequisite conditions (log.audit requires an active CLA subscription), zone-matching validation for regional clusters, and the exact softwareCode format trap (the pipe/image-number portion must not be stripped). This is far beyond what the single annotation provides, and nothing contradicts destructiveHint: false since the tool creates rather than destroys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but it is well structured with front-loaded purpose followed by clearly headed sections (G3 requirements, server-side validations, G2/G3 differences) using bullets for scannability. For a 16-parameter creation tool with heavy cross-constraints, the density is mostly justified. It loses one point for minor redundancy with the schema (e.g., lbPrivateSubnetNo required) and a somewhat tangential Istio add-on aside that is more a post-creation note than a creation requirement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, nested tool with no output schema, the description covers inputs, prerequisites, failure conditions, and cross-references to supporting lookups exceptionally well. An agent can gather the right values before calling. The gap is return semantics: it never states what a successful creation returns (e.g., an operation/job ID for async progress), which matters more here because no output schema exists to carry that information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, giving a baseline of 3, but the description adds substantial cross-parameter meaning absent from the schema: hypervisorCode must be exactly 'KVM' for G3, zoneCode must match the zone of each node pool's subnets for regional clusters, storageSize range of 100–2000 GB, and the G2/G3 suffix mapping for clusterType and k8sVersion. The concrete token examples (c2-g3, G003, nks.2) remove ambiguity the schema alone leaves open.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line, 'Create a new NKS Kubernetes cluster,' states a specific verb and resource, matching the tool name precisely. The term 'NKS Kubernetes cluster' distinguishes it from sibling create tools targeting different resources (node pools, access entries, server profiles), so an agent can separate it from ncloud_nks_create_node_pool without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description supplies clear conditional context: the G3(KVM) vs G2(XEN) section tells the agent which field values (clusterType suffix, k8sVersion suffix, hypervisorCode) apply to which cluster family, and the dryRun note gives a preview path. It references related lookups (ncloud_nks_get_server_images, ncloud_nks_get_server_specs) an agent needs before calling. It stops short of explicit 'do not use this when' exclusions versus create_node_pool or the SES cluster peers, so it earns 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools