z

zulipchat

@akougkas/zulipchat
Hosted
0 Stars 14 次浏览 akougkas 更新于 2026-08-23

ZulipChat MCP: Connect AI to Zulip with 60+ tools for messaging, streams, events, and analytics

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "zulipchat-mcp": {
      "args": [
        "zulipchat-mcp@0.4.2"
      ],
      "command": "uvx"
    }
  }
}

可用工具 (5 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

tavily_search 14 个参数 需填 1 项

Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.

必填参数:query

tavily_extract 6 个参数 需填 1 项

Extract content from URLs. Returns raw page content in markdown or text format.

必填参数:urls

tavily_crawl 11 个参数 需填 1 项

Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.

必填参数:url

tavily_map 8 个参数 需填 1 项

Map a website's structure. Returns a list of URLs found starting from the base URL.

必填参数:url

tavily_research 2 个参数 需填 1 项

Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.

必填参数:input

服务介绍

ZulipChat MCP Server

PyPI
CI
Publish
Coverage
Downloads
GitHub stars
Python
License
MCP

[Quick Start](# quick-start) · Setup Wizard · Integrations · [Two-Tier Tools](# two-tier-tool-architecture) · Contributing


# Quick Start

uvx zulipchat-mcp - -zulip-config-file ~/.zuliprc

That's it. Your AI assistant can now read and write Zulip messages.

Need a zuliprc? Zulip Settings > Personal > Account & privacy > API key — download the file, save it as ~/.zuliprc.

Interactive onboarding:

uvx zulipchat-mcp-setup

# What This Does

ZulipChat MCP bridges any MCP-compatible AI assistant (Claude Code, Gemini CLI, Cursor, Windsurf, etc.) to your Zulip workspace. The assistant can:

  • Send and read messages — stream messages, DMs, replies, reactions
  • Search conversation history — full-text search with filters for sender, stream, time range
  • Resolve people by name — "message Jaime" just works, no hunting for formal emails
  • Switch identities — post as yourself or as a bot, in the same session
  • Monitor activity — search recent messages, get stream info, check who's online

# Two-Tier Tool Architecture

v0.6.0 introduced a deliberate split: 19 core tools by default, ~55 tools when you need more.

# # Core Mode (default)

The 19 tools that cover 95% of daily use:

| Category | Tools |
|- -- -- -- -- -|- -- -- --|
| Messaging | send_message, edit_message, get_message, add_reaction |
| Search | search_messages, get_streams, get_stream_info, get_stream_topics |
| Users | resolve_user, get_users, get_own_user |
| Agent Comms | teleport_chat, register_agent, agent_message, request_user_input, wait_for_response |
| System | switch_identity, server_info, manage_message_flags |

Why 19 instead of 55+? Fewer tools means faster tool selection, lower token overhead, and less confusion for the AI. Most tasks — sending messages, searching, reacting — only need the core set.

# # Extended Mode

Need scheduled messages, event queues, file uploads, analytics, or advanced search?

uvx zulipchat-mcp - -zulip-config-file ~/.zuliprc - -extended-tools

Or via environment variable:

ZULIPCHAT_EXTENDED_TOOLS=1 uvx zulipchat-mcp - -zulip-config-file ~/.zuliprc

Extended mode adds: toggle_reaction, cross_post_message, advanced_search, construct_narrow, get_scheduled_messages, manage_scheduled_message, register_events, get_events, listen_events, upload_file, manage_files, get_daily_summary, manage_user_mute, get_user, get_presence, get_user_groups, and more.

# Installation

Full per-client setup guide: docs/integrations/README.md

# # Claude Code

claude mcp add zulipchat - - uvx zulipchat-mcp - -zulip-config-file ~/.zuliprc

With dual identity (you + a bot):

claude mcp add zulipchat - - uvx zulipchat-mcp \
  - -zulip-config-file ~/.zuliprc \
  - -zulip-bot-config-file ~/.zuliprc-bot

# # Gemini CLI

Add to ~/.gemini/settings.json under mcpServers:

{
  "zulipchat": {
    "command": "uvx",
    "args": ["zulipchat-mcp", "- -zulip-config-file", "/path/to/.zuliprc"]
  }
}

# # Claude Desktop / Cursor / Any MCP Client

Add to your MCP configuration:

{
  "mcpServers": {
    "zulipchat": {
      "command": "uvx",
      "args": ["zulipchat-mcp", "- -zulip-config-file", "/path/to/.zuliprc"]
    }
  }
}

# # Configuration Options

| Option | Description |
|- -- -- -- -|- -- -- -- -- -- --|
| - -zulip-config-file PATH | Path to your zuliprc file |
| - -zulip-bot-config-file PATH | Bot zuliprc for dual identity |
| - -extended-tools | Register all ~55 tools instead of 19 |
| - -unsafe | Enable administrative tools (use with caution) |
| - -debug | Enable debug logging |

# # More clients

Dedicated setup pages:

# Dual Identity

Configure both a user and a bot zuliprc to let your assistant switch between identities mid-session:

uvx zulipchat-mcp \
  - -zulip-config-file ~/.zuliprc \
  - -zulip-bot-config-file ~/.zuliprc-bot

The assistant posts as you by default. Call switch_identity to post as the bot — useful for automated notifications, agent-to-agent communication, or keeping human vs. bot messages distinct.

# Real-World Examples

"Catch me up on what happened in # engineering today"
→ Assistant calls search_messages with stream + time filter, summarizes the thread.

"Tell the team we're deploying at 3pm"
→ Assistant calls send_message to # engineering with the announcement.

"Who sent that message about the API migration?"
→ Assistant calls search_messages with keywords, returns sender and context.

"React with :thumbs_up: to Sarah's last message"
→ Assistant calls resolve_user ("Sarah"), search_messages (sender), then add_reaction.

"DM Jaime that the PR is ready"
→ Assistant calls teleport_chat with fuzzy name resolution — no email needed.

# Development

git clone https://github.com/akougkas/zulipchat-mcp.git
cd zulipchat-mcp
uv sync
uv run zulipchat-mcp - -zulip-config-file ~/.zuliprc

Run checks:

uv run pytest -q              #  566 tests, 60% coverage gate
uv run ruff check .           #  Linting
uv run mypy src               #  Type checking

See CONTRIBUTING.md for the full guide, and CLAUDE.md / AGENTS.md for AI agent instructions.

# Architecture

src/zulipchat_mcp/
├── core/           #  Client wrapper, identity, caching, security
├── tools/          #  MCP tool implementations (two-tier registration)
├── services/       #  Background listener, AFK watcher
├── utils/          #  Logging, DuckDB persistence, metrics
└── config.py       #  config loading (zuliprc + environment fallback)

Built on FastMCP with async-first design, DuckDB for agent state persistence, and smart user/stream caching for fast fuzzy resolution.

# Privacy

  • No data collection — nothing leaves your machine except Zulip API calls
  • No telemetry — zero analytics, tracking, or usage reporting
  • Local execution — all processing happens on your hardware
  • Credentials stay local — API keys are never logged or transmitted beyond your Zulip server

Full policy: PRIVACY.md

# License

MIT — See LICENSE

# Links


<!- - mcp-name: io.github.akougkas/zulipchat - ->

相关 MCP 服务