naftiko: 1.0.0-alpha2 info: label: Twilio Voice API — Recordings description: 'Twilio Voice API — Recordings. 5 operations. Lead operation: Twilio List Recordings for a Call. Self-contained Naftiko capability covering one Twilio business surface.' tags: - Twilio - Recordings created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TWILIO_API_KEY: TWILIO_API_KEY capability: consumes: - type: http namespace: voice-recordings baseUri: https://api.twilio.com/2010-04-01 description: Twilio Voice API — Recordings business capability. Self-contained, no shared references. resources: - name: Accounts-AccountSid-Calls-CallSid-Recordings.json path: /Accounts/{AccountSid}/Calls/{CallSid}/Recordings.json operations: - name: listcallrecordings method: GET description: Twilio List Recordings for a Call outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createcallrecording method: POST description: Twilio Start Recording a Call outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: Accounts-AccountSid-Recordings.json path: /Accounts/{AccountSid}/Recordings.json operations: - name: listrecordings method: GET description: Twilio List All Recordings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: DateCreated in: query type: string - name: CallSid in: query type: string - name: PageSize in: query type: integer - name: Accounts-AccountSid-Recordings-RecordingSid}.json path: /Accounts/{AccountSid}/Recordings/{RecordingSid}.json operations: - name: fetchrecording method: GET description: Twilio Fetch a Recording outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deleterecording method: DELETE description: Twilio Delete a Recording outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: basic username: '{{env.TWILIO_USER}}' password: '{{env.TWILIO_PASS}}' exposes: - type: rest namespace: voice-recordings-rest port: 8080 description: REST adapter for Twilio Voice API — Recordings. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/accounts/{accountsid}/calls/{callsid}/recordings-json name: accounts-accountsid-calls-callsid-recordings-json description: REST surface for Accounts-AccountSid-Calls-CallSid-Recordings.json. operations: - method: GET name: listcallrecordings description: Twilio List Recordings for a Call call: voice-recordings.listcallrecordings outputParameters: - type: object mapping: $. - method: POST name: createcallrecording description: Twilio Start Recording a Call call: voice-recordings.createcallrecording with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountsid}/recordings-json name: accounts-accountsid-recordings-json description: REST surface for Accounts-AccountSid-Recordings.json. operations: - method: GET name: listrecordings description: Twilio List All Recordings call: voice-recordings.listrecordings with: DateCreated: rest.DateCreated CallSid: rest.CallSid PageSize: rest.PageSize outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountsid}/recordings/recordingsid-json name: accounts-accountsid-recordings-recordingsid-json description: REST surface for Accounts-AccountSid-Recordings-RecordingSid}.json. operations: - method: GET name: fetchrecording description: Twilio Fetch a Recording call: voice-recordings.fetchrecording outputParameters: - type: object mapping: $. - method: DELETE name: deleterecording description: Twilio Delete a Recording call: voice-recordings.deleterecording outputParameters: - type: object mapping: $. - type: mcp namespace: voice-recordings-mcp port: 9090 transport: http description: MCP adapter for Twilio Voice API — Recordings. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: twilio-list-recordings-call description: Twilio List Recordings for a Call hints: readOnly: true destructive: false idempotent: true call: voice-recordings.listcallrecordings outputParameters: - type: object mapping: $. - name: twilio-start-recording-call description: Twilio Start Recording a Call hints: readOnly: false destructive: false idempotent: false call: voice-recordings.createcallrecording with: body: tools.body outputParameters: - type: object mapping: $. - name: twilio-list-all-recordings description: Twilio List All Recordings hints: readOnly: true destructive: false idempotent: true call: voice-recordings.listrecordings with: DateCreated: tools.DateCreated CallSid: tools.CallSid PageSize: tools.PageSize outputParameters: - type: object mapping: $. - name: twilio-fetch-recording description: Twilio Fetch a Recording hints: readOnly: true destructive: false idempotent: true call: voice-recordings.fetchrecording outputParameters: - type: object mapping: $. - name: twilio-delete-recording description: Twilio Delete a Recording hints: readOnly: false destructive: true idempotent: true call: voice-recordings.deleterecording outputParameters: - type: object mapping: $.