Labsco
MCP SERVER

Zulip Chat

by akougkas

Read and write Zulip from any MCP client — 20 core tools by default, 60 when you need the rest.

Team Chat Platforms
Summary
Chat as an interface to your agents, not just a place to read messages.

The session tools change what this is for: a long-running agent can bind itself to a Zulip topic, ask a question there, and wait — so the approval happens in the place your team already watches rather than in a terminal nobody is looking at.

What it is

A Zulip connector with a deliberate split. The default registers the 20 tools that cover daily use, because fewer tools mean faster selection and less token overhead; an extended mode registers all 60 when you need scheduling, event queues, file uploads or analytics. It also handles the agent side: sessions can be bound to a Zulip topic and ask for approval there.

What you get
  • Messaging — `send_message`, `edit_message`, `get_message`, `add_reaction`, `manage_message_flags`
  • Search and streams — `search_messages` with sender, stream and time filters, `get_streams`, `get_stream_info`, `get_stream_topics`
  • People — `resolve_user` so "message Jaime" works without hunting for an address, `get_users`, `get_own_user`
  • Identity — `switch_identity` posts as the bot instead of as you, in the same session, so human and automated messages stay distinguishable
  • Agent comms — `teleport_chat`, `register_agent`, `ensure_agent_session`, `agent_message`, `request_user_input` and `wait_for_response`, which is how a long-running session gets a stable control topic and an approval path
  • Extended mode adds `advanced_search`, `construct_narrow`, `cross_post_message`, `toggle_reaction`, scheduled messages, drafts, event registration and listening, `upload_file` and `manage_files`, `get_daily_summary`, presence and user groups
Requirements

A `.zuliprc` — download it from Zulip Settings > Personal > Account & privacy > API key and save it as `~/.zuliprc`. Then `uvx zulipchat-mcp --zulip-config-file ~/.zuliprc`, or run the interactive onboarding with `zulipchat-mcp-setup`. Pass `--zulip-bot-config-file` as well for dual identity, which is what `switch_identity` needs. Extended mode is `--extended-tools` or `ZULIPCHAT_EXTENDED_TOOLS=1`. `--transport` serves stdio or http, with `--host` and `--port` for the network case. The assistant posts as you by default — worth knowing before you point it at a busy stream.

Setup effort

One command plus a key — uvx zulipchat-mcp --zulip-config-file ~/.zuliprc, then supply credentials