ZulipChat MCP Server — Claude Code MCP server: features and setup
Connect an MCP client to Zulip so an agent can search conversations, send messages, and inspect streams. Useful when you want to work with Zulip from your coding assistant.
claude mcp add --env ZULIP_EMAIL=<ZULIP_EMAIL> --env ZULIP_API_KEY=<ZULIP_API_KEY> --env ZULIP_SITE=<ZULIP_SITE> --transport stdio zulipchat-mcp-server -- uvx zulipchat-mcpWhat ZulipChat MCP Server does
The server connects an MCP client to a Zulip workspace. An agent can read and send messages, search conversation history by sender, stream, or time, resolve users by name, and react to messages. The core profile exposes 20 tools; the extended profile adds tools for files, events, scheduled messages, and analytics.
You need a Zulip account and API key. Configure the server with a ~/.zuliprc file or environment variables, then launch it through uvx. The Claude Code setup command registers it as an MCP server. Without Zulip credentials, the server has no account to connect to.
What it helps with
- search Zulip history by sender or stream
- send a message to a Zulip stream
- resolve a person by name before messaging
- check stream details and topics
- access files or event tools in extended mode
Example prompts for the agent
- Find Zulip messages from this user during the requested time range.
- Send a message to the selected Zulip stream.
- Show me the details and topics for this Zulip stream.
How to install ZulipChat MCP Server
Platform CLI
claude mcp add --env ZULIP_EMAIL=<ZULIP_EMAIL> --env ZULIP_API_KEY=<ZULIP_API_KEY> --env ZULIP_SITE=<ZULIP_SITE> --transport stdio zulipchat-mcp-server -- uvx zulipchat-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zulipchat-mcp <command>
Platform CLI
codex mcp add zulipchat-mcp-server --env ZULIP_EMAIL=<ZULIP_EMAIL> --env ZULIP_API_KEY=<ZULIP_API_KEY> --env ZULIP_SITE=<ZULIP_SITE> -- uvx zulipchat-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zulipchat-mcp <command>
Config file
{
"mcpServers": {
"zulipchat-mcp-server": {
"command": "uvx",
"args": [
"zulipchat-mcp"
],
"env": {
"ZULIP_EMAIL": "<ZULIP_EMAIL>",
"ZULIP_API_KEY": "<ZULIP_API_KEY>",
"ZULIP_SITE": "<ZULIP_SITE>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zulipchat-mcp <command>
Config file
{
"servers": {
"zulipchat-mcp-server": {
"type": "stdio",
"command": "uvx",
"args": [
"zulipchat-mcp"
],
"env": {
"ZULIP_EMAIL": "<ZULIP_EMAIL>",
"ZULIP_API_KEY": "<ZULIP_API_KEY>",
"ZULIP_SITE": "<ZULIP_SITE>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zulipchat-mcp <command>
Platform CLI
gemini mcp add -e ZULIP_EMAIL=<ZULIP_EMAIL> -e ZULIP_API_KEY=<ZULIP_API_KEY> -e ZULIP_SITE=<ZULIP_SITE> zulipchat-mcp-server uvx zulipchat-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zulipchat-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about ZulipChat MCP Server
How do I install ZulipChat MCP Server in Claude Code?
Run claude mcp add zulipchat -e ZULIP_API_KEY=<ZULIP_API_KEY> -- uvx zulipchat-mcp. Replace the placeholder with your Zulip account's API key.
What does ZulipChat MCP Server do?
It connects an MCP client to Zulip, allowing an agent to read and send messages, search conversation history, and inspect streams. The extended profile includes tools for events, files, and scheduled messages.
What is the difference between core and extended mode?
Core mode exposes 20 tools, while extended mode exposes 60. Add --extended-tools when launching the server to enable the extended profile.