zulipchat-mcp

akougkas/zulipchat-mcp

3.2

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.

Tools
8
Resources
0
Prompts
0

ZulipChat MCP Server

Connect AI assistants to Zulip Chat

MCP Python

Quick StartInstallationToolsExamples

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

ToolWhat it doesExample
send_messageSend messages to streams or users"Post update to #releases"
get_messagesRetrieve recent messages"Show me the last 10 messages in #general"
search_messagesSearch across all messages"Find messages about deployment"
get_streamsList available streams"What streams can I access?"
get_usersList organization users"Who's in the workspace?"
add_reactionAdd emoji reactions"React with 👍 to the last message"
edit_messageEdit existing messages"Fix the typo in my last message"
get_daily_summaryGenerate activity reports"Create a summary of today's activity"

Agent Communication Tools (v1.4.0)

ToolWhat it doesExample
register_agentRegister AI agent with auto-detection"Register Claude Code for this project"
agent_messageSend project-aware notifications"Notify completion of task"
request_user_inputRequest input with context"Ask which branch to deploy"
send_agent_statusSend status updates"Update progress to 75%"
start_taskStart task with tracking"Begin implementing auth feature"
update_task_progressUpdate task progress"Mark subtask as complete"
complete_taskComplete task with summary"Finish task with test results"
list_instancesList all active instances"Show all Claude Code instances"

Stream Management Tools

ToolWhat it doesExample
create_streamCreate new streams"Create stream for project-x"
rename_streamRename existing streams"Rename stream to archived-project"
archive_streamArchive streams"Archive old project stream"

Resources

Access Zulip data directly:

  • zulip://stream/{name} - Stream message history
  • zulip://streams - All available streams
  • zulip://users - Organization users

Smart Prompts

Built-in prompts for common tasks:

  • daily_summary - Comprehensive daily report
  • morning_briefing - Overnight activity summary
  • catch_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:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

See for development guidelines.

License

MIT - See for details.

Links


Built with ❤️ for the Zulip community