mcpField
R
rocketchat-mcp

rocketchat-mcp

本地服务
github.com/millerchou通信协作16 周前更新

关于 rocketchat-mcp

rocketchat-mcp 是连接 Rocket.Chat 工作区的 MCP 服务,支持消息收发、搜索、文件传输及频道管理。它面向需要从 MCP 客户端操作工作区的用户,并支持个人访问令牌认证。

主要功能

  1. 01发送频道消息和私信
  2. 02读取消息及未读内容
  3. 03按关键词搜索消息
  4. 04上传文件并下载附件
  5. 05列出及创建频道

适用场景

  1. 01在频道或私信中发送消息
  2. 02查找工作区中的历史对话
  3. 03上传文件或保存消息附件
  4. 04创建频道并查看频道列表

MCP 相关

该 MCP 服务通过 stdio 向 MCP 客户端提供 Rocket.Chat 消息、搜索、文件和频道操作工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"millerchou-rocketchat": {
"command": "uvx",
"args": [
"rocketchat-mcp"
],
"env": {
"ROCKETCHAT_SERVER_URL": "<ROCKETCHAT_SERVER_URL>",
"ROCKETCHAT_USER_ID": "<ROCKETCHAT_USER_ID>",
"ROCKETCHAT_AUTH_TOKEN": "<ROCKETCHAT_AUTH_TOKEN>"
}
}
}
}
启动命令uvx rocketchat-mcp
需要配置的环境变量
ROCKETCHAT_SERVER_URLRocketChat workspace URL, e.g. https://chat.example.com
ROCKETCHAT_USER_ID密钥RocketChat user ID
ROCKETCHAT_AUTH_TOKEN密钥RocketChat personal access token

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypirocketchat-mcp0.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

rocketchat-mcp

适用于 Rocket.Chat 的 MCP 服务。 它允许 MCP 客户端(Claude Desktop、Cursor、Claude Code 等)通过 stdio 在 Rocket.Chat 工作区中发送和读取 消息、发送私信、搜索历史记录、上传/下载文件以及管理频道。

积极维护的分支,源自 elieworkspace/rocketchat-mcp, 新增了 Personal Access Token 身份验证、更多工具,以及可靠性和安全性方面的改进。归属信息请参阅 NOTICE。

工具

工具描述
send_message_in_channel向频道发送消息
send_direct_message向用户发送私信
delete_message删除消息(只能删除自己的消息,除非角色拥有强制删除权限)
get_channel_messages读取频道/群组/私信的历史记录;支持 offset 分页,并接受房间 ID 或名称
search_messages在房间中搜索关键词(chat.search)
get_unread列出有未读消息的房间及其最新内容
send_file向频道或 @user 上传文件
download_attachment将消息附件下载到本地文件
list_all_rooms列出频道、群组和私信 ∗
list_users列出用户 ∗
get_user_info获取用户资料
create_channel创建频道
引用消息和附件

消息列表会包含引用中的文本和已上传文件。引用是包含该引用的消息中保存的快照;原始房间可能已无法访问。 下载引用的附件时,请使用包含该引用的消息 ID。无需先读取原始房间。

download_attachment(message_id, attachment_id) 会下载列表中显示的指定文件 ID。省略 attachment_id 时, 会保留现有行为,下载所有受支持的附件,现在也包括引用的文件。服务仍会强制执行文件访问权限。文件引用必须来自此 Rocket.Chat 服务的 上传路径;重定向到文件存储时,不会携带 Rocket.Chat 身份验证标头。 下载使用唯一的临时文件名,不会覆盖之前下载的文件。

如果可用,HTTP 错误会包含服务器返回的错误类型和消息,因此消息不存在、访问失败和网络故障不会被归为同一种诊断结果。 这些错误摘要不会包含已配置的身份验证密钥。

∗ list_all_rooms 和 list_users 会调用工作区范围的端点 (channels.list / users.list),这些端点需要管理员权限或相应的 view-* 权限。其他所有工具均可供普通聊天用户使用。

身份验证

核心工具只需普通聊天用户权限。建议使用 Personal Access Token —— 这样可以避免将令牌暴露在进程参数中:

变量描述
ROCKETCHAT_SERVER_URL工作区 URL,例如 https://chat.example.com
ROCKETCHAT_USER_ID你的 Rocket.Chat 用户 ID
ROCKETCHAT_AUTH_TOKENPersonal Access Token
ROCKETCHAT_WATCHDOG_INTERVAL(可选)孤儿监控间隔,单位为秒,默认为 60

也支持使用用户名/密码,通过 --username / --password 设置。 对于自签名证书,请使用 --no-verify-ssl。

用法

使用 uvx 运行
uvx rocketchat-mcp --server-url https://chat.example.com

若要直接从 GitHub 运行最新的未发布代码:

uvx --from git+https://github.com/millerchou/rocketchat-mcp rocketchat-mcp --server-url https://chat.example.com
客户端配置
{
  "mcpServers": {
    "rocketchat": {
      "command": "uvx",
      "args": ["rocketchat-mcp"],
      "env": {
        "ROCKETCHAT_SERVER_URL": "https://chat.example.com",
        "ROCKETCHAT_USER_ID": "your_user_id",
        "ROCKETCHAT_AUTH_TOKEN": "your_personal_access_token"
      }
    }
  }
}
本地开发
git clone https://github.com/millerchou/rocketchat-mcp
cd rocketchat-mcp
uv run rocketchat.py --server-url https://chat.example.com \
  --auth-token "$ROCKETCHAT_AUTH_TOKEN" --user-id "$ROCKETCHAT_USER_ID"

可靠性

运行离线附件和 API 错误测试:

uv run python -m unittest discover -s tests -v

测试使用合成消息和 HTTP 模拟传输;无需聊天账户。

持久 HTTP 连接池、房间端点缓存、日志轮转(1 MB), 以及在 MCP 客户端进程退出时自动退出的孤儿监控程序。

许可证

此分支中的修改基于 MIT License 发布。 此分支基于最初发布时未附带许可证的上游代码;详情请参阅 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。