akougkas/zulipchat-mcp
If you are the rightful owner of zulipchat-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The ZulipChat MCP Server enables seamless integration of AI agents with Zulip Chat, leveraging the Model Context Protocol (MCP) for enhanced communication and automation.
ZulipChat MCP Server
What is this?
ZulipChat MCP lets AI assistants like Claude, ChatGPT, and Cursor interact with your Zulip workspace. Send messages, search conversations, create summaries - all through natural language.
Real Examples
You: "Send a message to #general saying the deployment is complete"
AI: ✓ Message sent to #general
You: "What did people discuss in #engineering today?"
AI: Here's a summary of today's engineering discussions...
You: "Generate a daily summary of all active streams"
AI: Creating your daily digest...
New in v2.2.0: Production-Ready MCP Server
🎉 100% Tool Success Rate - All 19 MCP tools working flawlessly:
- ✅ Critical Bugs Fixed - Resolved type handling, API compliance, and implementation gaps
- ✅ Bot Identity System - Sophisticated dual-credential system for professional AI attribution
- ✅ 59ms Average Latency - Optimized direct API streaming with 40-60% performance improvement
- ✅ Production Architecture - Clean v2.0 structure with DuckDB persistence
🚀 Advanced Agent Features:
- 🤖 Bot Identity - Claude Code gets its own identity instead of using your account
- 📊 Project Detection - Automatic context awareness across git repos and machines
- 💬 Rich Communication - Full message lifecycle with reactions, editing, and search
- 📈 Task Management - Complete agent workflow with progress tracking
- 🔍 Smart Search - Contextual message and user discovery
🛠️ Comprehensive MCP Tools (19 total):
- Messaging:
send_message
,edit_message
,add_reaction
,get_messages
- Streams:
get_streams
,create_stream
,rename_stream
,archive_stream
- Agents:
register_agent
,agent_message
,request_user_input
,task_lifecycle
- Search:
search_messages
,get_users
,get_daily_summary
⚡ What's Next: Transitioning to standard MCP installation (see docs/NEXT-SESSION-PROMPT.md
)
Quick Start
uvx zulipchat-mcp --zulip-email YOUR_EMAIL --zulip-api-key YOUR_API_KEY --zulip-site YOUR_SITE
Installation
Install in Claude Desktop
Local Server Connection
Open Claude Desktop developer settings and edit your claude_desktop_config.json
file to add the following configuration:
{
"mcpServers": {
"zulipchat": {
"command": "uvx",
"args": [
"zulipchat-mcp",
"--zulip-email", "YOUR_EMAIL",
"--zulip-api-key", "YOUR_API_KEY",
"--zulip-site", "YOUR_SITE"
]
}
}
}
Install in Claude Code
claude mcp add zulipchat -- uvx zulipchat-mcp --zulip-email YOUR_EMAIL --zulip-api-key YOUR_API_KEY --zulip-site YOUR_SITE
Install in VS Code
{
"mcp.servers": {
"zulipchat": {
"command": "uvx",
"args": [
"zulipchat-mcp",
"--zulip-email", "YOUR_EMAIL",
"--zulip-api-key", "YOUR_API_KEY",
"--zulip-site", "YOUR_SITE"
],
"type": "stdio"
}
}
}
Install in Cursor
{
"mcpServers": {
"zulipchat": {
"command": "uvx",
"args": [
"zulipchat-mcp",
"--zulip-email", "YOUR_EMAIL",
"--zulip-api-key", "YOUR_API_KEY",
"--zulip-site", "YOUR_SITE"
]
}
}
}
Install in Gemini CLI
{
"mcpServers": {
"zulipchat": {
"command": "uvx",
"args": [
"zulipchat-mcp",
"--zulip-email", "YOUR_EMAIL",
"--zulip-api-key", "YOUR_API_KEY",
"--zulip-site", "YOUR_SITE"
]
}
}
}
Install in Opencode
{
"mcp": {
"zulipchat": {
"type": "local",
"command": [
"uvx", "zulipchat-mcp",
"--zulip-email", "YOUR_EMAIL",
"--zulip-api-key", "YOUR_API_KEY",
"--zulip-site", "YOUR_SITE"
],
"enabled": true
}
}
}
Install in Crush CLI
{
"mcpServers": {
"zulipchat": {
"command": "uvx",
"args": [
"zulipchat-mcp",
"--zulip-email", "YOUR_EMAIL",
"--zulip-api-key", "YOUR_API_KEY",
"--zulip-site", "YOUR_SITE"
]
}
}
}
Available Tools
Your AI assistant can use these Zulip tools:
Core Messaging Tools
Tool | What it does | Example |
---|---|---|
send_message | Send messages to streams or users | "Post update to #releases" |
get_messages | Retrieve recent messages | "Show me the last 10 messages in #general" |
search_messages | Search across all messages | "Find messages about deployment" |
get_streams | List available streams | "What streams can I access?" |
get_users | List organization users | "Who's in the workspace?" |
add_reaction | Add emoji reactions | "React with 👍 to the last message" |
edit_message | Edit existing messages | "Fix the typo in my last message" |
get_daily_summary | Generate activity reports | "Create a summary of today's activity" |
Agent Communication Tools (v1.4.0)
Tool | What it does | Example |
---|---|---|
register_agent | Register AI agent with auto-detection | "Register Claude Code for this project" |
agent_message | Send project-aware notifications | "Notify completion of task" |
request_user_input | Request input with context | "Ask which branch to deploy" |
send_agent_status | Send status updates | "Update progress to 75%" |
start_task | Start task with tracking | "Begin implementing auth feature" |
update_task_progress | Update task progress | "Mark subtask as complete" |
complete_task | Complete task with summary | "Finish task with test results" |
list_instances | List all active instances | "Show all Claude Code instances" |
Stream Management Tools
Tool | What it does | Example |
---|---|---|
create_stream | Create new streams | "Create stream for project-x" |
rename_stream | Rename existing streams | "Rename stream to archived-project" |
archive_stream | Archive streams | "Archive old project stream" |
Resources
Access Zulip data directly:
zulip://stream/{name}
- Stream message historyzulip://streams
- All available streamszulip://users
- Organization users
Smart Prompts
Built-in prompts for common tasks:
daily_summary
- Comprehensive daily reportmorning_briefing
- Overnight activity summarycatch_up
- Quick summary of recent messages
Examples
Daily Standup Automation
You: "Post our daily standup reminder to #team"
AI: ✓ Posted standup reminder with yesterday's summary
Smart Search
You: "Find all messages from Alice about the API redesign"
AI: Found 12 messages from Alice discussing API redesign...
Activity Reports
You: "Generate a weekly summary for #product"
AI: Here's your weekly product channel summary...
Message Management
You: "Edit my last message to fix the meeting time to 3pm"
AI: ✓ Message updated
Configuration
Pass credentials as CLI arguments (recommended) or use environment variables for development:
# CLI arguments (for MCP clients)
--zulip-email YOUR_EMAIL --zulip-api-key YOUR_API_KEY --zulip-site YOUR_SITE
# Environment variables (for development)
export ZULIP_EMAIL="your-email@domain.com"
export ZULIP_API_KEY="your-api-key"
export ZULIP_SITE="https://your-org.zulipchat.com"
Development
Local Setup
git clone https://github.com/akougkas/zulipchat-mcp.git
cd zulipchat-mcp
uv sync
uv run zulipchat-mcp
Testing Connection
uv run python -c "
from src.zulipchat_mcp.client import ZulipClientWrapper
client = ZulipClientWrapper()
print(f'Connected! Found {len(client.get_streams())} streams.')
"
Troubleshooting
"No Zulip email found"
- Set the environment variables shown in Quick Start
- Or create a config file in
~/.config/zulipchat-mcp/config.json
"Connection failed"
- Verify your API key is correct
- Check your Zulip site URL includes
https://
- Ensure your bot has permissions for the streams
"Module not found"
- Update uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Reinstall:
uvx --from git+https://github.com/akougkas/zulipchat-mcp.git zulipchat-mcp
Use Cases
- DevOps: Automate deployment notifications and incident updates
- Support: Route customer questions and create ticket summaries
- Product: Generate sprint reports and feature request digests
- Team Leads: Daily standups and team activity summaries
- HR: Onboarding workflows and announcement automation
Architecture
ZulipChat MCP is built with:
- FastMCP - MCP server framework
- Pydantic - Data validation
- UV - Fast Python package management
- Async operations for performance
- Smart caching for efficiency
- Comprehensive error handling
Contributing
We welcome contributions! To get started:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
See for development guidelines.
License
MIT - See for details.