home / mcp / zulipchat mcp server
Provides a Zulip-connected MCP server that enables an AI assistant to read, send, and manage Zulip messages, streams, topics, users, files, events, and analytics.
Configuration
View docs{
"mcpServers": {
"akougkas-zulipchat-mcp": {
"command": "uvx",
"args": [
"zulipchat-mcp",
"--zulip-config-file",
"/path/to/zuliprc"
]
}
}
}ZulipChat MCP Server lets your AI assistant connect to Zulip and perform messaging, stream management, analytics, file operations, and workflow automation through a modular MCP (Model Context Protocol) interface. This enables powerful, context-aware interactions with your Zulip environment from your AI agent.
You use the Zulip MCP server by connecting an MCP client to it. Once connected, your AI assistant can perform actions across eight categories such as Messaging, Streams, Topics, Users, Search & Analytics, Events, Files, and System workflows. Start by configuring your MCP client to point at the server, then invoke tool endpoints or commands supported by the client to send messages, query streams, manage topics, retrieve analytics, upload files, listen for events, and execute automated workflows. The server handles authentication against Zulip using your provided credentials and exposes capabilities through a consistent MCP interface so your AI can act within Zulip with proper context.
Prerequisites: you need Python 3.10+ and the UV package manager. You will also need access to a Zulip instance and a zuliprc configuration file that contains your Zulip credentials.
uvx zulipchat-mcp --zulip-config-file ~/.zuliprcIf you prefer a wizard-assisted setup, run the setup flow to automatically locate zuliprc files, validate credentials, and generate the MCP client configuration.
uvx --from zulipchat-mcp zulipchat-mcp-setupIf you want to connect manually using a Zulip config file, you can use the following approach.
uvx zulipchat-mcp --zulip-config-file ~/.zuliprcA sample MCP configuration for an MCP client can be added to your MCP config file as shown in the example below. This enables you to run the MCP server from a local command, such as during development or testing.
{
"mcpServers": {
"zulipchat": {
"command": "uvx",
"args": ["zulipchat-mcp", "--zulip-config-file", "/path/to/zuliprc"]
}
}
}Configuration options you may encounter include specifying the zuliprc path, enabling a bot configuration file for dual identity, and toggling debugging or listener services. Use the following options when running the client or setting up the MCP config file: --zulip-config-file PATH, --zulip-bot-config-file PATH, --unsafe, --debug, and --enable-listener.
Common issues and their remedies include ensuring your Zulip credentials are correct, confirming the Zulip site URL uses https, and verifying your bot has permissions for the streams you intend to use. If a connection fails, validate the credentials and recheck the zuliprc file. If a module cannot be found, consider updating the UV toolchain and reinstalling the MCP package.
For troubleshooting, ensure the MCP client config is correctly referenced by the server and that the command or URL used to start the MCP server is valid and reachable.
Send, schedule, or draft messages with smart formatting and context-aware behavior.
Query messages with token-limited results and narrow filters to locate relevant content.
Edit message content and topics with propagation options.
Coordinate and monitor large-scale messaging tasks with progress tracking.
Provide an audit trail of messages with timestamps for edits and actions.
Share messages across streams with attribution and proper formatting.
Attach reactions to messages using Unicode or custom emotes; supports removal.
Remove reactions from messages to manage engagement.
Set messages as read to track user engagement.
Mark messages as unread to surface attention when needed.
Schedule messages for delayed delivery; option to cancel scheduled items.
Cancel previously scheduled messages.
Fetch details about a Zulip stream, including subscribers and configurations.
List streams with filters such as subscription status for quick discovery.
List topics within a selected stream to navigate conversations.
Move topics across streams and apply propagation rules where supported.
Handle multiple identity contexts; switch between user and bot roles.
Validate and switch the current session identity for continuity.
Create and manage user groups and memberships in Zulip.
Query user online presence to gauge availability.
Set a user's status emoji and text to reflect current state.
Mute a user to suppress notifications from specific individuals.
Unmute a user to resume normal notifications.
Perform multi-criteria searches with ranking and filters.
Generate AI-powered insights, sentiment analysis, and participation metrics.
Produce activity summaries and engagement reporting.
Subscribe to 20+ event types with queue auto-cleanup.
Receive long-polling updates with queue validation for real-time data.
Clean up event queues when no longer needed.
Integrate with webhooks to receive event notifications.
Upload files with progress tracking and automatic sharing.
Handle file lifecycles, including metadata extraction.
Retrieve server metadata and routing hints for debugging.
Provide on-demand tool documentation to users.
Run workflows with branching logic and conditional steps.
Track agent sessions and identities in the MCP environment.
Send bot identity messages to establish or update bot personas.