Skip to main content
Glama
zulip-terminology.md10.2 kB
--- title: "Zulip Terminology" description: "Understanding Zulip's unique terminology and concepts for better MCP integration" --- **Navigation:** [Home](index) | [Installation](installation) | [API Reference](api-reference) | [Configuration](configuration) | [Usage Examples](usage-examples) # Zulip Terminology Reference Understanding Zulip's terminology is crucial for effective use of the MCP server. This guide explains key concepts and their equivalents in other platforms. ## Core Concepts ### Streams vs Channels **The most important concept to understand:** | Zulip Term | Other Platforms | Description | |------------|----------------|-------------| | **Stream** | Channel (Slack/Discord), Team (Teams) | Main conversation spaces for topics | | **Topic** | Thread (Slack), Thread (Discord) | Focused discussions within streams | **Key Points:** - **Streams = Channels** - These terms are completely interchangeable - This MCP server uses "stream" to match Zulip's official terminology - If you're familiar with Slack "channels" or Discord "channels", Zulip "streams" work identically ### Message Organization ``` Organization ├── Stream #1 (e.g., "Development") │ ├── Topic: "Sprint Planning" │ ├── Topic: "Code Reviews" │ └── Topic: "Bug Reports" ├── Stream #2 (e.g., "General") │ ├── Topic: "Announcements" │ └── Topic: "Random Chat" └── Direct Messages ├── 1:1 conversations └── Group conversations ``` ## Stream Types and Properties ### Stream Privacy Levels | Type | Description | Who Can Join | Message Visibility | |------|-------------|--------------|-------------------| | **Public** | Open to all organization members | Anyone can subscribe | Messages visible to all subscribers | | **Private** | Invitation-only | Only invited members | Messages only visible to subscribers | | **Web Public** | Publicly accessible | Anyone on internet | Messages visible to anyone with link | | **Announcement-only** | Read-only for most users | Admins control posting | Limited posting permissions | ### Stream Settings - **invite_only**: Boolean indicating if stream is private - **is_web_public**: Stream is accessible without login - **is_archived**: Stream is archived (read-only) - **is_announcement_only**: Only designated users can post ## Topics: Zulip's Threading System ### What Makes Topics Special Unlike other platforms where threads are optional, **Zulip requires topics for all stream messages**: ``` Stream: #development ├── Topic: "Sprint 23 Planning" ← All messages about sprint planning ├── Topic: "API Rate Limiting Fix" ← All messages about this bug └── Topic: "Code Review Process" ← All messages about reviews ``` ### Topic Benefits 1. **Perfect Organization**: Every message has a clear context 2. **Easy Catching Up**: Read only topics relevant to you 3. **Persistent Discussions**: Topics maintain focus over time 4. **Search Efficiency**: Find conversations by topic name ### Topic Best Practices - **Descriptive Names**: "API Bug Fix" not "Bug" - **Specific Scope**: One topic per discussion thread - **Consistent Naming**: Follow team conventions - **Update When Scope Changes**: Rename topics if discussion evolves ## User Roles and Permissions ### Organizational Roles | Role | Permissions | Description | |------|-------------|-------------| | **Owner** | Full admin + ownership transfer | Organization founder/owner | | **Administrator** | All admin functions | Full management access | | **Moderator** | Stream and user moderation | Content and behavior management | | **Member** | Standard user access | Regular team member | | **Guest** | Limited access to specific streams | External collaborators | | **Bot** | Automated access via API | Integration and automation | ### Stream-Level Permissions - **Stream administrators**: Manage specific streams - **Subscribers**: Members who receive stream notifications - **Posting permissions**: Who can send messages to streams ## Message Features ### Mentions and Notifications | Syntax | Effect | When to Use | |--------|--------|-------------| | `@**Full Name**` | Standard mention with notification | Direct someone's attention | | `@_**Full Name**_` | Silent mention (no notification) | Reference without interrupting | | `@**all**` | Mentions everyone in organization | Important announcements only | | `@**stream**` | Mentions all stream subscribers | Stream-wide announcements | | `@**topic**` | Mentions all topic participants | Topic-specific updates | ### Stream and Topic References - `#**stream-name**` - Link to a stream - `#**stream-name>topic-name**` - Link to specific topic - `#**stream-name>topic-name@messageID**` - Link to specific message ### Message Types | Type | Description | Use Cases | |------|-------------|-----------| | **Stream Message** | Public message in a stream topic | Team discussions, announcements | | **Direct Message** | Private 1:1 or group message | Private conversations, sensitive topics | | **Scheduled Message** | Message sent at future time | Reminders, time-zone coordination | | **Draft** | Saved unsent message | Work-in-progress, offline composition | ## Zulip vs Other Platforms ### Coming from Slack | Slack Concept | Zulip Equivalent | Key Difference | |---------------|------------------|----------------| | Channel | Stream | Same concept, different name | | Thread | Topic | Topics are required and more prominent | | DM | Direct Message | Same functionality | | Workspace | Organization | Same concept | | App/Bot | Bot | Same integration capabilities | ### Coming from Discord | Discord Concept | Zulip Equivalent | Key Difference | |-----------------|------------------|----------------| | Server | Organization | Same concept | | Channel | Stream | Same concept, different name | | Thread | Topic | Topics are more central to Zulip | | DM | Direct Message | Same functionality | | Role | Role | Similar permission system | ### Coming from Microsoft Teams | Teams Concept | Zulip Equivalent | Key Difference | |---------------|------------------|----------------| | Team | Organization | Same concept | | Channel | Stream | Same concept, different name | | Conversation | Topic | Topics are more structured | | Chat | Direct Message | Same functionality | ## MCP Server Terminology Usage ### Why "Stream" in Tool Names? The MCP server uses "stream" terminology because: 1. **Official Zulip API** uses "stream" in all endpoints 2. **Consistency** with Zulip documentation and UI 3. **Clarity** for developers working with Zulip API 4. **Future-proofing** as Zulip evolves ### Tool Name Mapping | MCP Tool | Function | Zulip API Endpoint | |----------|----------|-------------------| | `get-subscribed-streams` | List user's stream subscriptions | `/api/v1/users/me/subscriptions` | | `get-stream-id` | Get stream ID by name | `/api/v1/get_stream_id` | | `get-stream-by-id` | Get stream details | `/api/v1/streams/{id}` | | `get-topics-in-stream` | List topics in stream | `/api/v1/users/me/{id}/topics` | ### Resource URI Schemes - `zulip://streams` - Browse available streams - `zulip://users` - Browse organization members - `zulip://formatting/guide` - Message formatting reference - `zulip://patterns/common` - Usage patterns and workflows ## Common Workflow Terminology ### Message Workflow Terms - **Send**: Create and deliver a message - **Edit**: Modify existing message content or topic - **React**: Add emoji reaction to message - **Quote**: Reference another message in your reply - **Star**: Bookmark message for later reference - **Pin**: Highlight important message in topic ### Stream Management Terms - **Subscribe**: Join a stream to receive messages - **Unsubscribe**: Leave a stream - **Mute**: Stop notifications from stream/topic - **Archive**: Make stream read-only and hide from lists - **Pin**: Keep stream at top of sidebar ### Organization Terms - **Realm**: Zulip's internal term for organization - **Domain**: Email domain for organization members - **Custom Profile Fields**: Additional user information fields - **Emoji**: Custom emoji specific to organization ## Best Practices for MCP Usage ### When Using MCP Tools 1. **Stream Discovery**: Always use `get-subscribed-streams` to see exact stream names 2. **User Search**: Use `search-users` before sending direct messages 3. **Topic Clarity**: Include descriptive topics for all stream messages 4. **Error Handling**: Tool error messages guide you to correct syntax ### Common Mistakes to Avoid | Mistake | Correct Approach | Tool to Use | |---------|------------------|-------------| | Using display names for DMs | Use actual email addresses | `search-users` | | Wrong stream name spelling | Use exact names from API | `get-subscribed-streams` | | Forgetting topic for streams | Always include topic parameter | N/A (required) | | Assuming stream exists | Verify stream access first | `get-stream-id` | ### Terminology in Error Messages The MCP server provides helpful error messages: - **"Stream not found"** → Check exact spelling with `get-subscribed-streams` - **"User not found"** → Use email addresses from `search-users` - **"Topic required"** → Include topic parameter for stream messages - **"Permission denied"** → Check bot permissions in Zulip settings --- ## Quick Reference ### Essential Zulip Concepts 1. **Streams** = Channels (conversation spaces) 2. **Topics** = Required thread names for stream messages 3. **Direct Messages** = Private conversations 4. **Mentions** = `@**Name**` syntax for notifications 5. **Stream Links** = `#**stream-name**` for references ### MCP Tool Categories - **Helper Tools**: `get-started`, `search-users` - **Stream Tools**: `get-subscribed-streams`, `get-stream-id`, `get-stream-by-id`, `get-topics-in-stream` - **Message Tools**: `send-message`, `get-messages`, `get-message`, `edit-message` - **User Tools**: `get-users`, `get-user-by-email`, `get-user` Understanding these concepts will help you use the Zulip MCP Server effectively and communicate clearly with your team about Zulip features and functionality.

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/avisekrath/zulip-mcp-server'

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