Skip to main content
Glama
prixite

Zulip MCP Server

by prixite

zulip-mcp

An MCP (Model Context Protocol) server for Zulip, enabling AI agents (Claude, etc.) to read and interact with Zulip streams, messages, and direct messages.

Features

  • Send & manage messages — stream messages, direct messages, edit, delete

  • Search messages — by stream, topic, sender, or keyword

  • Read direct messages — list all DMs or fetch a conversation with a specific user

  • Stream management — subscribe, unsubscribe, create streams, list topics

  • Reactions & flags — add/remove emoji reactions, mark messages read, update flags

  • Resources — read-only access to streams, subscriptions, users, presence, and DMs

Tools

Tool

Description

zulip_send_stream_message

Send a message to a stream/topic

zulip_send_direct_message

Send a DM to one or more users

zulip_get_direct_messages

Retrieve DMs (all or with a specific user)

zulip_update_message

Edit a message or move it to another topic

zulip_delete_message

Delete a message

zulip_get_message

Fetch a single message by ID

zulip_search_messages

Search messages by stream, topic, sender, or keyword

zulip_subscribe_to_stream

Subscribe to a stream (creates it if needed)

zulip_unsubscribe_from_stream

Unsubscribe from a stream

zulip_create_stream

Create a new stream

zulip_get_stream_topics

List topics in a stream

zulip_add_reaction

Add an emoji reaction to a message

zulip_remove_reaction

Remove an emoji reaction

zulip_update_message_flags

Bulk-update message flags

zulip_mark_messages_as_read

Mark messages as read

Resources

URI

Description

zulip://streams

All streams

zulip://me/subscriptions

Current user's subscriptions

zulip://streams/{id}/topics

Topics in a stream

zulip://streams/{id}/messages/{topic}

Messages in a stream topic

zulip://users

All users

zulip://me/profile

Authenticated user's profile

zulip://me/direct-messages

Recent direct messages

zulip://me/direct-messages/{email}

DM conversation with a specific user

zulip://users/{id}

Specific user's profile

zulip://users/{id}/presence

User presence/status

Setup

1. Get Zulip API credentials

  1. Log in to your Zulip organization

  2. Go to Settings → Your account → API key

  3. Copy your email and API key

2. Configure environment

cp .env.example .env

Edit .env:

ZULIP_USERNAME=yourbot@your-org.zulipchat.com
ZULIP_API_KEY=your_api_key_here
ZULIP_REALM=https://your-org.zulipchat.com

3. Build

npm install
npm run build

4. Configure Claude Desktop (or other MCP client)

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "zulip": {
      "command": "node",
      "args": ["/path/to/zulip-mcp/dist/index.js"],
      "env": {
        "ZULIP_USERNAME": "yourbot@your-org.zulipchat.com",
        "ZULIP_API_KEY": "your_api_key_here",
        "ZULIP_REALM": "https://your-org.zulipchat.com"
      }
    }
  }
}

Or if installed globally via npm:

{
  "mcpServers": {
    "zulip": {
      "command": "zulip-mcp",
      "env": {
        "ZULIP_USERNAME": "yourbot@your-org.zulipchat.com",
        "ZULIP_API_KEY": "your_api_key_here",
        "ZULIP_REALM": "https://your-org.zulipchat.com"
      }
    }
  }
}

Environment Variables

Variable

Required

Default

Description

ZULIP_USERNAME

Yes

Bot/user email address

ZULIP_API_KEY

Yes

Zulip API key

ZULIP_REALM

Yes

Zulip server URL (e.g. https://your-org.zulipchat.com)

ZULIP_REQUEST_TIMEOUT_MS

No

20000

HTTP request timeout in milliseconds

ZULIP_MAX_RETRIES

No

3

Max retries on transient errors

Development

npm run dev   # run with tsx (no build step)
npm run build # compile TypeScript to dist/

License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/prixite/zulip-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server