Vonage · Capability

Vonage Communications API — Voice

Vonage Communications API — Voice. 8 operations. Lead operation: List Calls. Self-contained Naftiko capability covering one Vonage business surface.

Run with Naftiko VonageVoice

What You Can Do

GET
Listcalls — List Calls
/v1/v1/calls
POST
Createcall — Create an Outbound Call
/v1/v1/calls
GET
Getcall — Get Call Details
/v1/v1/calls/{uuid}
PUT
Updatecall — Modify an In-Progress Call
/v1/v1/calls/{uuid}
PUT
Playaudiostream — Play Audio Into a Call
/v1/v1/calls/{uuid}/stream
DELETE
Stopaudiostream — Stop Audio Stream in a Call
/v1/v1/calls/{uuid}/stream
PUT
Playtexttospeech — Play Text-to-Speech in a Call
/v1/v1/calls/{uuid}/talk
DELETE
Stoptexttospeech — Stop Text-to-Speech in a Call
/v1/v1/calls/{uuid}/talk

MCP Tools

list-calls

List Calls

read-only idempotent
create-outbound-call

Create an Outbound Call

get-call-details

Get Call Details

read-only idempotent
modify-progress-call

Modify an In-Progress Call

idempotent
play-audio-call

Play Audio Into a Call

idempotent
stop-audio-stream-call

Stop Audio Stream in a Call

idempotent
play-text-speech-call

Play Text-to-Speech in a Call

idempotent
stop-text-speech-call

Stop Text-to-Speech in a Call

idempotent

Capability Spec

vonage-voice.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Vonage Communications API — Voice
  description: 'Vonage Communications API — Voice. 8 operations. Lead operation: List Calls. Self-contained Naftiko capability
    covering one Vonage business surface.'
  tags:
  - Vonage
  - Voice
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    VONAGE_API_KEY: VONAGE_API_KEY
capability:
  consumes:
  - type: http
    namespace: vonage-voice
    baseUri: https://api.nexmo.com
    description: Vonage Communications API — Voice business capability. Self-contained, no shared references.
    resources:
    - name: v1-calls
      path: /v1/calls
      operations:
      - name: listcalls
        method: GET
        description: List Calls
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: status
          in: query
          type: string
          description: Filter by call status.
        - name: date_start
          in: query
          type: string
          description: Return calls created after this date.
        - name: date_end
          in: query
          type: string
          description: Return calls created before this date.
        - name: page_size
          in: query
          type: integer
          description: Number of results per page.
        - name: record_index
          in: query
          type: integer
          description: Start index for pagination.
      - name: createcall
        method: POST
        description: Create an Outbound Call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-calls-uuid
      path: /v1/calls/{uuid}
      operations:
      - name: getcall
        method: GET
        description: Get Call Details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          description: The unique identifier for the call.
          required: true
      - name: updatecall
        method: PUT
        description: Modify an In-Progress Call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          description: The unique identifier for the call.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-calls-uuid-stream
      path: /v1/calls/{uuid}/stream
      operations:
      - name: playaudiostream
        method: PUT
        description: Play Audio Into a Call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          description: The unique identifier for the call.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: stopaudiostream
        method: DELETE
        description: Stop Audio Stream in a Call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          description: The unique identifier for the call.
          required: true
    - name: v1-calls-uuid-talk
      path: /v1/calls/{uuid}/talk
      operations:
      - name: playtexttospeech
        method: PUT
        description: Play Text-to-Speech in a Call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          description: The unique identifier for the call.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: stoptexttospeech
        method: DELETE
        description: Stop Text-to-Speech in a Call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          description: The unique identifier for the call.
          required: true
    authentication:
      type: bearer
      token: '{{env.VONAGE_API_KEY}}'
  exposes:
  - type: rest
    namespace: vonage-voice-rest
    port: 8080
    description: REST adapter for Vonage Communications API — Voice. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/v1/calls
      name: v1-calls
      description: REST surface for v1-calls.
      operations:
      - method: GET
        name: listcalls
        description: List Calls
        call: vonage-voice.listcalls
        with:
          status: rest.status
          date_start: rest.date_start
          date_end: rest.date_end
          page_size: rest.page_size
          record_index: rest.record_index
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createcall
        description: Create an Outbound Call
        call: vonage-voice.createcall
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/calls/{uuid}
      name: v1-calls-uuid
      description: REST surface for v1-calls-uuid.
      operations:
      - method: GET
        name: getcall
        description: Get Call Details
        call: vonage-voice.getcall
        with:
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatecall
        description: Modify an In-Progress Call
        call: vonage-voice.updatecall
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/calls/{uuid}/stream
      name: v1-calls-uuid-stream
      description: REST surface for v1-calls-uuid-stream.
      operations:
      - method: PUT
        name: playaudiostream
        description: Play Audio Into a Call
        call: vonage-voice.playaudiostream
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: stopaudiostream
        description: Stop Audio Stream in a Call
        call: vonage-voice.stopaudiostream
        with:
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/calls/{uuid}/talk
      name: v1-calls-uuid-talk
      description: REST surface for v1-calls-uuid-talk.
      operations:
      - method: PUT
        name: playtexttospeech
        description: Play Text-to-Speech in a Call
        call: vonage-voice.playtexttospeech
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: stoptexttospeech
        description: Stop Text-to-Speech in a Call
        call: vonage-voice.stoptexttospeech
        with:
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: vonage-voice-mcp
    port: 9090
    transport: http
    description: MCP adapter for Vonage Communications API — Voice. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-calls
      description: List Calls
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: vonage-voice.listcalls
      with:
        status: tools.status
        date_start: tools.date_start
        date_end: tools.date_end
        page_size: tools.page_size
        record_index: tools.record_index
      outputParameters:
      - type: object
        mapping: $.
    - name: create-outbound-call
      description: Create an Outbound Call
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: vonage-voice.createcall
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-call-details
      description: Get Call Details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: vonage-voice.getcall
      with:
        uuid: tools.uuid
      outputParameters:
      - type: object
        mapping: $.
    - name: modify-progress-call
      description: Modify an In-Progress Call
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: vonage-voice.updatecall
      with:
        uuid: tools.uuid
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: play-audio-call
      description: Play Audio Into a Call
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: vonage-voice.playaudiostream
      with:
        uuid: tools.uuid
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: stop-audio-stream-call
      description: Stop Audio Stream in a Call
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: vonage-voice.stopaudiostream
      with:
        uuid: tools.uuid
      outputParameters:
      - type: object
        mapping: $.
    - name: play-text-speech-call
      description: Play Text-to-Speech in a Call
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: vonage-voice.playtexttospeech
      with:
        uuid: tools.uuid
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: stop-text-speech-call
      description: Stop Text-to-Speech in a Call
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: vonage-voice.stoptexttospeech
      with:
        uuid: tools.uuid
      outputParameters:
      - type: object
        mapping: $.