mcpField
M
Mattermost MCP Server

Mattermost MCP Server

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

关于 Mattermost MCP Server

Mattermost MCP 服务用于让 Claude 等 MCP 客户端与 Mattermost 工作区交互。除频道、消息、线程和用户相关工具外,还提供按 cron 计划运行的话题监控功能,可在讨论相关话题时发送通知。

主要功能

  1. 01频道列表与历史消息读取
  2. 02发送消息、回复线程与添加表情反应
  3. 03查询线程回复与用户资料
  4. 04按 cron 计划监控频道中的话题
  5. 05通过 HTTP 端点手动触发监控

适用场景

  1. 01让 AI 助手读取并回复团队频道消息
  2. 02按计划监控频道中的指定话题并提醒相关人员
  3. 03通过脚本或 cron 任务定时运行监控流程

MCP 相关

该项目是 MCP 服务,将 Mattermost API 的频道、消息、用户和监控功能以 MCP 工具形式提供给 Claude 等客户端。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

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

详细介绍

标题由 Matty 修改

Mattermost API 的 MCP 服务,使 Claude 和其他 MCP 客户端能够与 Mattermost 工作区交互。

功能

此 MCP 服务提供了与 Mattermost 交互的工具,包括:

话题监控

此服务包含一个话题监控系统,可用于:

  • 监控指定频道中包含感兴趣话题的消息
  • 按可配置的计划运行(使用 cron 语法)
  • 在讨论相关话题时发送通知
  • 在指定频道中提及你,告知发现的话题
频道工具
  • mattermost_list_channels:列出工作区中的公开频道
  • mattermost_get_channel_history:获取频道中的近期消息
消息工具
  • mattermost_post_message:向频道发送新消息
  • mattermost_reply_to_thread:回复特定消息串
  • mattermost_add_reaction:为消息添加表情符号反应
  • mattermost_get_thread_replies:获取消息串中的所有回复
监控工具
  • mattermost_run_monitoring:立即触发话题监控流程
用户工具
  • mattermost_get_users:获取工作区中的用户列表
  • mattermost_get_user_profile:获取用户的详细个人资料

设置

  1. 克隆此代码库:
git clone https://github.com/yourusername/mattermost-mcp.git
cd mattermost-mcp
  1. 安装依赖项:
npm install
  1. 配置服务:

    代码库中包含一个带占位值的 config.json 文件。要使用实际配置,请创建一个包含真实凭据的 config.local.json 文件(该文件已被 gitignore 忽略):

{
  "mattermostUrl": "https://your-mattermost-instance.com/api/v4",
  "token": "your-personal-access-token",
  "teamId": "your-team-id",
  "monitoring": {
    "enabled": false,
    "schedule": "*/15 * * * *",
    "channels": ["town-square", "off-topic"],
    "topics": ["tv series", "champions league"],
    "messageLimit": 50
  }
}
这种方式可以在保留配置模板供他人使用的同时,避免将真实凭据提交到代码库。

4. 构建服务:

npm run build
  1. 运行服务:
npm start

话题监控配置

监控系统可通过以下选项进行配置:

  • enabled(布尔值):是否启用监控
  • schedule(字符串):检查新消息的 cron 表达式(例如,"*/15 * * * *" 表示每 15 分钟检查一次)
  • channels(字符串数组):要监控的频道名称
  • topics(字符串数组):要在消息中查找的话题
  • messageLimit(数字):每次检查要分析的近期消息数量
  • notificationChannelId(字符串,可选):发送通知的频道 ID。如果未提供,系统将自动使用私信频道。
  • userId(字符串,可选):用于在通知中提及你的用户 ID。如果未提供,系统将自动检测当前用户。

要启用监控,请在 config.local.json 文件中将 enabled 设为 true。

手动运行监控

你可以通过以下几种方式手动触发监控流程:

  1. 使用提供的脚本:
  • ./run-monitoring-http.sh - 通过 HTTP 触发监控,无需重启服务(推荐)
  • ./run-monitoring.sh - 启动新的服务实例并启用监控
  • ./trigger-monitoring.sh - 运行监控流程后退出(适用于 cron 作业)
  • ./view-channel-messages.js <channel-name> [count] - 查看频道中的最新消息
  • ./analyze-channel.js <channel-name> [count] - 分析频道中的消息统计信息
  • ./get-last-message.js <channel-name> - 获取频道中的最新消息
  1. 使用命令行界面(CLI):
  • 服务运行时,只需在终端中输入以下任一命令:
    • run - 运行监控流程
    • monitor - 同 run
    • check - 同 run
  • 其他可用命令:
    • help - 显示可用命令
    • exit - 关闭服务
  1. 使用 MCP 工具:
  • 通过 MCP 界面使用 mattermost_run_monitoring 工具
  • 这将立即检查所有已配置的频道,查找你感兴趣的主题
  1. 使用命令行标志:
  • 使用 --run-monitoring 标志启动服务:
npm start -- --run-monitoring
  • 这会在服务启动后立即运行监控流程
  • 添加 --exit-after-monitoring,即可在监控流程完成后退出:
npm start -- --run-monitoring --exit-after-monitoring
  • 这适用于通过 cron 作业运行监控流程

工具详情

频道工具
mattermost_list_channels
  • 列出工作区中的公开频道
  • 可选输入:
    • limit(number,默认值:100,最大值:200):要返回的频道数量上限
    • page(number,默认值:0):分页页码
  • 返回:包含频道 ID 和相关信息的频道列表
mattermost_get_channel_history
  • 获取频道中的最新消息
  • 必需输入:
    • channel_id(string):频道 ID
  • 可选输入:
    • limit(number,默认值:30):要检索的消息数量
    • page(number,默认值:0):分页页码
  • 返回:包含消息内容和元数据的消息列表
消息工具
mattermost_post_message
  • 向 Mattermost 频道发送新消息
  • 必需输入:
    • channel_id(string):要发送消息的频道 ID
    • message(string):要发送的消息文本
  • 返回:消息发送确认信息和 ID
mattermost_reply_to_thread
  • 回复特定消息线程
  • 必需输入:
    • channel_id(string):包含该线程的频道
    • post_id(string):父消息的 ID
    • message(string):回复文本
  • 返回:回复确认信息和 ID
mattermost_add_reaction
  • 对消息添加表情符号反应
  • 必需输入:
    • channel_id(string):包含该消息的频道
    • post_id(string):要添加反应的消息 ID
    • emoji_name(string):不带冒号的表情符号名称
  • 返回:反应确认信息
mattermost_get_thread_replies
  • 获取消息线程中的所有回复
  • 必需输入:
    • channel_id(string):包含该线程的频道
    • post_id(string):父消息的 ID
  • 返回:包含回复内容和元数据的回复列表
用户工具
mattermost_get_users
  • 获取工作区用户列表及其基本个人资料信息
  • 可选输入:
    • limit(number,默认值:100,最大值:200):要返回的用户数量上限
    • page(number,默认值:0):分页页码
  • 返回:包含用户基本个人资料的用户列表
mattermost_get_user_profile
  • 获取特定用户的详细个人资料信息
  • 必需输入:
    • user_id(string):用户 ID
  • 返回:用户详细个人资料信息

在 Claude Desktop 中使用

将以下内容添加到你的 claude_desktop_config.json:

{
  "mcpServers": {
    "mattermost": {
      "command": "node",
      "args": [
        "/path/to/mattermost-mcp/build/index.js"
      ]
    }
  }
}

故障排除

如果遇到权限错误,请确认:

  1. 个人访问令牌拥有所需权限
  2. 令牌已正确复制到配置中
  3. Mattermost URL 和团队 ID 正确

HTTP 端点

服务提供用于远程控制的 HTTP 端点:

  • 运行监控:http://localhost:3456/run-monitoring

    • 立即触发监控流程
    • 返回包含成功或错误信息的 JSON 响应
  • 检查状态:http://localhost:3456/status

    • 返回服务和监控状态信息
    • 可用于运行状况检查

你可以使用 curl 或任何 HTTP 客户端调用这些端点:

# Trigger monitoring
curl http://localhost:3456/run-monitoring

# Check status
curl http://localhost:3456/status

实用脚本

run-monitoring-http.sh

此脚本通过 HTTP 端点触发监控流程:

./run-monitoring-http.sh

这是手动触发监控的推荐方式,因为它:

  • 不会重启服务
  • 不会干扰计划的监控
  • 可在任何终端中可靠运行
view-channel-messages.js

此脚本可查看任意频道中的最新消息:

# View messages in a channel (channel name is required)
node view-channel-messages.js <channel-name>

# View a specific number of messages
node view-channel-messages.js <channel-name> <message-count>

# Example: View the last 10 messages in a channel
node view-channel-messages.js general 10

脚本将显示:

  • 频道信息(名称、用途、消息总数)
  • 最新消息及其时间戳和用户名
  • 如果频道不存在,则列出所有可用频道
analyze-channel.js

此脚本提供频道消息的详细统计信息:

# Analyze messages in a channel (channel name is required)
node analyze-channel.js <channel-name>

# Analyze a specific number of messages
node analyze-channel.js <channel-name> <message-count>

# Example: Analyze the last 50 messages in a channel
node analyze-channel.js general 50

脚本将显示:

  • 频道信息和元数据
  • 消息总数(包括系统消息)
  • 用户消息与系统消息的数量明细
  • 按用户统计的消息数量
  • 频道中的最新消息
get-last-message.js

此脚本仅获取频道中的最新消息:

# Get the last message from a channel (channel name is required)
node get-last-message.js <channel-name>

# Example: Get the last message from the general channel
node get-last-message.js general

脚本将显示:

  • 发送者的用户 ID 和用户名
  • 消息的时间戳

许可证

此 MCP 服务采用 MIT 许可证。

评论

支持 Markdown

第一次接触 MCP?

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

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