linode · Capability

Linode API v4 — VPCs

Linode API v4 — VPCs. 7 operations. Lead operation: List VPCs. Self-contained Naftiko capability covering one Linode business surface.

Run with Naftiko LinodeVPCs

What You Can Do

GET
Getvpcs — List VPCs
/v1/vpcs
POST
Createvpc — Create a VPC
/v1/vpcs
GET
Getvpc — Get a VPC
/v1/vpcs/{vpcid}
PUT
Updatevpc — Update a VPC
/v1/vpcs/{vpcid}
DELETE
Deletevpc — Delete a VPC
/v1/vpcs/{vpcid}
GET
Getvpcsubnets — List VPC subnets
/v1/vpcs/{vpcid}/subnets
POST
Createvpcsubnet — Create a VPC subnet
/v1/vpcs/{vpcid}/subnets

MCP Tools

list-vpcs

List VPCs

read-only idempotent
create-vpc

Create a VPC

get-vpc

Get a VPC

read-only idempotent
update-vpc

Update a VPC

idempotent
delete-vpc

Delete a VPC

idempotent
list-vpc-subnets

List VPC subnets

read-only idempotent
create-vpc-subnet

Create a VPC subnet

Capability Spec

api-v4-vpcs.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Linode API v4 — VPCs
  description: 'Linode API v4 — VPCs. 7 operations. Lead operation: List VPCs. Self-contained Naftiko capability covering
    one Linode business surface.'
  tags:
  - Linode
  - VPCs
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    LINODE_API_KEY: LINODE_API_KEY
capability:
  consumes:
  - type: http
    namespace: api-v4-vpcs
    baseUri: https://api.linode.com/v4
    description: Linode API v4 — VPCs business capability. Self-contained, no shared references.
    resources:
    - name: vpcs
      path: /vpcs
      operations:
      - name: getvpcs
        method: GET
        description: List VPCs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createvpc
        method: POST
        description: Create a VPC
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: vpcs-vpcId
      path: /vpcs/{vpcId}
      operations:
      - name: getvpc
        method: GET
        description: Get a VPC
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatevpc
        method: PUT
        description: Update a VPC
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletevpc
        method: DELETE
        description: Delete a VPC
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vpcs-vpcId-subnets
      path: /vpcs/{vpcId}/subnets
      operations:
      - name: getvpcsubnets
        method: GET
        description: List VPC subnets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createvpcsubnet
        method: POST
        description: Create a VPC subnet
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.LINODE_API_KEY}}'
  exposes:
  - type: rest
    namespace: api-v4-vpcs-rest
    port: 8080
    description: REST adapter for Linode API v4 — VPCs. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/vpcs
      name: vpcs
      description: REST surface for vpcs.
      operations:
      - method: GET
        name: getvpcs
        description: List VPCs
        call: api-v4-vpcs.getvpcs
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createvpc
        description: Create a VPC
        call: api-v4-vpcs.createvpc
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vpcs/{vpcid}
      name: vpcs-vpcid
      description: REST surface for vpcs-vpcId.
      operations:
      - method: GET
        name: getvpc
        description: Get a VPC
        call: api-v4-vpcs.getvpc
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatevpc
        description: Update a VPC
        call: api-v4-vpcs.updatevpc
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletevpc
        description: Delete a VPC
        call: api-v4-vpcs.deletevpc
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vpcs/{vpcid}/subnets
      name: vpcs-vpcid-subnets
      description: REST surface for vpcs-vpcId-subnets.
      operations:
      - method: GET
        name: getvpcsubnets
        description: List VPC subnets
        call: api-v4-vpcs.getvpcsubnets
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createvpcsubnet
        description: Create a VPC subnet
        call: api-v4-vpcs.createvpcsubnet
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: api-v4-vpcs-mcp
    port: 9090
    transport: http
    description: MCP adapter for Linode API v4 — VPCs. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: list-vpcs
      description: List VPCs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: api-v4-vpcs.getvpcs
      outputParameters:
      - type: object
        mapping: $.
    - name: create-vpc
      description: Create a VPC
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: api-v4-vpcs.createvpc
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-vpc
      description: Get a VPC
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: api-v4-vpcs.getvpc
      outputParameters:
      - type: object
        mapping: $.
    - name: update-vpc
      description: Update a VPC
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: api-v4-vpcs.updatevpc
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-vpc
      description: Delete a VPC
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: api-v4-vpcs.deletevpc
      outputParameters:
      - type: object
        mapping: $.
    - name: list-vpc-subnets
      description: List VPC subnets
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: api-v4-vpcs.getvpcsubnets
      outputParameters:
      - type: object
        mapping: $.
    - name: create-vpc-subnet
      description: Create a VPC subnet
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: api-v4-vpcs.createvpcsubnet
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.