
antra-tess/zulip_mcp
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
A Zulip server for AI agents, speaking plain (Model Context Protocol) to any client and (MCP Live) to hosts that support it — live delivery of stream messages and DMs, host-managed channels, catch-up...
概要
A Zulip server for AI agents, speaking plain (Model Context Protocol) to any client and (MCP Live) to hosts that support it — live delivery of stream messages and DMs, host-managed channels, catch-up after downtime, a hot-reloadable filters plane, and a stateful tool surface for reading and writing Zulip. Built on @animalabs/mcpl-core, the same substrate as discord-mcpl and slack-mcpl. Zulip only — the Discord and Slack adapters that once lived here moved to those servers. - 29 tools: stream/topic history with natural dates or id cursors, fetch_around, sending to streams and DMs, editing, deleting, reactions, user lookup, attachments, and a persistent read/unread monitor. - Resources: zulip://unread/summary, zulip://monitoring/status, zulip://channel/{stream}/unread. - Every stream and DM conversation the bot can see is a channel the host can open and close.
README
以下は原文 README の抜粋です。原文を見る。
Zulip MCP Server
A Zulip server for AI agents, speaking plain MCP (Model Context Protocol) to any client and MCPL (MCP Live) to hosts that support it — live delivery of stream messages and DMs, host-managed channels, catch-up after downtime, a hot-reloadable filters plane, and a stateful tool surface for reading and writing Zulip.
Built on @animalabs/mcpl-core,
the same substrate as discord-mcpl
and slack-mcpl. Zulip only — the
Discord and Slack adapters that once lived here moved to those servers.
What you get
Plain MCP (Claude Code, Cursor, any MCP client)
- 29 tools: stream/topic history with natural dates or id cursors,
fetch_around, sending to streams and DMs, editing, deleting, reactions, user lookup, attachments, and a persistent read/unread monitor. - Resources:
zulip://unread/summary,zulip://monitoring/status,zulip://channel/{stream}/unread.
MCPL hosts (connectome-host and friends)
- Every stream and DM conversation the bot can see is a channel the host can open and close. Opening a channel subscribes the bot to the stream first (Zulip only delivers events to subscribers) — a stream the bot cannot subscribe to fails the open rather than opening onto silence — and can return backscroll atomically.
- Delivery model: messages on open channels arrive as
channels/incoming; mentions and DMs on closed channels arrive aspush/eventso they always reach the agent; ambient traffic on closed channels is dropped and counted (channel_missed). - Catch-up: a persisted per-channel watermark advances only when the host
has accepted a message (itemized
channels/incomingresults, acknowledgedpush/event), and never past a message the host was offered but did not accept — a refusal, a batch lost to a transport failure — which is replayed from history once the host answers again. On the next connection a `` block per channel delivers what arrived meanwhile (full backscroll for channels the host had open, mention ± 7 messages for the rest), paged up toZULIP_CATCHUP_LIMITand hard-capped in size. A Zulip event-queue expiry is healed the same way — open channels replayed, closed channels’ mentions pushed — not merely reported. Live events that arrive before the sweep has run are held and released in order after it, so a live delivery can never jump the watermark over the offline gap. - RFC-001 tags on every message (
chat:mention,chat:dm,chat:ambient,chat:from-bot,chat:has-image,chat:reaction, …) for the host’s wake policy. Images are inlined on live delivery, downsampled to model-max. - Reactions, opt-in per channel, carry only reaction tags so a tag-keyed wake policy ignores them; operator-owned suppression of reaction markers
インストール
This server does not publish a one-line install command.
Open the repository installation guide MCP 初心者?mcpskill.org のガイドから始めましょう →設定
{
"mcpServers": {
"zulip": {
"command": "node",
"args": ["/path/to/zulip-mcp/build/index.js"],
"env": {
"ZULIP_RC_PATH": "/path/to/zuliprc",
"ZULIP_SESSION_ID": "my-agent"
}
}
}
}