Webex · Capability

Webex Messaging — Rooms

Webex Messaging — Rooms. 6 operations. Lead operation: List Rooms. Self-contained Naftiko capability covering one Webex business surface.

Run with Naftiko WebexRooms

What You Can Do

GET
Listrooms — List Rooms
/v1/rooms
POST
Createaroom — Create a Room
/v1/rooms
GET
Getroomdetails — Get Room Details
/v1/rooms/{roomid}
PUT
Updatearoom — Update a Room
/v1/rooms/{roomid}
DELETE
Deletearoom — Delete a Room
/v1/rooms/{roomid}
GET
Getroommeetingdetails — Get Room Meeting Details
/v1/rooms/{roomid}/meetinginfo

MCP Tools

list-rooms

List Rooms

read-only idempotent
create-room

Create a Room

get-room-details

Get Room Details

read-only idempotent
update-room

Update a Room

idempotent
delete-room

Delete a Room

idempotent
get-room-meeting-details

Get Room Meeting Details

read-only idempotent

Capability Spec

messaging-rooms.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Webex Messaging — Rooms
  description: 'Webex Messaging — Rooms. 6 operations. Lead operation: List Rooms. Self-contained Naftiko capability covering
    one Webex business surface.'
  tags:
  - Webex
  - Rooms
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WEBEX_API_KEY: WEBEX_API_KEY
capability:
  consumes:
  - type: http
    namespace: messaging-rooms
    baseUri: ''
    description: Webex Messaging — Rooms business capability. Self-contained, no shared references.
    resources:
    - name: rooms
      path: /rooms
      operations:
      - name: listrooms
        method: GET
        description: List Rooms
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: teamId
          in: query
          type: string
          description: List rooms associated with a team, by ID. Cannot be set in combination with `orgPublicSpaces`.
        - name: type
          in: query
          type: string
          description: List rooms by type. Cannot be set in combination with `orgPublicSpaces`.
        - name: orgPublicSpaces
          in: query
          type: boolean
          description: Shows the org's public spaces joined and unjoined. When set the result list is sorted by the `madePublic`
            timestamp.
        - name: from
          in: query
          type: string
          description: Filters rooms, that were made public after this time. See `madePublic` timestamp
        - name: to
          in: query
          type: string
          description: Filters rooms, that were made public before this time. See `maePublic` timestamp
        - name: sortBy
          in: query
          type: string
          description: Sort results. Cannot be set in combination with `orgPublicSpaces`.
        - name: max
          in: query
          type: number
          description: Limit the maximum number of rooms in the response. Value must be between 1 and 1000, inclusive.
      - name: createaroom
        method: POST
        description: Create a Room
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: rooms-roomId
      path: /rooms/{roomId}
      operations:
      - name: getroomdetails
        method: GET
        description: Get Room Details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: roomId
          in: path
          type: string
          description: The unique identifier for the room.
          required: true
      - name: updatearoom
        method: PUT
        description: Update a Room
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: roomId
          in: path
          type: string
          description: The unique identifier for the room.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deletearoom
        method: DELETE
        description: Delete a Room
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: roomId
          in: path
          type: string
          description: The unique identifier for the room.
          required: true
    - name: rooms-roomId-meetingInfo
      path: /rooms/{roomId}/meetingInfo
      operations:
      - name: getroommeetingdetails
        method: GET
        description: Get Room Meeting Details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: roomId
          in: path
          type: string
          description: The unique identifier for the room.
          required: true
    authentication:
      type: bearer
      token: '{{env.WEBEX_API_KEY}}'
  exposes:
  - type: rest
    namespace: messaging-rooms-rest
    port: 8080
    description: REST adapter for Webex Messaging — Rooms. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/rooms
      name: rooms
      description: REST surface for rooms.
      operations:
      - method: GET
        name: listrooms
        description: List Rooms
        call: messaging-rooms.listrooms
        with:
          teamId: rest.teamId
          type: rest.type
          orgPublicSpaces: rest.orgPublicSpaces
          from: rest.from
          to: rest.to
          sortBy: rest.sortBy
          max: rest.max
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createaroom
        description: Create a Room
        call: messaging-rooms.createaroom
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/rooms/{roomid}
      name: rooms-roomid
      description: REST surface for rooms-roomId.
      operations:
      - method: GET
        name: getroomdetails
        description: Get Room Details
        call: messaging-rooms.getroomdetails
        with:
          roomId: rest.roomId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatearoom
        description: Update a Room
        call: messaging-rooms.updatearoom
        with:
          roomId: rest.roomId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletearoom
        description: Delete a Room
        call: messaging-rooms.deletearoom
        with:
          roomId: rest.roomId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/rooms/{roomid}/meetinginfo
      name: rooms-roomid-meetinginfo
      description: REST surface for rooms-roomId-meetingInfo.
      operations:
      - method: GET
        name: getroommeetingdetails
        description: Get Room Meeting Details
        call: messaging-rooms.getroommeetingdetails
        with:
          roomId: rest.roomId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: messaging-rooms-mcp
    port: 9090
    transport: http
    description: MCP adapter for Webex Messaging — Rooms. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: list-rooms
      description: List Rooms
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: messaging-rooms.listrooms
      with:
        teamId: tools.teamId
        type: tools.type
        orgPublicSpaces: tools.orgPublicSpaces
        from: tools.from
        to: tools.to
        sortBy: tools.sortBy
        max: tools.max
      outputParameters:
      - type: object
        mapping: $.
    - name: create-room
      description: Create a Room
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: messaging-rooms.createaroom
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-room-details
      description: Get Room Details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: messaging-rooms.getroomdetails
      with:
        roomId: tools.roomId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-room
      description: Update a Room
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: messaging-rooms.updatearoom
      with:
        roomId: tools.roomId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-room
      description: Delete a Room
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: messaging-rooms.deletearoom
      with:
        roomId: tools.roomId
      outputParameters:
      - type: object
        mapping: $.
    - name: get-room-meeting-details
      description: Get Room Meeting Details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: messaging-rooms.getroommeetingdetails
      with:
        roomId: tools.roomId
      outputParameters:
      - type: object
        mapping: $.