这是一个模型上下文协议(MCP)服务器,它公开了Zulip REST API的功能作为工具供大型语言模型(LLMs)使用。此服务器允许AI助手通过编程方式与您的Zulip工作区进行交互。
search-users - 在发送私信前按名称或电子邮件查找用户get-started - 测试连接并获取工作区概览send-message - 发送到流或直接消息get-messages - 使用高级过滤和搜索检索消息get-message - 获取特定消息的详细信息upload-file - 分享文件和图片edit-message - 修改内容或移动主题delete-message - 删除消息(需要管理员权限)get-message-read-receipts - 查看谁阅读了消息add-emoji-reaction - 使用Unicode或自定义表情符号反应remove-emoji-reaction - 从消息中移除表情符号反应create-scheduled-message - 安排未来消息edit-scheduled-message - 修改已安排的消息create-draft - 创建新的消息草稿get-drafts - 检索保存的草稿edit-draft - 更新草稿内容get-subscribed-streams - 列出用户的流订阅get-stream-id - 根据名称获取流IDget-stream-by-id - 获取详细的流信息get-topics-in-stream - 浏览最近的主题get-users - 列出组织成员get-user-by-email - 按电子邮件查找用户get-user - 根据ID获取详细的用户信息update-status - 设置状态消息和可用性get-user-groups - 列出可用的用户组在Zulip中,“流”和“频道”指的是同一个概念:
此MCP服务器使用“流”以匹配Zulip的官方文档和API。
git clone <repository-url>
cd zulip-mcp-server
npm install
cp .env.example .env
# 编辑.env文件,填入您的Zulip凭证
npm run build
npm start
创建一个包含您的Zulip凭证的.env文件:
ZULIP_URL=https://your-organization.zulipchat.com
ZULIP_EMAIL=your-bot-email@yourcompany.com
ZULIP_API_KEY=your-api-key-here
NODE_ENV=production
对于机器人访问(推荐):
对于个人访问:
要将此MCP服务器与Claude Desktop一起使用,请在您的Claude Desktop配置文件中添加以下配置:
添加到您的Claude Desktop配置:
{
"mcpServers": {
"zulip": {
"command": "node",
"args": ["/path/to/zulip-mcp-server/dist/server.js"],
"env": {
"ZULIP_URL": "https://your-organization.zulipchat.com",
"ZULIP_EMAIL": "your-bot-email@yourcompany.com",
"ZULIP_API_KEY": "your-api-key-here"
}
}
}
}
如果您更喜欢使用.env文件,请确保它位于项目目录中,并使用:
{
"mcpServers": {
"zulip": {
"command": "node",
"args": ["/path/to/zulip-mcp-server/dist/server.js"],
"cwd": "/path/to/zulip-mcp-server"
}
}
}
Claude Desktop配置位置:
~/Library/Application Support/Claude/claude_desktop_config.json要将此MCP服务器与Cursor IDE一起使用,请在您的Cursor MCP设置中添加以下内容:
添加到Cursor的MCP设置文件(.cursor-mcp/config.json在您的工作区或全局设置中):
{
"mcpServers": {
"zulip": {
"command": "node",
"args": ["/path/to/zulip-mcp-server/dist/server.js"],
"env": {
以下省略...
Cursor MCP配置位置:
.cursor-mcp/config.json要将此MCP服务器与Raycast一起使用,请在MCP扩展设置中进行配置:
添加到Raycast MCP扩展配置:
{
"servers": {
"zulip": {
"name": "Zulip集成",
"description": "发送消息并与Zulip工作区互动",
"command": "node",
"args": ["/path/to/zulip-mcp-server/dist/server.js"],
"env": {
"ZULIP_URL": "https://your-organization.zulipchat.com",
"ZULIP_EMAIL": "your-bot-email@yourcompany.com",
"ZULIP_API_KEY": "your-api-key-here"
},
"icon": "💬",
"categories": ["communication", "productivity"]
}
}
}
Raycast设置步骤:
Raycast用法:
⌘ + Space打开Raycast此服务器兼容任何符合MCP标准的客户端。以下是经过验证的集成:
| 平台 | 配置类型 | 状态 | 使用 |
|---|---|---|---|
| Claude Desktop | JSON配置 | ✅ 已验证 | 与Zulip集成的AI对话 |
| Cursor IDE | 工作区/全局配置 | ✅ 已验证 | 带有Zulip通知的代码编辑器 |
| Raycast | 扩展配置 | ✅ 已验证 | 快捷命令和自动化 |
| 其他MCP客户端 | 标准MCP协议 | 🔄 兼容 | 任何符合MCP标准的应用程序 |
通用MCP命令:
node /path/to/zulip-mcp-server/dist/server.js
npm run dev # 开发模式,支持热重载
npm run build # 构建生产版本
npm test # 运行测试
npm run lint # TypeScript代码检查
npm run typecheck # 类型检查
src/
├── server.ts # 主MCP服务器
├── zulip/
│ └── client.ts # Zulip API客户端
└── types.ts # TypeScript定义
使用MCP Inspector测试服务器:
npx @modelcontextprotocol/inspector npm start
// 发送到流
await callTool("send-message", {
type: "stream",
to: "general",
topic: "每日站会",
content: "早上好团队!👋\n\n**今日目标:**\n- 审查PR #123\n- 部署功能X"
});
// 发送直接消息
await callTool("send-message", {
type: "direct",
to: "user@example.com",
content: "嘿!您方便时能否审查最新的更改?"
});
// 从流中获取最近的消息
await callTool("get-messages", {
narrow: [["stream", "general"], ["topic", "公告"]],
num_before: 50
});
// 搜索消息
await callTool("get-messages", {
narrow: [["search", "部署"], ["sender", "admin@example.com"]]
});
// 列出已订阅的流
await callTool("get-subscribed-streams", {
include_subscribers: true
});
// 获取流中的主题
await callTool("get-topics-in-stream", {
stream_id: 123
});
服务器包括一个全面的格式指南资源。Zulip支持:
@**全名**(通知),@_**名字**_(静默)#**流名称**$$数学$$的LaTeX表达式||隐藏内容||服务器提供全面的错误处理:
所有错误都包含有助于调试的帮助信息。
对于问题和疑问: