Skip to main content
Glama

create_subnet

Create a new subnet in a VPC on Naver Cloud Platform by specifying name, CIDR range, zone, ACL, and type.

Instructions

새로운 서브넷을 생성합니다

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
subnetNameYes서브넷 이름
vpcNoYesVPC 번호
subnetYes서브넷 CIDR (예: 10.0.1.0/24)
zoneCodeYes존 코드 (예: KR-1)
networkAclNoYesNetwork ACL 번호
subnetTypeCodeYes서브넷 타입 코드 (PUBLIC/PRIVATE)

Implementation Reference

  • The core handler function in NCPClient that executes the subnet creation by making a GET request to the NCP /createSubnet API endpoint.
    async createSubnet(params: {
      subnetName: string;
      vpcNo: string;
      subnet: string;
      zoneCode: string;
      networkAclNo: string;
      subnetTypeCode: string;
    }) {
      return await this.request("GET", "/vserver/v2", "/createSubnet", params);
    }
  • The dispatcher case in the main CallToolRequest handler that routes 'create_subnet' calls to the NCPClient.createSubnet method with properly typed arguments.
    case "create_subnet": {
      const typedArgs = args as {
        subnetName: string;
        vpcNo: string;
        subnet: string;
        zoneCode: string;
        networkAclNo: string;
        subnetTypeCode: string;
      };
      result = await ncpClient.createSubnet(typedArgs);
      break;
    }
  • Input schema definition for the create_subnet tool, specifying parameters, types, descriptions, and required fields.
    inputSchema: {
      type: "object",
      properties: {
        subnetName: { type: "string", description: "서브넷 이름" },
        vpcNo: { type: "string", description: "VPC 번호" },
        subnet: { type: "string", description: "서브넷 CIDR (예: 10.0.1.0/24)" },
        zoneCode: { type: "string", description: "존 코드 (예: KR-1)" },
        networkAclNo: { type: "string", description: "Network ACL 번호" },
        subnetTypeCode: { type: "string", description: "서브넷 타입 코드 (PUBLIC/PRIVATE)" },
      },
      required: ["subnetName", "vpcNo", "subnet", "zoneCode", "networkAclNo", "subnetTypeCode"],
    },
  • src/index.ts:407-422 (registration)
    Registration of the create_subnet tool in the list_tools response, including name, description, and input schema.
    {
      name: "create_subnet",
      description: "새로운 서브넷을 생성합니다",
      inputSchema: {
        type: "object",
        properties: {
          subnetName: { type: "string", description: "서브넷 이름" },
          vpcNo: { type: "string", description: "VPC 번호" },
          subnet: { type: "string", description: "서브넷 CIDR (예: 10.0.1.0/24)" },
          zoneCode: { type: "string", description: "존 코드 (예: KR-1)" },
          networkAclNo: { type: "string", description: "Network ACL 번호" },
          subnetTypeCode: { type: "string", description: "서브넷 타입 코드 (PUBLIC/PRIVATE)" },
        },
        required: ["subnetName", "vpcNo", "subnet", "zoneCode", "networkAclNo", "subnetTypeCode"],
      },
    },

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states 'creates,' without mentioning permissions, async behavior, idempotency, or response format. This is a minimal disclosure for a mutation tool.

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

Conciseness5/5

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

The description is a single concise sentence with no filler, appropriate for the tool's simplicity and front-loaded with the core action.

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

Completeness2/5

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

While the schema covers parameters, the description lacks critical context for a create operation: no expected output, no side effects, no prerequisite conditions. The absence of an output schema makes this a significant gap.

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

Parameters3/5

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

The schema provides descriptions for all 6 parameters (100% coverage), including an example for CIDR and zone code. The description adds no additional parameter meaning, so the baseline score of 3 applies.

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 description '새로운 서브넷을 생성합니다' (Creates a new subnet) uses a specific verb-resource pairing, clearly distinguishing it from sibling tools like list_subnets and delete_subnet.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites (e.g., VPC existence), or exclusions. It only states the basic action, leaving the agent without context for correct invocation.

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