This MCP server acts as a powerful bridge between AI assistants and the Zulip team chat platform, effectively giving large language models a presence within a professional workspace. By connecting an AI to Zulip, teams can interact with their AI tools directly inside their existing communication channels. In its simplest form, the tool allows an AI to read and send messages, search through past conversations, and participate in stream discussions just like any other team member. Beyond basic messaging, the server provides comprehensive control over the Zulip environment. It enables the AI to manage streams and topics, handle file uploads, and generate advanced analytics like sentiment analysis or participation reports. This makes it an ideal solution for automating routine administrative tasks, such as summarizing daily activity across multiple channels or organizing project discussions into the appropriate streams with smart formatting and context preservation. For developers building sophisticated agents, this tool offers deep integration features like real-time event monitoring and multi-identity support. It allows an AI to switch between user and bot contexts, track long-running task lifecycles, and even manage its own status. With support for complex workflow automation and branching logic, the server transforms a standard assistant into a proactive "Zulip superuser" capable of reacting to system events and executing multi-step operations autonomously.
Category: Communication & Messaging
Tags: automation, chat, collaboration, messaging, zulip
uv via the following methods: From GitHub (Current Recommended Method): bash uvx --from git+https://github.com/akougkas/zulipchat-mcp.git zulipchat-mcp \ --zulip-email user@org.com \ --zulip-api-key YOUR_API_KEY \ --zulip-site https://org.zulipchat.com From Source (For Development): bash git clone https://github.com/akougkas/zulipchat-mcp.git cd zulipchat-mcp uv sync uv run zulipchat-mcp --zulip-email user@org.com --zulip-api-key YOUR_API_KEY --zulip-site https://site.zulipchat.comZULIP_EMAIL: Your Zulip account email. * ZULIP_API_KEY: Your Zulip API key. * ZULIP_SITE: The URL of your Zulip organization (e.g., https://org.zulipchat.com). * ZULIP_BOT_EMAIL (Optional): Bot email for advanced agent features. * ZULIP_BOT_API_KEY (Optional): Bot API key for advanced agent features.claude_desktop_config.json: json { "mcpServers": { "zulipchat": { "command": "uvx", "args": ["--from", "git+https://github.com/akougkas/zulipchat-mcp.git", "zulipchat-mcp"], "env": { "ZULIP_EMAIL": "bot@your-org.zulipchat.com", "ZULIP_API_KEY": "your-api-key", "ZULIP_SITE": "https://your-org.zulipchat.com" } } } }message (send/schedule), search_messages, edit_message, bulk_operations, message_history, cross_post_message, add_reaction, remove_reaction. * Streams & Topics: manage_streams, manage_topics, get_stream_info, stream_analytics, manage_stream_settings. * Real-time Events: register_events, get_events, listen_events. * User Management: manage_users, switch_identity, manage_user_groups. * Search & Analytics: advanced_search, analytics (sentiment/participation), get_daily_summary. * Files & Media: upload_file, manage_files. * Agent Communication: register_agent, agent_message, request_user_input, start_task, update_progress, complete_task, enable_afk_mode, disable_afk_mode. * System & Workflow: server_info, tool_help, execute_chain.analytics and get_daily_summary tools. It can scan specific streams, identify top contributors, and summarize the most important decisions made in a given timeframe. Example: A lead asks: "What were the three most important technical decisions made in the #architecture stream this week?" The AI searches the message history, identifies key threads using sentiment analysis, and provides a bulleted summary of the consensus reached.advanced_search and message_history, the AI can perform multi-faceted searches and provide a narrative answer based on historical chat context, effectively turning Zulip into a searchable, conversational knowledge base. Example: A developer asks: "Why did we decide to deprecate the legacy authentication service?" The AI searches through the #engineering-core stream, finds the relevant topic from six months ago, and explains: "According to the discussion in July, the team switched because the legacy service didn't support OAuth 2.0. See [link to message] for the security audit details."analytics tool’s sentiment analysis and participation metrics, the AI can monitor specific streams for "collaboration scores" and sentiment shifts. This allows for proactive intervention before issues escalate. Example: An AI assistant is configured to run a weekly check: "Analyze the sentiment of the #launch-prep stream." If the AI detects a high volume of "frustrated" sentiment or a drop in "collaboration scores," it alerts the manager that the team might be experiencing burnout or a major technical blocker.Part of MCP Servers
Zulip Chat is an open Model Context Protocol server that bridges AI assistants like Claude Code, Gemini CLI, Cursor, and Windsurf to Zulip workspaces. It provides programmatic tools for reading conversations, managing stream topics, posting messages, and handling reactions within team chat.
You can run it directly using uvx without a manual package installation. Download your API credentials to ~/.zuliprc from Zulip settings, then launch the server using uvx zulipchat-mcp --zulip-config-file ~/.zuliprc or add it to your client MCP configuration file.
Zulip Chat functions with any standard MCP-compliant client. Documented integrations include Claude Code, Claude Desktop, Cursor, Windsurf, Gemini CLI, Codex, OpenCode, and VS Code with GitHub Copilot, supporting both standard input/output and remote HTTP transport modes.
Core mode exposes 20 fundamental tools covering messaging, search, user resolution, and agent session handling to reduce token overhead. Extended mode activates 60 tools, adding support for drafts, scheduled messaging, file uploads, event queues, and advanced stream analytics.
Dual identity allows you to provide credentials for both your personal user account and an automated bot account. The AI assistant can then toggle between posting as yourself or as an administrative bot during an active session using the switch_identity tool.