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.
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.
- 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
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.
One command plus a key — uvx zulipchat-mcp --zulip-config-file ~/.zuliprc, then supply credentials
