SuperAPI AI 工具集

mattermost-mcp

Mattermost MCP 服务器是一个基于 Mattermost API 的 MCP 服务端,让 Claude 及其他 MCP 客户端能够与 Mattermost 工作区交互。它支持列出频道、读取和发布消息、管理话题串与表情回应,并可按计划监控指定频道中的话题。该服务器支持通过 npx、全局安装或克隆构建三种方式运行,配置优先级为 CLI 参数、环境变量、config.local.json、config.json。除使用 MATTERMOST_TOKEN 的静态模式外,还支持浏览器登录模式:无需令牌,首次调用工具时打开 Chromium 窗口完成登录(支持密码、SSO、MFA),并自动下载 Chromium 与 ffmpeg。会话与浏览器配置存储在 ~/.config/mattermost-mcp/ 下。注意:不支持 Windows,且需妥善保护会话目录。

访问官网

工具介绍

用途

Mattermost MCP 服务器为 Mattermost API 提供 MCP 接口,使 Claude 和其他 MCP 客户端能够与 Mattermost 工作区进行交互。

主要能力

  • 列出频道(支持分页、是否包含私有频道和私信)
  • 读取频道历史消息(支持按数量、页码、日期范围、游标分页)
  • 读取话题串回复(包含根帖)
  • 发布、编辑消息
  • 管理话题串与表情回应
  • 下载帖子附件(可指定保存路径,图片可内联返回)
  • 话题监控:按 cron 计划监控指定频道中是否出现关注的话题,并在相关话题被讨论时发送通知

使用方式

支持三种运行方式:

  1. 使用 npx(推荐,无需安装)
  2. 全局安装
  3. 克隆并构建

配置优先级从高到低为:CLI 参数(--url、--token、--team-id)、环境变量(MATTERMOST_URL、MATTERMOST_TOKEN、MATTERMOST_TEAM_ID)、config.local.json(本地覆盖,gitignored)、config.json(默认配置)。

浏览器登录(无需令牌)

MATTERMOST_TOKEN 为可选。未设置令牌时,服务器通过可见的 Chromium 窗口登录 Mattermost,并保存会话令牌。设置令牌后则使用静态模式:不打开浏览器窗口、不下载 Chromium、不创建 ~/.config/mattermost-mcp。

仅配置 MATTERMOST_URL 和 MATTERMOST_TEAM_ID(不设令牌)即可使用浏览器登录。调用任意 Mattermost 工具时,服务器打开 Chromium 登录页,用户按常规方式登录(密码、SSO、MFA),限时 5 分钟。会话有效后窗口自动关闭,工具调用返回结果。等待期间每 10 秒发送进度通知。窗口仅在工具调用时打开,不会在服务器启动或后台监控时打开。

Chromium 自动下载:首次登录时,服务器为 Playwright 1.63.0 下载 Chromium 和 ffmpeg(macOS arm64 上约 183 MiB)到 ~/.config/mattermost-mcp/browsers。首次调用耗时较长:下载限时 10 分钟,登录的 5 分钟在下载完成后开始。代理或镜像环境可设置 HTTPS_PROXY、HTTP_PROXY、NO_PROXY、PLAYWRIGHT_DOWNLOAD_HOST 或 PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT。不使用共享 Playwright 缓存。下载失败时错误信息包含原因和手动命令。Linux 缺少 Chromium 系统库时需一次性执行 install-deps 命令。

存储位置

所有内容位于 ~/.config/mattermost-mcp/(权限 0700):

  • browsers/:登录窗口的 Chromium 构建
  • profile/:包含 Mattermost 会话的 Chromium 配置文件(与令牌同等敏感,cookie 未加密,应排除在 dotfiles 同步和备份之外)
  • token:会话令牌(权限 0600),绑定服务器地址
  • login.lock 和 login.lock.break:短期锁文件,允许多个服务器进程共享一个登录窗口
  • tmp/:Chromium 下载的临时文件,安装后删除

若 ~/.config 或主目录属于其他用户,或对组/其他用户可写且无 sticky 位,服务器拒绝使用该目录。

登录窗口安全

Chromium 窗口启用沙箱,因为会渲染其他用户编写的 Mattermost 内容。仅在系统不支持沙箱时设置 MATTERMOST_MCP_DISABLE_CHROMIUM_SANDBOX=1,此时每次打开窗口都会记录警告。MATTERMOST_URL 应使用 https:// 地址;使用 http:// 且主机不是 localhost、127.0.0.1 或 [::1] 时,启动会记录警告。

重置会话

仅移除会话(下次工具调用重新打开登录窗口)或移除全部(包括 Chromium,下次登录重新下载)。两条命令在登录窗口打开时执行均安全。

多客户端

同一机器上的 Claude Code、opencode 等客户端共享一个令牌文件和一个登录窗口。多个客户端同时需要登录时只打开一个窗口,所有等待的调用在登录后继续。

后台话题监控

后台监控从不打开窗口。服务器启动时若无已保存会话:

  • 若未设置 monitoring.userId 或 monitoring.notificationChannelId,监控无法查找它们,计划不会启动。需调用 mattermost_run_monitoring:它会按需登录、启动计划并运行一次监控。通过其他工具登录不会启动计划,之后需调用 mattermost_run_monitoring 或重启服务器。
  • 若两者均已设置,计划立即启动,首次登录前的运行会以 [AUTHENTICATION_REQUIRED] 跳过。

客户端超时

首次工具调用可能耗时数分钟(Chromium 下载加最多 5 分钟登录)。每 10 秒的进度通知可让传递 progressToken 并据此重置超时的客户端保持调用。opencode 需将 mcp.mattermost.timeout 和 experimental.mcp_timeout 设为 360000(6 分钟)。不传递 progressToken 的客户端可能在下载期间取消首次调用,下载会停止并在下次调用时重新开始。

其他限制

  • 每个操作系统用户对应一个 Mattermost 服务器。其他服务器的令牌文件会被忽略。地址比较前会规范化,/api/v4、末尾斜杠和主机大小写不影响。
  • 不同 MATTERMOST_URL 的客户端同时登录时,等待的调用会得到 LOGIN_NOT_COMPLETED,第二个服务器的窗口仅在再次调用工具时打开。
  • 不要为服务器启用 DEBUG=pw:*,Playwright 调试输出会打印 cookie。
  • 不支持 Windows。

工具参数摘要

  • 列出频道:limit(默认 100)、page(默认 0)、include_private(默认 false)
  • 获取频道历史:channel_id(必填)、limit(未指定或 0 返回全部)、page(默认 0,仅当 limit>0 时使用)、since_date、before_date、before_post_id、after_post_id
  • 带附件的帖子在 mattermost_get_channel_history 和 mattermost_get_thread_replies(含 root_post)中包含 file_ids 和 files(id、name、extension、size、mime_type,图片还有 width/height)
  • 编辑帖子:mattermost_edit_post 接受 post_id 和 message。仅帖子作者或有权限者可编辑,403 返回提示,其他错误返回服务器原文。两个工具在发送请求前拒绝非 26 字符的 post_id。
  • 下载文件:file_id(必填)、output_path(未设置则保存到系统临时目录 mattermost-mcp/{file_id}_{name};目录或末尾带 / 或 \ 则保存到其中;其他路径视为文件路径;~ 展开为主目录;已存在文件会被覆盖)、inline(默认 false,仅 image/png、image/jpeg、image/gif、image/webp 且不超过 1 MB 内联返回)

获取凭据

  • Mattermost API URL 通常为 https://your-mattermost-domain.com/api/v4
  • 个人访问令牌:账户设置 > 安全 > 个人访问令牌 > 创建令牌
  • 团队 ID:在 Mattermost 中打开团队,使用浏览器开发者工具(F12)查看 Network 中 teams/ 相关 API 调用,或使用 Mattermost API

故障排除

  • 缺少配置错误:确保通过 CLI 参数、环境变量或配置文件提供 Mattermost URL 和团队 ID。令牌非必需。
  • 权限错误:确认 Mattermost 用户(令牌所有者或浏览器登录用户)具有必要权限、令牌正确、URL 和团队 ID 正确。浏览器登录切换用户需重置会话后再次调用工具。
  • 浏览器登录问题:错误以方括号代码开头。
    • [BROWSER_INSTALLATION_FAILED]:自动下载 Chromium 失败,错误含原因。可手动安装 Chromium 作为后备。若错误提到活动的 __dirlock,等待其他安装完成或按错误文本删除。
    • [BROWSER_SYSTEM_DEPENDENCIES_MISSING](Linux):需一次性安装系统库。
    • [BROWSER_SANDBOX_UNAVAILABLE](Linux):尽可能启用沙箱,否则设置 MATTERMOST_MCP_DISABLE_CHROMIUM_SANDBOX=1。
    • [LOGIN_WINDOW_CLOSED]、[LOGIN_TIMEOUT]、[LOGIN_NOT_COMPLETED]:窗口关闭、登录超时或另一客户端登录未完成,再次调用工具。
    • [LOGIN_PROFILE_BUSY]:另一 Chromium 窗口占用登录配置文件,关闭后重试。
    • [AUTHENTICATION_REQUIRED](监控日志):后台监控不打开登录窗口,调用任意 Mattermost 工具登录。
    • [STATE_DIRECTORY_UNSAFE]:状态目录或 ~/.config 或主目录权限不安全,按错误文本修复。

适用场景

适用于需要在 Claude 等 MCP 客户端中操作 Mattermost 工作区的用户,包括读取频道消息、发布内容、管理话题串、下载附件,以及按计划监控特定话题并接收通知。

限制

  • 不支持 Windows。
  • 浏览器登录模式首次调用耗时较长,且依赖 Chromium 下载。
  • 会话目录包含未加密 cookie,需注意保护。
  • 每个操作系统用户仅对应一个 Mattermost 服务器。
  • 部分客户端可能因超时取消首次调用。