Zulip · Capability

Zulip REST API — channels

Zulip REST API — channels. 30 operations. Lead operation: Create BigBlueButton video call. Self-contained Naftiko capability covering one Zulip business surface.

Run with Naftiko Zulipchannels

What You Can Do

GET
Createbigbluebuttonvideocall — Create BigBlueButton video call
/v1/calls/bigbluebutton/create
POST
Createconstructorgroupsvideocall — Create Constructor Groups video call
/v1/calls/constructorgroups/create
POST
Createnextcloudtalkvideocall — Create Nextcloud Talk video call
/v1/calls/nextcloud-talk/create
POST
Createwebexvideocall — Create Webex video call
/v1/calls/webex/create
GET
Getchannelfolders — Get channel folders
/v1/channel-folders
PATCH
Patchchannelfolders — Reorder channel folders
/v1/channel-folders
POST
Createchannelfolder — Create a channel folder
/v1/channel-folders/create
PATCH
Updatechannelfolder — Update a channel folder
/v1/channel-folders/{channel-folder-id}
POST
Createchannel — Create a channel
/v1/channels/create
POST
Adddefaultstream — Add a default channel
/v1/default-streams
DELETE
Removedefaultstream — Remove a default channel
/v1/default-streams
GET
Getstreamid — Get channel ID
/v1/get-stream-id
GET
Getstreams — Get all channels
/v1/streams
GET
Getstreambyid — Get a channel by ID
/v1/streams/{stream-id}
DELETE
Archivestream — Archive a channel
/v1/streams/{stream-id}
PATCH
Updatestream — Update a channel
/v1/streams/{stream-id}
POST
Deletetopic — Delete a topic
/v1/streams/{stream-id}/delete-topic
GET
Getstreamemailaddress — Get channel's email address
/v1/streams/{stream-id}/email-address
GET
Getsubscribers — Get channel subscribers
/v1/streams/{stream-id}/members
POST
Updateusertopic — Update personal preferences for a topic
/v1/user-topics
GET
Getsubscriptions — Get subscribed channels
/v1/users/me/subscriptions
POST
Subscribe — Subscribe to a channel
/v1/users/me/subscriptions
PATCH
Updatesubscriptions — Update subscriptions
/v1/users/me/subscriptions
DELETE
Unsubscribe — Unsubscribe from a channel
/v1/users/me/subscriptions
PATCH
Mutetopic — Topic muting
/v1/users/me/subscriptions/muted-topics
POST
Updatesubscriptionsettings — Bulk update subscription settings
/v1/users/me/subscriptions/properties
PATCH
Updatesubscriptionproperty — Update a subscription setting
/v1/users/me/subscriptions/{stream-id}
GET
Getstreamtopics — Get topics in a channel
/v1/users/me/{stream-id}/topics
GET
Getuserchannels — Get a user's subscribed channels
/v1/users/{user-id}/channels
GET
Getsubscriptionstatus — Get subscription status
/v1/users/{user-id}/subscriptions/{stream-id}

MCP Tools

create-bigbluebutton-video-call

Create BigBlueButton video call

read-only idempotent
create-constructor-groups-video-call

Create Constructor Groups video call

create-nextcloud-talk-video-call

Create Nextcloud Talk video call

create-webex-video-call

Create Webex video call

get-channel-folders

Get channel folders

read-only idempotent
reorder-channel-folders

Reorder channel folders

idempotent
create-channel-folder

Create a channel folder

update-channel-folder

Update a channel folder

idempotent
create-channel

Create a channel

add-default-channel

Add a default channel

remove-default-channel

Remove a default channel

idempotent
get-channel-id

Get channel ID

read-only idempotent
get-all-channels

Get all channels

read-only idempotent
get-channel-id-2

Get a channel by ID

read-only idempotent
archive-channel

Archive a channel

idempotent
update-channel

Update a channel

idempotent
delete-topic

Delete a topic

get-channel-s-email-address

Get channel's email address

read-only idempotent
get-channel-subscribers

Get channel subscribers

read-only idempotent
update-personal-preferences-topic

Update personal preferences for a topic

get-subscribed-channels

Get subscribed channels

read-only idempotent
subscribe-channel

Subscribe to a channel

update-subscriptions

Update subscriptions

idempotent
unsubscribe-channel

Unsubscribe from a channel

idempotent
topic-muting

Topic muting

idempotent
bulk-update-subscription-settings

Bulk update subscription settings

update-subscription-setting

Update a subscription setting

idempotent
get-topics-channel

Get topics in a channel

read-only idempotent
get-user-s-subscribed-channels

Get a user's subscribed channels

read-only idempotent
get-subscription-status

Get subscription status

read-only idempotent

Capability Spec

zulip-channels.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Zulip REST API — channels
  description: 'Zulip REST API — channels. 30 operations. Lead operation: Create BigBlueButton video call. Self-contained
    Naftiko capability covering one Zulip business surface.'
  tags:
  - Zulip
  - channels
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ZULIP_API_KEY: ZULIP_API_KEY
capability:
  consumes:
  - type: http
    namespace: zulip-channels
    baseUri: https://{subdomain}.zulipchat.com/api/v1
    description: Zulip REST API — channels business capability. Self-contained, no shared references.
    resources:
    - name: calls-bigbluebutton-create
      path: /calls/bigbluebutton/create
      operations:
      - name: createbigbluebuttonvideocall
        method: GET
        description: Create BigBlueButton video call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: meeting_name
          in: query
          type: string
          description: Meeting name for the BigBlueButton video call.
          required: true
        - name: voice_only
          in: query
          type: boolean
          description: Configures whether the call is voice-only; if true,
    - name: calls-constructorgroups-create
      path: /calls/constructorgroups/create
      operations:
      - name: createconstructorgroupsvideocall
        method: POST
        description: Create Constructor Groups video call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: calls-nextcloud_talk-create
      path: /calls/nextcloud_talk/create
      operations:
      - name: createnextcloudtalkvideocall
        method: POST
        description: Create Nextcloud Talk video call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: calls-webex-create
      path: /calls/webex/create
      operations:
      - name: createwebexvideocall
        method: POST
        description: Create Webex video call
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channel_folders
      path: /channel_folders
      operations:
      - name: getchannelfolders
        method: GET
        description: Get channel folders
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: patchchannelfolders
        method: PATCH
        description: Reorder channel folders
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: channel_folders-create
      path: /channel_folders/create
      operations:
      - name: createchannelfolder
        method: POST
        description: Create a channel folder
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: channel_folders-channel_folder_id
      path: /channel_folders/{channel_folder_id}
      operations:
      - name: updatechannelfolder
        method: PATCH
        description: Update a channel folder
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: channels-create
      path: /channels/create
      operations:
      - name: createchannel
        method: POST
        description: Create a channel
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: default_streams
      path: /default_streams
      operations:
      - name: adddefaultstream
        method: POST
        description: Add a default channel
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: removedefaultstream
        method: DELETE
        description: Remove a default channel
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: get_stream_id
      path: /get_stream_id
      operations:
      - name: getstreamid
        method: GET
        description: Get channel ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: stream
          in: query
          type: string
          description: The name of the channel to access.
          required: true
    - name: streams
      path: /streams
      operations:
      - name: getstreams
        method: GET
        description: Get all channels
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: include_public
          in: query
          type: boolean
          description: Include all public channels.
        - name: include_web_public
          in: query
          type: boolean
          description: Include all web-public channels.
        - name: include_subscribed
          in: query
          type: boolean
          description: Include all channels that the user is subscribed to.
        - name: exclude_archived
          in: query
          type: boolean
          description: Whether to exclude archived streams from the results.
        - name: include_all_active
          in: query
          type: boolean
          description: Deprecated parameter to include all channels. The user must
        - name: include_all
          in: query
          type: boolean
          description: Include all channels that the user has metadata access to.
        - name: include_default
          in: query
          type: boolean
          description: Include all default channels for the user's realm.
        - name: include_owner_subscribed
          in: query
          type: boolean
          description: If the user is a bot, include all channels that the bot's owner is
        - name: include_can_access_content
          in: query
          type: boolean
          description: Include all the channels that the user has content access to.
    - name: streams-stream_id
      path: /streams/{stream_id}
      operations:
      - name: getstreambyid
        method: GET
        description: Get a channel by ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: archivestream
        method: DELETE
        description: Archive a channel
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatestream
        method: PATCH
        description: Update a channel
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: streams-stream_id-delete_topic
      path: /streams/{stream_id}/delete_topic
      operations:
      - name: deletetopic
        method: POST
        description: Delete a topic
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: streams-stream_id-email_address
      path: /streams/{stream_id}/email_address
      operations:
      - name: getstreamemailaddress
        method: GET
        description: Get channel's email address
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sender_id
          in: query
          type: integer
          description: The ID of a user or bot which should appear as the sender when messages
    - name: streams-stream_id-members
      path: /streams/{stream_id}/members
      operations:
      - name: getsubscribers
        method: GET
        description: Get channel subscribers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: user_topics
      path: /user_topics
      operations:
      - name: updateusertopic
        method: POST
        description: Update personal preferences for a topic
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me-subscriptions
      path: /users/me/subscriptions
      operations:
      - name: getsubscriptions
        method: GET
        description: Get subscribed channels
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: subscribe
        method: POST
        description: Subscribe to a channel
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: updatesubscriptions
        method: PATCH
        description: Update subscriptions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: unsubscribe
        method: DELETE
        description: Unsubscribe from a channel
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me-subscriptions-muted_topics
      path: /users/me/subscriptions/muted_topics
      operations:
      - name: mutetopic
        method: PATCH
        description: Topic muting
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me-subscriptions-properties
      path: /users/me/subscriptions/properties
      operations:
      - name: updatesubscriptionsettings
        method: POST
        description: Bulk update subscription settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me-subscriptions-stream_id
      path: /users/me/subscriptions/{stream_id}
      operations:
      - name: updatesubscriptionproperty
        method: PATCH
        description: Update a subscription setting
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-me-stream_id-topics
      path: /users/me/{stream_id}/topics
      operations:
      - name: getstreamtopics
        method: GET
        description: Get topics in a channel
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: allow_empty_topic_name
          in: query
          type: boolean
          description: Whether the client supports processing the empty string as
    - name: users-user_id-channels
      path: /users/{user_id}/channels
      operations:
      - name: getuserchannels
        method: GET
        description: Get a user's subscribed channels
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-user_id-subscriptions-stream_id
      path: /users/{user_id}/subscriptions/{stream_id}
      operations:
      - name: getsubscriptionstatus
        method: GET
        description: Get subscription status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: basic
      username: '{{env.ZULIP_USER}}'
      password: '{{env.ZULIP_PASS}}'
  exposes:
  - type: rest
    namespace: zulip-channels-rest
    port: 8080
    description: REST adapter for Zulip REST API — channels. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/calls/bigbluebutton/create
      name: calls-bigbluebutton-create
      description: REST surface for calls-bigbluebutton-create.
      operations:
      - method: GET
        name: createbigbluebuttonvideocall
        description: Create BigBlueButton video call
        call: zulip-channels.createbigbluebuttonvideocall
        with:
          meeting_name: rest.meeting_name
          voice_only: rest.voice_only
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/calls/constructorgroups/create
      name: calls-constructorgroups-create
      description: REST surface for calls-constructorgroups-create.
      operations:
      - method: POST
        name: createconstructorgroupsvideocall
        description: Create Constructor Groups video call
        call: zulip-channels.createconstructorgroupsvideocall
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/calls/nextcloud-talk/create
      name: calls-nextcloud-talk-create
      description: REST surface for calls-nextcloud_talk-create.
      operations:
      - method: POST
        name: createnextcloudtalkvideocall
        description: Create Nextcloud Talk video call
        call: zulip-channels.createnextcloudtalkvideocall
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/calls/webex/create
      name: calls-webex-create
      description: REST surface for calls-webex-create.
      operations:
      - method: POST
        name: createwebexvideocall
        description: Create Webex video call
        call: zulip-channels.createwebexvideocall
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channel-folders
      name: channel-folders
      description: REST surface for channel_folders.
      operations:
      - method: GET
        name: getchannelfolders
        description: Get channel folders
        call: zulip-channels.getchannelfolders
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: patchchannelfolders
        description: Reorder channel folders
        call: zulip-channels.patchchannelfolders
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channel-folders/create
      name: channel-folders-create
      description: REST surface for channel_folders-create.
      operations:
      - method: POST
        name: createchannelfolder
        description: Create a channel folder
        call: zulip-channels.createchannelfolder
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channel-folders/{channel-folder-id}
      name: channel-folders-channel-folder-id
      description: REST surface for channel_folders-channel_folder_id.
      operations:
      - method: PATCH
        name: updatechannelfolder
        description: Update a channel folder
        call: zulip-channels.updatechannelfolder
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/create
      name: channels-create
      description: REST surface for channels-create.
      operations:
      - method: POST
        name: createchannel
        description: Create a channel
        call: zulip-channels.createchannel
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/default-streams
      name: default-streams
      description: REST surface for default_streams.
      operations:
      - method: POST
        name: adddefaultstream
        description: Add a default channel
        call: zulip-channels.adddefaultstream
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removedefaultstream
        description: Remove a default channel
        call: zulip-channels.removedefaultstream
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/get-stream-id
      name: get-stream-id
      description: REST surface for get_stream_id.
      operations:
      - method: GET
        name: getstreamid
        description: Get channel ID
        call: zulip-channels.getstreamid
        with:
          stream: rest.stream
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/streams
      name: streams
      description: REST surface for streams.
      operations:
      - method: GET
        name: getstreams
        description: Get all channels
        call: zulip-channels.getstreams
        with:
          include_public: rest.include_public
          include_web_public: rest.include_web_public
          include_subscribed: rest.include_subscribed
          exclude_archived: rest.exclude_archived
          include_all_active: rest.include_all_active
          include_all: rest.include_all
          include_default: rest.include_default
          include_owner_subscribed: rest.include_owner_subscribed
          include_can_access_content: rest.include_can_access_content
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/streams/{stream-id}
      name: streams-stream-id
      description: REST surface for streams-stream_id.
      operations:
      - method: GET
        name: getstreambyid
        description: Get a channel by ID
        call: zulip-channels.getstreambyid
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: archivestream
        description: Archive a channel
        call: zulip-channels.archivestream
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatestream
        description: Update a channel
        call: zulip-channels.updatestream
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/streams/{stream-id}/delete-topic
      name: streams-stream-id-delete-topic
      description: REST surface for streams-stream_id-delete_topic.
      operations:
      - method: POST
        name: deletetopic
        description: Delete a topic
        call: zulip-channels.deletetopic
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/streams/{stream-id}/email-address
      name: streams-stream-id-email-address
      description: REST surface for streams-stream_id-email_address.
      operations:
      - method: GET
        name: getstreamemailaddress
        description: Get channel's email address
        call: zulip-channels.getstreamemailaddress
        with:
          sender_id: rest.sender_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/streams/{stream-id}/members
      name: streams-stream-id-members
      description: REST surface for streams-stream_id-members.
      operations:
      - method: GET
        name: getsubscribers
        description: Get channel subscribers
        call: zulip-channels.getsubscribers
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/user-topics
      name: user-topics
      description: REST surface for user_topics.
      operations:
      - method: POST
        name: updateusertopic
        description: Update personal preferences for a topic
        call: zulip-channels.updateusertopic
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/subscriptions
      name: users-me-subscriptions
      description: REST surface for users-me-subscriptions.
      operations:
      - method: GET
        name: getsubscriptions
        description: Get subscribed channels
        call: zulip-channels.getsubscriptions
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: subscribe
        description: Subscribe to a channel
        call: zulip-channels.subscribe
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatesubscriptions
        description: Update subscriptions
        call: zulip-channels.updatesubscriptions
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: unsubscribe
        description: Unsubscribe from a channel
        call: zulip-channels.unsubscribe
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/subscriptions/muted-topics
      name: users-me-subscriptions-muted-topics
      description: REST surface for users-me-subscriptions-muted_topics.
      operations:
      - method: PATCH
        name: mutetopic
        description: Topic muting
        call: zulip-channels.mutetopic
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/subscriptions/properties
      name: users-me-subscriptions-properties
      description: REST surface for users-me-subscriptions-properties.
      operations:
      - method: POST
        name: updatesubscriptionsettings
        description: Bulk update subscription settings
        call: zulip-channels.updatesubscriptionsettings
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/subscriptions/{stream-id}
      name: users-me-subscriptions-stream-id
      description: REST surface for users-me-subscriptions-stream_id.
      operations:
      - method: PATCH
        name: updatesubscriptionproperty
        description: Update a subscription setting
        call: zulip-channels.updatesubscriptionproperty
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/me/{stream-id}/topics
      name: users-me-stream-id-topics
      description: REST surface for users-me-stream_id-topics.
      operations:
      - method: GET
        name: getstreamtopics
        description: Get topics in a channel
        call: zulip-channels.getstreamtopics
        with:
          allow_empty_topic_name: rest.allow_empty_topic_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/{user-id}/channels
      name: users-user-id-channels
      description: REST surface for users-user_id-channels.
      operations:
      - method: GET
        name: getuserchannels
        description: Get a user's subscribed channels
        call: zulip-channels.getuserchannels
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/{user-id}/subscriptions/{stream-id}
      name: users-user-id-subscriptions-stream-id
      description: REST surface for users-user_id-subscriptions-stream_id.
      operations:
      - method: GET
        name: getsubscriptionstatus
        description: Get subscription status
        call: zulip-channels.getsubscriptionstatus
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: zulip-channels-mcp
    port: 9090
    transport: http
    description: MCP adapter for Zulip REST API — channels. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: create-bigbluebutton-video-call
      description: Create BigBlueButton video call
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: zulip-channels.createbigbluebuttonvideocall
      with:
        meeting_name: tools.meeting_name
        voice_only: tools.voice_only
      outputParameters:
      - type: object
        mapping: $.
    - name: create-constructor-groups-video-call
      description: Create Constructor Groups video call
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: zulip-channels.createconstructorgroupsvideocall
      outputParameters:
      - type: object
        mapping: $.
    - name: create-nextcloud-talk-video-call
      description: Create Nextcloud Talk video call
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: zulip-channels.createnextcloudtalkvideocall
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-webex-video-call
      description: Create Webex video call
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: zulip-channels.createwebexvideocall
      outputParameters:
      - type: object
        mapping: $.
    - name: get-channel-folders
      description: Get channel folders
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: zulip-channels.getchannelfolders
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: reorder-channel-folders
      description: Reorder channel folders
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: zulip-channels.patchchannelfolders
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-channel-folder
      description: Create a channel folder
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: zulip-channels.createchannelfolder
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: update-channel-folder
      description: Update a channel folder
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: zulip-channels.updatechannelfolder
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-channel
      description: Create a channel
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: zulip-channels.createchannel
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: add-default-channel
      description: Add a default channel
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: zulip-channels.adddefaultstream
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-default-channel
      description: Remove a default channel
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: zulip-channels.removedefaultstream
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-channel-id
      description: Get channel ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: zulip-channels.getstreamid
      with:
        stream: tools.stream
      outputParameters:
      - type: object
        mapping: $.
    - name: get-all-channels
      description: Get all channels
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: zulip-channels.getstreams
      with:
        include_public: tools.include_public
        include_web_public: tools.include_web_public
        include_subscribed: tools.include_subscribed
        exclude_archived: tools.exclude_archived
        include_all_active: tools.include_all_active
        include_all: tools.include_all
        include_default: tools.include_default
        include_owner_subscribed: tools.include_owner_subscribed
        include_can_access_content: tools.include_can_access_content
      outputParameters:
      - type: object
        mapping: $.
    - name: get-channel-id-2
      description: Get a channel by ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: zulip-channels.getstreambyid
      outputParameters:
      - type: object
        mapping: $.
    - name: archive-channel
      description: Archive a channel
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: zulip-channels.archivestream
      outputParameters:
      - type: object
        mapping: $.
    - name: update-channel
      description: Update a channel
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: zulip-channels.updatestream
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-topic
      description: Delete a topic
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: zulip-channels.deletetopic
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-channel-s-email-address
      description: Get channel's email address
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: zulip-channels.getstreamemailaddress
      with:
        sender_id: tools.sender_id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-channel-subscribers
      description: Get channel subscribers
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: zulip-channels.getsubscribers
      outputParameters:
      - type: o

# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zulip/refs/heads/main/capabilities/zulip-channels.yaml