naftiko: 1.0.0-alpha2 info: label: RingCentral API — Presence description: 'RingCentral API — Presence. 9 operations. Lead operation: Get Call Queue Presence. Self-contained Naftiko capability covering one Ringcentral business surface.' tags: - Ringcentral - Presence created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: RINGCENTRAL_API_KEY: RINGCENTRAL_API_KEY capability: consumes: - type: http namespace: platform-presence baseUri: https://platform.ringcentral.com description: RingCentral API — Presence business capability. Self-contained, no shared references. resources: - name: restapi-v1.0-account-accountId-call-queues-groupId-presence path: /restapi/v1.0/account/{accountId}/call-queues/{groupId}/presence operations: - name: readcallqueuepresence method: GET description: Get Call Queue Presence outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupId in: path type: string description: Internal identifier of a call queue extension required: true - name: updatecallqueuepresence method: PUT description: Update Call Queue Presence outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupId in: path type: string description: Internal identifier of a call queue extension required: true - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v1.0-account-accountId-extension-extensionId-call-queue-presence path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/call-queue-presence operations: - name: readextensioncallqueuepresence method: GET description: Get Agent’s Call Queue Presence outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: editableMemberStatus in: query type: boolean description: Filtering by the flag 'Allow members to change their Queue Status'. If 'true' only queues where user can change his availability status are returned - name: updateextensioncallqueuepresence method: PUT description: Update Call Queue Presence outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v1.0-account-accountId-extension-extensionId-presence path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/presence operations: - name: readuserpresencestatus method: GET description: Get User Presence Status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: detailedTelephonyState in: query type: boolean description: Specifies whether to return a detailed telephony state or not - name: sipData in: query type: boolean description: Specifies whether to return SIP data or not - name: updateuserpresencestatus method: PUT description: Update User Presence Status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: restapi-v1.0-account-accountId-extension-extensionId-unified-presence path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/unified-presence operations: - name: readunifiedpresence method: GET description: Get Unified Presence outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string description: Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session required: true - name: extensionId in: path type: string description: Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session required: true - name: updateunifiedpresence method: PATCH description: Update Unified Presence outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string description: Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session required: true - name: extensionId in: path type: string description: Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session required: true - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v1.0-account-accountId-presence path: /restapi/v1.0/account/{accountId}/presence operations: - name: readaccountpresence method: GET description: Get User Presence Status List outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: detailedTelephonyState in: query type: boolean description: Whether to return detailed telephony state - name: sipData in: query type: boolean description: Whether to return SIP data - name: page in: query type: integer description: Page number for account presence information - name: perPage in: query type: integer description: Number for account presence information items per page authentication: type: bearer token: '{{env.RINGCENTRAL_API_KEY}}' exposes: - type: rest namespace: platform-presence-rest port: 8080 description: REST adapter for RingCentral API — Presence. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/restapi/v1-0/account/{accountid}/call-queues/{groupid}/presence name: restapi-v1-0-account-accountid-call-queues-groupid-presence description: REST surface for restapi-v1.0-account-accountId-call-queues-groupId-presence. operations: - method: GET name: readcallqueuepresence description: Get Call Queue Presence call: platform-presence.readcallqueuepresence with: groupId: rest.groupId outputParameters: - type: object mapping: $. - method: PUT name: updatecallqueuepresence description: Update Call Queue Presence call: platform-presence.updatecallqueuepresence with: groupId: rest.groupId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/call-queue-presence name: restapi-v1-0-account-accountid-extension-extensionid-call-queue-presence description: REST surface for restapi-v1.0-account-accountId-extension-extensionId-call-queue-presence. operations: - method: GET name: readextensioncallqueuepresence description: Get Agent’s Call Queue Presence call: platform-presence.readextensioncallqueuepresence with: editableMemberStatus: rest.editableMemberStatus outputParameters: - type: object mapping: $. - method: PUT name: updateextensioncallqueuepresence description: Update Call Queue Presence call: platform-presence.updateextensioncallqueuepresence with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/presence name: restapi-v1-0-account-accountid-extension-extensionid-presence description: REST surface for restapi-v1.0-account-accountId-extension-extensionId-presence. operations: - method: GET name: readuserpresencestatus description: Get User Presence Status call: platform-presence.readuserpresencestatus with: detailedTelephonyState: rest.detailedTelephonyState sipData: rest.sipData outputParameters: - type: object mapping: $. - method: PUT name: updateuserpresencestatus description: Update User Presence Status call: platform-presence.updateuserpresencestatus with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/unified-presence name: restapi-v1-0-account-accountid-extension-extensionid-unified-presence description: REST surface for restapi-v1.0-account-accountId-extension-extensionId-unified-presence. operations: - method: GET name: readunifiedpresence description: Get Unified Presence call: platform-presence.readunifiedpresence with: accountId: rest.accountId extensionId: rest.extensionId outputParameters: - type: object mapping: $. - method: PATCH name: updateunifiedpresence description: Update Unified Presence call: platform-presence.updateunifiedpresence with: accountId: rest.accountId extensionId: rest.extensionId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/presence name: restapi-v1-0-account-accountid-presence description: REST surface for restapi-v1.0-account-accountId-presence. operations: - method: GET name: readaccountpresence description: Get User Presence Status List call: platform-presence.readaccountpresence with: detailedTelephonyState: rest.detailedTelephonyState sipData: rest.sipData page: rest.page perPage: rest.perPage outputParameters: - type: object mapping: $. - type: mcp namespace: platform-presence-mcp port: 9090 transport: http description: MCP adapter for RingCentral API — Presence. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-call-queue-presence description: Get Call Queue Presence hints: readOnly: true destructive: false idempotent: true call: platform-presence.readcallqueuepresence with: groupId: tools.groupId outputParameters: - type: object mapping: $. - name: update-call-queue-presence description: Update Call Queue Presence hints: readOnly: false destructive: false idempotent: true call: platform-presence.updatecallqueuepresence with: groupId: tools.groupId body: tools.body outputParameters: - type: object mapping: $. - name: get-agent-s-call-queue-presence description: Get Agent’s Call Queue Presence hints: readOnly: true destructive: false idempotent: true call: platform-presence.readextensioncallqueuepresence with: editableMemberStatus: tools.editableMemberStatus outputParameters: - type: object mapping: $. - name: update-call-queue-presence-2 description: Update Call Queue Presence hints: readOnly: false destructive: false idempotent: true call: platform-presence.updateextensioncallqueuepresence with: body: tools.body outputParameters: - type: object mapping: $. - name: get-user-presence-status description: Get User Presence Status hints: readOnly: true destructive: false idempotent: true call: platform-presence.readuserpresencestatus with: detailedTelephonyState: tools.detailedTelephonyState sipData: tools.sipData outputParameters: - type: object mapping: $. - name: update-user-presence-status description: Update User Presence Status hints: readOnly: false destructive: false idempotent: true call: platform-presence.updateuserpresencestatus with: body: tools.body outputParameters: - type: object mapping: $. - name: get-unified-presence description: Get Unified Presence hints: readOnly: true destructive: false idempotent: true call: platform-presence.readunifiedpresence with: accountId: tools.accountId extensionId: tools.extensionId outputParameters: - type: object mapping: $. - name: update-unified-presence description: Update Unified Presence hints: readOnly: false destructive: false idempotent: true call: platform-presence.updateunifiedpresence with: accountId: tools.accountId extensionId: tools.extensionId body: tools.body outputParameters: - type: object mapping: $. - name: get-user-presence-status-list description: Get User Presence Status List hints: readOnly: true destructive: false idempotent: true call: platform-presence.readaccountpresence with: detailedTelephonyState: tools.detailedTelephonyState sipData: tools.sipData page: tools.page perPage: tools.perPage outputParameters: - type: object mapping: $.