Zulip MCP server
Zulip in any MCP client, through Memtro: Zulip does not publish this server. Memtro's Zulip connector reads Zulip through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.
What the model can do
A Zulip organisation: channels, recent messages by channel, topic, sender or search words, a single message, and members. Can send and schedule messages, save drafts, edit and delete messages, add and remove reactions, mark messages read or starred, set reminders and status, create, edit and archive channels, subscribe and unsubscribe people, invite people and create user groups.
Reads
zulip_list_channelsChannels (Zulip's streams): id, name, description, whether private, and when created.zulip_get_messagesChannel messages, newest first: sender, time, channel, topic, text (cut short) and a link.zulip_get_messageOne channel message by id, with its full text (as written, in Markdown).zulip_list_usersMembers of the organisation: user id, name, role (owner, administrator, moderator, member, guest), whether a bot and whether active.zulip_list_scheduled_messagesThe connected bot's or user's own undelivered scheduled messages, soonest first: id, when it sends, channel id and topic…zulip_list_remindersThe connected bot's or user's own undelivered message reminders, soonest first: reminder id, when it fires and the message it is about.
Acts, when you ask
These change something in Zulip. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.
zulip_send_messageSend a message as the connected bot or user: to a channel topic (channel name or id plus topic), or directly to people (their user ids).zulip_create_draftSave a draft for the connected bot or user, for a channel topic (channel id plus topic) or for people (user ids).zulip_update_messageReplace a message's text and/or move it to another topic.zulip_delete_messageDelete a message for everyone.zulip_add_reactionAdd an emoji reaction (by name, e.g. thumbs_up, check) to a message, from the connected bot or user.zulip_remove_reactionRemove the connected bot's or user's own emoji reaction (by name) from a message.zulip_update_message_flagsMark up to 100 messages (by id) read or unread, starred or unstarred, or collapsed, for the connected bot or user only.zulip_create_scheduled_messageSchedule a message to be sent later as the connected bot or user: to a channel topic (channel id plus topic) or directly to people (user ids).zulip_update_scheduled_messageChange one of the connected account's scheduled messages before it sends: its text, topic or send time.zulip_delete_scheduled_messageCancel one of the connected account's scheduled messages so it is never sent.zulip_create_reminderSet a reminder about a message for the connected bot or user: at remind_at, Zulip's Notification Bot sends that account…zulip_set_statusSet the connected bot's or user's status text and/or emoji, which everyone in the organisation sees beside the name.zulip_create_channelCreate a channel and subscribe the listed users (user ids) to it.zulip_update_channelChange a channel's name, description, privacy, whether new members can read its history, or whether it is a default channel for new users.zulip_archive_channelArchive a channel: it disappears from every member's list and nobody can post in it.zulip_subscribe_usersSubscribe the listed users (user ids) to the listed channels (exact names).zulip_unsubscribe_usersRemove the listed users (user ids) from the listed channels (exact names).zulip_send_invitesEmail invitations to join the Zulip organisation to the listed addresses (up to 20).zulip_create_user_groupCreate a user group (an @-mentionable set of people) with the listed members (user ids).
Connect it
First connect Zulip on Dashboard → Connections, then add Memtro to your client once. The Zulip tools appear alongside the tools of everything else you have connected; nothing is configured per connector.
Claude Code
The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.
claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...Cursor
Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.
{
"mcpServers": {
"memtro": {
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Claude Desktop
Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…
OpenCode
A remote server in opencode.json.
{
"mcp": {
"memtro": {
"type": "remote",
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Pi
One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.
Any other client
Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.
Who may use it
The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Zulip connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.
Ask it like this
- › What did the release topic in #engineering decide?
- › What has Priya Sharma posted about the migration this week?
- › Which channels are private?
- › Who are the administrators of our Zulip organisation?
- › Schedule a message to #support, topic outage, at 9am saying service is restored
Questions
- Is this an official Zulip MCP server?
- No. It is Memtro's MCP server with Memtro's Zulip connector behind it: the connector reads Zulip through its API with the credentials you connect on Dashboard → Connections, and Zulip publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
- What does it cost?
- Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
- Can it change anything in Zulip?
- Only when you ask, and only what it has been granted: send a Zulip message to a channel topic or to people directly (they are notified); save a Zulip draft for the connected user (nothing is sent); edit a Zulip message, or move it (and optionally later or all messages in its topic) to another topic; delete a Zulip message (permanent); add an emoji reaction to a Zulip message; remove the connected account's emoji reaction from a Zulip message; mark Zulip messages read or unread, starred or collapsed, for the connected account only; schedule a Zulip message to send later (recipients are notified when it sends); edit a scheduled Zulip message's text, topic or send time; cancel a scheduled Zulip message (permanent); set a Zulip reminder about a message for the connected account; set the connected account's Zulip status text or emoji (everyone sees it); create a Zulip channel and subscribe people to it; rename a Zulip channel or change its description, privacy or defaults; archive a Zulip channel; subscribe people to Zulip channels (an unknown name creates a channel); remove people from Zulip channels; email invitations to join the Zulip organisation (each invitee is emailed); create a Zulip user group. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
- Which clients work?
- Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.