🚀 Zulip MCP Server v1.5.0
Major release with comprehensive terminology standardization, enhanced LLM usability, and expanded tool set.
⚠️ Breaking Changes
This release standardizes terminology from "channels" to "streams" across all tools. This is a breaking change that requires updating tool references:
get-subscribed-channels→get-subscribed-streamsget-channel-id→get-stream-idget-channel-by-id→get-stream-by-idget-topics-in-channel→get-topics-in-streamchannels-directoryresource →streams-directory
Note: In Zulip, "streams" and "channels" are the same concept - this change only affects naming for consistency.
🛠️ Tools (25 Available - was 22)
New Helper Tools
search-users- 🔍 Find users by name/email before sending DMsget-started- 🚀 Test connection and get workspace overviewget-user- 🆔 Get detailed user information by ID
Message Operations
send-message, get-messages, get-message, edit-message, delete-message, upload-file, add-emoji-reaction, remove-emoji-reaction, get-message-read-receipts
Drafts & Scheduling
create-draft, get-drafts, edit-draft, create-scheduled-message, edit-scheduled-message
Stream Management (renamed from Channels)
get-subscribed-streams, get-stream-id, get-stream-by-id, get-topics-in-stream
User Operations
get-user, get-user-by-email, get-users, search-users, update-status, get-user-groups
🎯 What's New
Enhanced LLM Usability
- Helper tools for better discovery workflows
- Comprehensive error guidance and quick tips
- Clear terminology explanations throughout
- Workflow documentation for common use cases
Improved Documentation
- Complete terminology standardization with backward-compatibility explanations
- Tool selection guides ("when to use which tool")
- Enhanced README with accurate tool count and examples
- Comprehensive implementation guidance in CLAUDE.md
Code Quality
- Fixed schema naming inconsistencies
- Improved TypeScript type safety
- Better error handling and validation
- Package security vulnerability fixes
📖 Migration Guide
For Automated Scripts/Tools:
Update any tool references in your automation:
- mcp.call("get-subscribed-channels")
+ mcp.call("get-subscribed-streams")
- mcp.call("get-channel-id", {stream_name: "general"})
+ mcp.call("get-stream-id", {stream_name: "general"})For MCP Resources:
- zulip://channels
+ zulip://streamsNo Functional Changes
- All parameters remain the same
- All functionality is identical
- Only tool/resource names have changed
🎯 LLM Client Configurations
Claude Desktop
{
"mcpServers": {
"zulip": {
"command": "node",
"args": ["/path/to/zulip-mcp-server/dist/server.js"],
"env": {
"ZULIP_URL": "https://your-org.zulipchat.com",
"ZULIP_EMAIL": "bot@yourcompany.com",
"ZULIP_API_KEY": "your-api-key"
}
}
}
}Cursor IDE & Raycast
See README.md for complete configuration examples.
🚀 Quick Start
npm install
cp .env.example .env # Add your Zulip credentials
npm run build
npm start📝 Full Changes
See CHANGELOG.md for complete details.
thearlabs with claude code