关于 Mattermost MCP Server
Mattermost MCP 服务用于让 Claude 等 MCP 客户端与 Mattermost 工作区交互。除频道、消息、线程和用户相关工具外,还提供按 cron 计划运行的话题监控功能,可在讨论相关话题时发送通知。
主要功能
- 01频道列表与历史消息读取
- 02发送消息、回复线程与添加表情反应
- 03查询线程回复与用户资料
- 04按 cron 计划监控频道中的话题
- 05通过 HTTP 端点手动触发监控
适用场景
- 01让 AI 助手读取并回复团队频道消息
- 02按计划监控频道中的指定话题并提醒相关人员
- 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:获取用户的详细个人资料
设置
- 克隆此代码库:
git clone https://github.com/yourusername/mattermost-mcp.git
cd mattermost-mcp
- 安装依赖项:
npm install
-
配置服务:
代码库中包含一个带占位值的
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
- 运行服务:
npm start
话题监控配置
监控系统可通过以下选项进行配置:
enabled(布尔值):是否启用监控schedule(字符串):检查新消息的 cron 表达式(例如,"*/15 * * * *" 表示每 15 分钟检查一次)channels(字符串数组):要监控的频道名称topics(字符串数组):要在消息中查找的话题messageLimit(数字):每次检查要分析的近期消息数量notificationChannelId(字符串,可选):发送通知的频道 ID。如果未提供,系统将自动使用私信频道。userId(字符串,可选):用于在通知中提及你的用户 ID。如果未提供,系统将自动检测当前用户。
要启用监控,请在 config.local.json 文件中将 enabled 设为 true。
手动运行监控
你可以通过以下几种方式手动触发监控流程:
- 使用提供的脚本:
./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>- 获取频道中的最新消息
- 使用命令行界面(CLI):
- 服务运行时,只需在终端中输入以下任一命令:
run- 运行监控流程monitor- 同runcheck- 同run
- 其他可用命令:
help- 显示可用命令exit- 关闭服务
- 使用 MCP 工具:
- 通过 MCP 界面使用
mattermost_run_monitoring工具 - 这将立即检查所有已配置的频道,查找你感兴趣的主题
- 使用命令行标志:
- 使用
--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):要发送消息的频道 IDmessage(string):要发送的消息文本
- 返回:消息发送确认信息和 ID
mattermost_reply_to_thread
- 回复特定消息线程
- 必需输入:
channel_id(string):包含该线程的频道post_id(string):父消息的 IDmessage(string):回复文本
- 返回:回复确认信息和 ID
mattermost_add_reaction
- 对消息添加表情符号反应
- 必需输入:
channel_id(string):包含该消息的频道post_id(string):要添加反应的消息 IDemoji_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"
]
}
}
}
故障排除
如果遇到权限错误,请确认:
- 个人访问令牌拥有所需权限
- 令牌已正确复制到配置中
- 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 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。