Skip to content

Integration · Communication

zulip.com

Connect Claude & ChatGPT to Zulip

Ask your AI what was discussed in a topic, to post an update in a channel, or to schedule a message in Zulip. It can search and read messages, send, edit and delete them, add reactions and mark messages as read. It can also list and create channels, manage subscriptions, look up users and groups, and invite people.

Connect Zulip free

Free plan, no credit card. Takes about a minute.

Try asking

  • “What was decided in the engineering channel, topic release 2.4, this week?”

    The AI fetches the messages in that topic and summarizes them.

  • “Post in general, topic Office, that the office is closed on Monday.”

    It sends the message to that channel and topic. This posts a real message.

  • “Send Anna a direct message that the report is ready.”

    It looks up Anna and sends her a direct message.

What your AI can do

Messages

Search and read messages, send to channels and topics or as direct messages, edit, delete, react and schedule.

Channels and topics

List, create and update channels, see topics and subscribers, and subscribe or unsubscribe users.

Users and groups

Look up users by ID or email, list user groups and their members, set your status and invite new people.

  • “Schedule a message in the sales channel for Friday at 9 about the weekly numbers.”

    It schedules the message for that time. You can list or cancel scheduled messages later.

  • “Create a private channel for the Q4 project and add Jonas and Mia.”

    It creates an invite-only channel and subscribes the two users.

  • “Which topics are active in the support channel?”

    It lists the topics in the channel, most recent first.

155 tools for Zulip

These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.

  • add_reactionVisible to othersAdd an emoji reaction to a message by `message_id` and `emoji_name` (e.g. 'thumbs_up').
  • archive_emojiDeletesArchive a emoji (emoji name). Destructive action; may require approval. API summary: Deactivate custom emoji.
  • archive_meMoves moneyArchive a me. Financial or irreversible action; may require approval. API summary: Deactivate own user.
  • archive_realmVisible to othersDeactivate a realm. Has effects visible outside this system. API summary: Deactivate an organization.
  • archive_streamDeletesArchive a stream (stream id). Destructive action; may require approval. API summary: Archive a channel.
  • archive_userDeletesArchive a user (user id). Destructive action; may require approval. API summary: Deactivate a user.
  • archive_user_groupVisible to othersDeactivate a user group (user group id). Has effects visible outside this system.
  • cancel_scheduled_messageDeletesCancel a scheduled message by `scheduled_message_id` so it is not sent.
  • create_a_channel_folderChanges dataCreate a new create. Required: name. API summary: Create a channel folder.
  • create_a_user_groupChanges dataCreate a new create. Required: name, description or members. API summary: Create a user group.
  • create_alert_wordChanges dataCreate a new alert word. Required: alert words. API summary: Add alert words.
  • create_channelChanges dataCreate a new channel with a `name`, optional `description`, `subscribers` (user IDs) and privacy settings such as `invite_only`.
  • create_constructor_groups_video_callChanges dataCreate a new create. API summary: Create Constructor Groups video call.
  • create_default_streamChanges dataCreate a new default stream. Required: stream id. API summary: Add a default channel.
  • create_dev_fetch_api_keyChanges dataCreate a new dev fetch api key. Required: username. API summary: Fetch an API key (development only).
  • create_domainChanges dataCreate a new domain. Required: domain or allow subdomains. API summary: Add an allowed domain.
  • create_draftChanges dataCreate a new draft. API summary: Create drafts.
  • create_filterChanges dataCreate a new filter. Required: pattern or url template. API summary: Add a linkifier.
  • create_message_reportVisible to othersCreate a new report for a message. Required: report type. Has effects visible outside this system. API summary: Report a message.
  • create_message_test_welcome_bot_custom_messageVisible to othersCreate a new message. Required: welcome message custom text. Has effects visible outside this system. API summary: Test welcome bot custom message.
  • create_message_typingVisible to othersCreate a new typing for a message. Required: op. Has effects visible outside this system. API summary: Set "typing" status for message editing.
  • create_multiuseVisible to othersCreate a new multiuse. Has effects visible outside this system. API summary: Create a reusable invitation link.
  • create_narrowVisible to othersCreate a new narrow. Required: anchor, num before, num after, narrow, op or flag. Has effects visible outside this system. API summary: Update personal message flags for narrow.
  • create_navigation_viewChanges dataCreate a new navigation view. Required: fragment or is pinned. API summary: Add a navigation view.
  • create_nextcloud_talk_video_callChanges dataCreate a new create. Required: room name. API summary: Create Nextcloud Talk video call.
  • create_playgroundChanges dataCreate a new playground. Required: name, pygments language or url template. API summary: Add a code playground.
  • create_presenceChanges dataCreate a new presence. Required: status. API summary: Update your presence.
  • create_profile_fieldChanges dataCreate a new profile field. Required: field type. API summary: Create a custom profile field.
  • create_propertyChanges dataCreate a new property. Required: subscription data. API summary: Bulk update subscription settings.
  • create_real_timeChanges dataCreate a new real time.
  • create_regenerateChanges dataCreate a new regenerate. API summary: Regenerate your API key.
  • create_regenerate_regenerate_bot_api_keyChanges dataCreate a new regenerate. API summary: Regenerate a bot's API key.
  • create_registerChanges dataCreate a new register. Required: device id. API summary: Register E2EE push device.
  • create_register_client_deviceChanges dataCreate a new register client device. API summary: Register a logged-in device.
  • create_register_register_queueChanges dataCreate a new register. API summary: Register an event queue.
  • create_register_register_remote_push_deviceChanges dataCreate a new register. Required: realm uuid, token id, encrypted push registration or bouncer public key. API summary: Register E2EE push device to bouncer.
  • create_reminderVisible to othersCreate a new reminder. Has effects visible outside this system. API summary: Create a message reminder.
  • create_rest_error_handlingChanges dataCreate a new rest error handling.
  • create_saved_snippetChanges dataCreate a new saved snippet. Required: title or content. API summary: Create a saved snippet.
  • create_test_notificationVisible to othersCreate a new test notification. Has effects visible outside this system. API summary: Send an E2EE test notification to mobile device(s).
  • create_typingChanges dataCreate a new typing. Required: op. API summary: Set "typing" status.
  • create_userChanges dataCreate a new user. Required: email, password or full name. API summary: Create a user.
  • create_user_group_subgroupChanges dataCreate a new subgroup for a user group. API summary: Update subgroups of a user group.
  • create_user_group_userChanges dataCreate a new user for a user group. API summary: Update user group members.
  • create_user_reactivateChanges dataCreate a new reactivate for a user. API summary: Reactivate a user.
  • create_user_topicChanges dataCreate a new user topic. Required: stream id, topic or visibility policy. API summary: Update personal preferences for a topic.
  • create_webex_video_callChanges dataCreate a new create. API summary: Create Webex video call.
  • create_zulip_outgoing_webhookDeletesCreate a new zulip outgoing webhook. Destructive action; may require approval. API summary: Outgoing webhooks.
  • delete_alert_wordsMoves moneyPermanently delete a alert word. Financial or irreversible action; may require approval. API summary: Remove alert words.
  • delete_avatarsMoves moneyPermanently delete a avatar. Financial or irreversible action; may require approval. API summary: Delete your profile picture.
  • delete_bot_storagesMoves moneyPermanently delete a bot storage. Financial or irreversible action; may require approval. API summary: Remove a bot's stored data.
  • delete_client_devicesDeletesPermanently delete a client device. Destructive action; may require approval. API summary: Remove a registered device.
  • delete_default_streamsMoves moneyPermanently delete a default stream. Financial or irreversible action; may require approval. API summary: Remove a default channel.
  • delete_documentDeletesPermanently delete a document by document id. Destructive action; may require approval. API summary: Delete an attachment.
  • delete_domainDeletesPermanently delete a domain by domain. Destructive action; may require approval. API summary: Remove an allowed domain.
  • delete_draftDeletesPermanently delete a draft by draft id. Destructive action; may require approval.
  • delete_eventsMoves moneyPermanently delete a event. Financial or irreversible action; may require approval. API summary: Delete an event queue.
  • delete_filterDeletesPermanently delete a filter by filter id. Destructive action; may require approval. API summary: Remove a linkifier.
  • delete_inviteDeletesPermanently delete a invite by invite id. Destructive action; may require approval. API summary: Revoke an email invitation.
  • delete_messageDeletesPermanently delete a message by `message_id`. Cannot be undone.
  • delete_message_reactionsMoves moneyPermanently delete a reaction by message id. Financial or irreversible action; may require approval. API summary: Remove an emoji reaction.
  • delete_multiuseDeletesPermanently delete a multiuse by invite id. Destructive action; may require approval. API summary: Revoke a reusable invitation link.
  • delete_navigation_viewDeletesPermanently delete a navigation view by fragment. Destructive action; may require approval. API summary: Remove a navigation view.
  • delete_playgroundDeletesPermanently delete a playground by playground id. Destructive action; may require approval. API summary: Remove a code playground.
  • delete_profile_dataMoves moneyPermanently delete a profile data. Financial or irreversible action; may require approval. API summary: Remove your profile data.
  • delete_profile_fieldDeletesPermanently delete a profile field by field id. Destructive action; may require approval. API summary: Delete a custom profile field.
  • delete_realmDeletesPermanently delete a realm by export id. Destructive action; may require approval. API summary: Delete a data export.
  • delete_reminderDeletesPermanently delete a reminder by reminder id. Destructive action; may require approval.
  • delete_saved_snippetDeletesPermanently delete a saved snippet by saved snippet id. Destructive action; may require approval.
  • delete_stream_topicDeletesPermanently delete a stream by stream id. Destructive action; may require approval. API summary: Delete a topic.
  • delete_userDeletesPermanently delete a user by user id. Destructive action; may require approval. API summary: Unmute a user.
  • edit_messageVisible to othersEdit a message by `message_id`: change its `content`, rename its `topic`, or move it to another channel with `stream_id`. `propagate_mode` controls whether other messages in the topic move too.
  • export_realmsChanges dataExport realms. API summary: Create a data export.
  • get_channelGet one channel by `stream_id`.
  • get_channel_idLook up a channel's ID from its name in `stream`.
  • get_documentGet one document by filename. API summary: Get public temporary URL for an uploaded file.
  • get_jwt_api_keyChanges dataGet one jwt. API summary: Fetch an API key (JWT).
  • get_messageGet one message by `message_id`, with its content, sender, channel and topic.
  • get_message_receiptsGet one message by message id. API summary: Get a message's read receipts.
  • get_messagesFetch or search messages. Use `narrow` filters (e.g. channel, topic, sender, search keywords) with `anchor` ('newest', 'oldest' or a message ID) and `num_before`/`num_after` to page.
  • get_my_profileGet the connected Zulip user's own profile (user ID, name, email, role).
  • get_statusGet one status by filename. API summary: Check thumbnail status.
  • get_userGet one user by `user_id`.
  • get_user_by_emailGet one user by `email`.
  • get_user_group_userGet one user for a user group by user id. API summary: Get user group membership status.
  • get_user_statusGet the current status of a user by user id. API summary: Get a user's status.
  • get_user_subscriptionGet one subscription for a user by stream id. API summary: Get subscription status.
  • invite_usersVisible to othersInvite people by email to join the organization: `invitee_emails` (comma-separated) and `stream_ids` of channels to join. This sends invitation emails.
  • list_alert_wordsList alert words. API summary: Get all alert words.
  • list_api_keysChanges dataList api keys. API summary: Fetch an API key (production).
  • list_bot_api_keysList api keys for a bot. API summary: Get a bot's API key.
  • list_bot_storagesList bot storages. Optional filters: keys. API summary: Get a bot's stored data.
  • list_channel_foldersList channel folders. API summary: Get channel folders.
  • list_channel_subscribersList the user IDs subscribed to a channel by `stream_id`.
  • list_channel_topicsList the topics in a channel by `stream_id`, most recent first.
  • list_channelsList channels (streams) you can access, with IDs, names and descriptions. Filters let you include public, subscribed or archived channels.
  • list_consentsList consents. API summary: Get data export consent state.
  • list_createsList creates. Optional filters: meeting name or voice only. API summary: Create BigBlueButton video call.
  • list_documentsList documents. API summary: Get attachments.
  • list_domainsList domains. API summary: Get allowed domains.
  • list_draftsList drafts. API summary: Get drafts.
  • list_emojiList emoji. API summary: Get all custom emoji.
  • list_eventsList events. Optional filters: queue id, last event id or dont block. API summary: Get events from an event queue.
  • list_invitesList invites. API summary: Get all invitations.
  • list_linkifiersList linkifiers. API summary: Get linkifiers.
  • list_matches_narrowsList matches narrows. Optional filters: msg ids or narrow. API summary: Check if messages match a narrow.
  • list_message_historiesList histories for a message. Optional filters: allow empty topic name. API summary: Get a message's edit history.
  • list_my_subscriptionsList the channels you are subscribed to.
  • list_navigation_viewsList navigation views. API summary: Get all navigation views.
  • list_presencesList presences. API summary: Get presence of all users.
  • list_profile_fieldsList profile fields. API summary: Get all custom profile fields.
  • list_realmsList realms. API summary: Get all data exports.
  • list_remindersList reminders. API summary: Get reminders.
  • list_saved_snippetsList saved snippets. API summary: Get all saved snippets.
  • list_scheduled_messagesList your messages scheduled to be sent later.
  • list_server_settingsList server settings. API summary: Get server settings.
  • list_user_channelsList channels for a user. API summary: Get a user's subscribed channels.
  • list_user_group_membersList the members of a user group by `user_group_id`.
  • list_user_group_subgroupsList subgroups for a user group. Optional filters: direct subgroup only. API summary: Get subgroups of a user group.
  • list_user_groupsList user groups in the organization, with their IDs and members.
  • list_user_presencesList presences for a user. API summary: Get a user's presence.
  • list_usersList all users in the organization, with user IDs, names, emails and roles.
  • list_users_2List users. API summary: List users (development only).
  • schedule_messageVisible to othersSchedule a message to be sent later: same `type`, `to`, `topic` and `content` as send_message, plus `scheduled_delivery_timestamp` (UNIX seconds). It will be posted automatically at that time.
  • send_messageVisible to othersSend a message. For a channel: `type`='stream', `to`=channel name or ID, plus `topic` and `content`. For a direct message: `type`='direct', `to`=list of user IDs or emails. This posts a real message.
  • send_stream_addressVisible to othersEmail a stream (stream id). Has effects visible outside this system. API summary: Get channel's email address.
  • submit_inviteVisible to othersResend a invite (invite id). Has effects visible outside this system. API summary: Resend an email invitation.
  • submit_messageVisible to othersRender a message. Has effects visible outside this system.
  • subscribe_to_channelsChanges dataSubscribe yourself, or users given in `principals`, to channels listed in `subscriptions` (each with a `name`). A channel that does not exist yet is created.
  • unsubscribe_from_channelsMoves moneyUnsubscribe yourself, or users given in `principals`, from the channels named in `subscriptions`.
  • update_a_user_by_emailVisible to othersUpdate an existing user identified by email. Only the fields you pass are changed. Has effects visible outside this system. API summary: Update a user by email.
  • update_bot_storagesVisible to othersUpdate an existing bot storage. Has effects visible outside this system. API summary: Update a bot's stored data.
  • update_channelChanges dataUpdate a channel by `stream_id`: `new_name`, `description`, privacy, or archive it with `is_archived`.
  • update_channel_folderChanges dataUpdate an existing channel folder identified by channel folder id. Only the fields you pass are changed. API summary: Update a channel folder.
  • update_channel_foldersVisible to othersUpdate an existing channel folder. Only the fields you pass are changed. Has effects visible outside this system. API summary: Reorder channel folders.
  • update_domainChanges dataUpdate an existing domain identified by domain. Only the fields you pass are changed. API summary: Update an allowed domain.
  • update_draftChanges dataUpdate an existing draft identified by draft id. Only the fields you pass are changed. API summary: Edit a draft.
  • update_filterChanges dataUpdate an existing filter identified by filter id. Only the fields you pass are changed. API summary: Update a linkifier.
  • update_linkifiersVisible to othersUpdate an existing linkifier. Only the fields you pass are changed. Has effects visible outside this system. API summary: Reorder linkifiers.
  • update_messageVisible to othersUpdate an existing message identified by message id. Only the fields you pass are changed. Has effects visible outside this system. API summary: Edit a scheduled message.
  • update_message_flagsVisible to othersAdd or remove a flag on messages: `op` ('add' or 'remove'), `flag` (e.g. 'read', 'starred') and `messages` (message IDs). Use to mark messages read or starred.
  • update_my_statusChanges dataSet your own status: `status_text`, an emoji (`emoji_name`), and whether you are `away`.
  • update_navigation_viewChanges dataUpdate an existing navigation view identified by fragment. Only the fields you pass are changed. API summary: Update the navigation view.
  • update_profile_dataVisible to othersUpdate an existing profile data. Only the fields you pass are changed. Has effects visible outside this system. API summary: Update your profile data.
  • update_profile_fieldChanges dataUpdate an existing profile field identified by field id. Only the fields you pass are changed. API summary: Update a custom profile field.
  • update_profile_fieldsVisible to othersUpdate an existing profile field. Only the fields you pass are changed. Has effects visible outside this system. API summary: Reorder custom profile fields.
  • update_saved_snippetChanges dataUpdate an existing saved snippet identified by saved snippet id. Only the fields you pass are changed. API summary: Edit a saved snippet.
  • update_settingsVisible to othersUpdate an existing setting. Only the fields you pass are changed. Has effects visible outside this system. API summary: Update settings.
  • update_subscriptionChanges dataUpdate an existing subscription identified by stream id. Only the fields you pass are changed. API summary: Update a subscription setting.
  • update_userChanges dataUpdate an existing user identified by user id. API summary: Mute a user.
  • update_user_groupChanges dataUpdate an existing user group identified by user group id. Only the fields you pass are changed. API summary: Update a user group.
  • update_user_settings_defaultsVisible to othersUpdate an existing user settings default. Only the fields you pass are changed. Has effects visible outside this system. API summary: Update realm-level defaults of user settings.
  • update_user_statusChanges dataGet the current status of a user by user id. API summary: Update user status.
  • upload_documentChanges dataUpload a document. API summary: Upload a file.
  • upload_emojiChanges dataUpload a emoji (emoji name). API summary: Upload custom emoji.

Set up in three steps

  1. 1

    Pick the app

    Create a free HeyMyApps account and choose Zulip from the app list.

  2. 2

    Paste your key

    Enter your Zulip organization URL (for example https://acme.zulipchat.com or your self-hosted server), your Zulip email and your API key. In Zulip, click the gear icon > Personal settings > Account & privacy, then under API key click Manage your API key. For a bot, open Personal settings > Bots and use the bot's email and API key.

  3. 3

    Add the link to your AI

    You get a personal MCP link. Add it to Claude, ChatGPT or Cursor:

    1. Click your name, then Settings › Connectors › Add custom connector.
    2. Paste your link as the Remote MCP server URL.
    3. Switch it on from the + menu in a chat.

Questions

What can the AI do in Zulip?

It can search and read messages, channels, topics, subscribers, users and user groups, and list your scheduled messages. It can send, edit, delete and schedule messages, add reactions, mark messages read or starred, create and update channels, subscribe and unsubscribe users, set your status and invite people by email.

Does the AI see my Zulip credentials?

No. Your Zulip credentials are encrypted at rest and never shown to the AI. After you save them, they are not shown again, not even to you. The AI only sees the results of the tools it calls.

Can I control what the AI is allowed to do?

Yes. You choose which tools are switched on, so you can start with reading messages only. Sending, editing and deleting messages and inviting users can require your approval before they run. Deleting a message is permanent. Every tool call is logged.

Does it work with ChatGPT?

Yes. In ChatGPT, open Settings › Apps & Connectors › Advanced, turn on Developer mode and add your HeyMyApps link. Developer mode needs a paid ChatGPT plan: Plus, Pro, Business or Enterprise. The same link also works in Claude (Settings › Connectors › Add custom connector), Cursor and other MCP clients.

What does it cost?

HeyMyApps has a free plan with no credit card required. Paid plans bill per completed task. You also need your own Zulip account.

Should I use my own account or a bot?

Both work. With your own email and API key, the AI acts as you. With the email and API key of a bot from Personal settings > Bots, messages are posted as the bot and the AI works with the bot's access instead of yours.

Let your AI work in Zulip today.

Start free. Your key stays encrypted, and you decide what the AI may do.

Connect Zulip free

HeyMyApps is not affiliated with Zulip. Product names are trademarks of their owners.