Vonage · Capability

Vonage Communications API — Numbers

Vonage Communications API — Numbers. 5 operations. Lead operation: List Owned Numbers. Self-contained Naftiko capability covering one Vonage business surface.

Run with Naftiko VonageNumbers

What You Can Do

GET
Listownednumbers — List Owned Numbers
/v1/account/numbers
POST
Buynumber — Buy a Number
/v1/number/buy
POST
Cancelnumber — Cancel a Number
/v1/number/cancel
GET
Searchavailablenumbers — Search Available Numbers
/v1/number/search
POST
Updatenumber — Update a Number
/v1/number/update

MCP Tools

list-owned-numbers

List Owned Numbers

read-only idempotent
buy-number

Buy a Number

cancel-number

Cancel a Number

search-available-numbers

Search Available Numbers

read-only idempotent
update-number

Update a Number

Capability Spec

vonage-numbers.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Vonage Communications API — Numbers
  description: 'Vonage Communications API — Numbers. 5 operations. Lead operation: List Owned Numbers. Self-contained Naftiko
    capability covering one Vonage business surface.'
  tags:
  - Vonage
  - Numbers
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    VONAGE_API_KEY: VONAGE_API_KEY
capability:
  consumes:
  - type: http
    namespace: vonage-numbers
    baseUri: https://api.nexmo.com
    description: Vonage Communications API — Numbers business capability. Self-contained, no shared references.
    resources:
    - name: account-numbers
      path: /account/numbers
      operations:
      - name: listownednumbers
        method: GET
        description: List Owned Numbers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: api_key
          in: query
          type: string
          required: true
        - name: api_secret
          in: query
          type: string
          required: true
        - name: country
          in: query
          type: string
          description: The two-character country code in ISO 3166-1 alpha-2 format.
        - name: pattern
          in: query
          type: string
          description: A pattern to filter the results.
        - name: index
          in: query
          type: integer
        - name: size
          in: query
          type: integer
    - name: number-buy
      path: /number/buy
      operations:
      - name: buynumber
        method: POST
        description: Buy a Number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: number-cancel
      path: /number/cancel
      operations:
      - name: cancelnumber
        method: POST
        description: Cancel a Number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: number-search
      path: /number/search
      operations:
      - name: searchavailablenumbers
        method: GET
        description: Search Available Numbers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: api_key
          in: query
          type: string
          required: true
        - name: api_secret
          in: query
          type: string
          required: true
        - name: country
          in: query
          type: string
          description: Two-character country code (ISO 3166-1 alpha-2).
          required: true
        - name: type
          in: query
          type: string
          description: Filter by number type.
        - name: pattern
          in: query
          type: string
          description: A pattern to filter results.
        - name: features
          in: query
          type: string
          description: Available features (SMS, VOICE, MMS).
        - name: size
          in: query
          type: integer
        - name: index
          in: query
          type: integer
    - name: number-update
      path: /number/update
      operations:
      - name: updatenumber
        method: POST
        description: Update a Number
        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.VONAGE_API_KEY}}'
  exposes:
  - type: rest
    namespace: vonage-numbers-rest
    port: 8080
    description: REST adapter for Vonage Communications API — Numbers. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/account/numbers
      name: account-numbers
      description: REST surface for account-numbers.
      operations:
      - method: GET
        name: listownednumbers
        description: List Owned Numbers
        call: vonage-numbers.listownednumbers
        with:
          api_key: rest.api_key
          api_secret: rest.api_secret
          country: rest.country
          pattern: rest.pattern
          index: rest.index
          size: rest.size
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/number/buy
      name: number-buy
      description: REST surface for number-buy.
      operations:
      - method: POST
        name: buynumber
        description: Buy a Number
        call: vonage-numbers.buynumber
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/number/cancel
      name: number-cancel
      description: REST surface for number-cancel.
      operations:
      - method: POST
        name: cancelnumber
        description: Cancel a Number
        call: vonage-numbers.cancelnumber
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/number/search
      name: number-search
      description: REST surface for number-search.
      operations:
      - method: GET
        name: searchavailablenumbers
        description: Search Available Numbers
        call: vonage-numbers.searchavailablenumbers
        with:
          api_key: rest.api_key
          api_secret: rest.api_secret
          country: rest.country
          type: rest.type
          pattern: rest.pattern
          features: rest.features
          size: rest.size
          index: rest.index
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/number/update
      name: number-update
      description: REST surface for number-update.
      operations:
      - method: POST
        name: updatenumber
        description: Update a Number
        call: vonage-numbers.updatenumber
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: vonage-numbers-mcp
    port: 9090
    transport: http
    description: MCP adapter for Vonage Communications API — Numbers. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-owned-numbers
      description: List Owned Numbers
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: vonage-numbers.listownednumbers
      with:
        api_key: tools.api_key
        api_secret: tools.api_secret
        country: tools.country
        pattern: tools.pattern
        index: tools.index
        size: tools.size
      outputParameters:
      - type: object
        mapping: $.
    - name: buy-number
      description: Buy a Number
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: vonage-numbers.buynumber
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: cancel-number
      description: Cancel a Number
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: vonage-numbers.cancelnumber
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: search-available-numbers
      description: Search Available Numbers
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: vonage-numbers.searchavailablenumbers
      with:
        api_key: tools.api_key
        api_secret: tools.api_secret
        country: tools.country
        type: tools.type
        pattern: tools.pattern
        features: tools.features
        size: tools.size
        index: tools.index
      outputParameters:
      - type: object
        mapping: $.
    - name: update-number
      description: Update a Number
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: vonage-numbers.updatenumber
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.