Soracom · Capability

Soracom Virtual Private Gateway Capability

Self-contained Naftiko capability for creating and managing Soracom Virtual Private Gateways (VPG) — Canal, Direct, Door, Gate — including Junction packet rules and Peek packet capture sessions.

Soracom Virtual Private Gateway Capability is a Naftiko capability published by Soracom, one of 16 capabilities the APIs.io network indexes for this provider. It bundles 4 operations.

The capability includes 2 read-only operations and 2 state-changing operations. Lead operation: List Soracom Virtual Private Gateways. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Soracom, VPG, Networking, Canal, and Door.

Run with Naftiko SoracomVPGNetworkingCanalDoorGateJunctionPeek

MCP Tools

soracom-list-vpgs

List Soracom Virtual Private Gateways.

read-only idempotent
soracom-get-vpg

Get a single VPG.

read-only idempotent
soracom-create-vpg

Create a new Virtual Private Gateway.

soracom-delete-vpg

Delete a Virtual Private Gateway.

idempotent

Capability Spec

vpg-management.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Soracom Virtual Private Gateway Capability
  description: Self-contained Naftiko capability for creating and managing Soracom Virtual Private Gateways (VPG) — Canal, Direct, Door, Gate — including Junction packet rules and Peek packet capture sessions.
  tags:
  - Soracom
  - VPG
  - Networking
  - Canal
  - Door
  - Gate
  - Junction
  - Peek
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    SORACOM_API_KEY: SORACOM_API_KEY
    SORACOM_API_TOKEN: SORACOM_API_TOKEN
capability:
  consumes:
  - type: http
    namespace: vpg
    baseUri: https://api.soracom.io/v1
    description: Soracom VPG, Junction, and Peek API.
    resources:
    - name: virtual-private-gateways
      path: /virtual_private_gateways
      operations:
      - name: listVpgs
        method: GET
        description: List Virtual Private Gateways.
        outputRawFormat: json
        outputParameters:
        - {name: result, type: array, value: $.}
        inputParameters:
        - {name: limit, in: query, type: integer, required: false}
      - name: createVpg
        method: POST
        description: Create a new Virtual Private Gateway.
        outputRawFormat: json
        outputParameters:
        - {name: result, type: object, value: $.}
        inputParameters:
        - {name: body, in: body, type: object, required: true}
    - name: vpg-by-id
      path: /virtual_private_gateways/{vpg_id}
      operations:
      - name: getVpg
        method: GET
        description: Get a Virtual Private Gateway by ID.
        outputRawFormat: json
        outputParameters:
        - {name: result, type: object, value: $.}
        inputParameters:
        - {name: vpg_id, in: path, type: string, required: true}
      - name: deleteVpg
        method: DELETE
        description: Delete a Virtual Private Gateway.
        outputRawFormat: json
        outputParameters:
        - {name: result, type: object, value: $.}
        inputParameters:
        - {name: vpg_id, in: path, type: string, required: true}
    authentication:
      type: apikey
      key: X-Soracom-API-Key
      value: '{{env.SORACOM_API_KEY}}'
      placement: header
  exposes:
  - type: mcp
    namespace: vpg-mcp
    port: 9090
    transport: http
    description: MCP adapter for Virtual Private Gateways.
    tools:
    - name: soracom-list-vpgs
      description: List Soracom Virtual Private Gateways.
      hints: {readOnly: true, destructive: false, idempotent: true}
      call: vpg.listVpgs
      with:
        limit: tools.limit
      outputParameters:
      - {type: array, mapping: $.}
    - name: soracom-get-vpg
      description: Get a single VPG.
      hints: {readOnly: true, destructive: false, idempotent: true}
      call: vpg.getVpg
      with:
        vpg_id: tools.vpg_id
      outputParameters:
      - {type: object, mapping: $.}
    - name: soracom-create-vpg
      description: Create a new Virtual Private Gateway.
      hints: {readOnly: false, destructive: false, idempotent: false}
      call: vpg.createVpg
      with:
        body: tools.body
      outputParameters:
      - {type: object, mapping: $.}
    - name: soracom-delete-vpg
      description: Delete a Virtual Private Gateway.
      hints: {readOnly: false, destructive: true, idempotent: true}
      call: vpg.deleteVpg
      with:
        vpg_id: tools.vpg_id
      outputParameters:
      - {type: object, mapping: $.}