Mattermost MCP Server

Mattermost MCP Server

一个 MCP 服务器,使 Claude 和其他 MCP 客户端能够与 Mattermost 工作区交互,提供频道管理、消息传递功能和主题监控功能。

Category
访问服务器

README

Mattermost MCP 服务器

用于 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
      }
    }
    

    这种方法可以将您的真实凭据保留在存储库之外,同时为其他人维护模板。

  2. 构建服务器:

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> - 获取频道中的最后一条消息
  2. 使用命令行界面 (CLI):

    • 在服务器运行时,只需在终端中键入以下命令之一:
      • run - 运行监控过程
      • monitor - 与 run 相同
      • check - 与 run 相同
    • 其他可用命令:
      • help - 显示可用命令
      • exit - 关闭服务器
  3. 使用 MCP 工具:

    • 通过 MCP 界面使用 mattermost_run_monitoring 工具
    • 这将立即检查所有配置的频道中您感兴趣的主题
  4. 使用命令行标志:

    • 使用 --run-monitoring 标志启动服务器:
    npm start -- --run-monitoring
    
    • 这将在服务器启动后立即运行监控过程
    • 添加 --exit-after-monitoring 以在监控过程完成后退出:
    npm start -- --run-monitoring --exit-after-monitoring
    
    • 这对于从 cron 作业运行监控过程很有用

工具详情

频道工具

mattermost_list_channels

  • 列出工作区中的公共频道
  • 可选输入:
    • limit (数字, 默认: 100, 最大: 200): 要返回的最大频道数
    • page (数字, 默认: 0): 分页的页码
  • 返回:频道列表,包含其 ID 和信息

mattermost_get_channel_history

  • 获取频道中的最近消息
  • 必需输入:
    • channel_id (字符串): 频道的 ID
  • 可选输入:
    • limit (数字, 默认: 30): 要检索的消息数
    • page (数字, 默认: 0): 分页的页码
  • 返回:消息列表,包含其内容和元数据

消息工具

mattermost_post_message

  • 向 Mattermost 频道发布新消息
  • 必需输入:
    • channel_id (字符串): 要发布到的频道的 ID
    • message (字符串): 要发布的消息文本
  • 返回:消息发布确认和 ID

mattermost_reply_to_thread

  • 回复特定消息线程
  • 必需输入:
    • channel_id (字符串): 包含线程的频道
    • post_id (字符串): 父消息的 ID
    • message (字符串): 回复文本
  • 返回:回复确认和 ID

mattermost_add_reaction

  • 向消息添加表情符号反应
  • 必需输入:
    • channel_id (字符串): 包含消息的频道
    • post_id (字符串): 要反应的消息 ID
    • emoji_name (字符串): 不带冒号的表情符号名称
  • 返回:反应确认

mattermost_get_thread_replies

  • 获取消息线程中的所有回复
  • 必需输入:
    • channel_id (字符串): 包含线程的频道
    • post_id (字符串): 父消息的 ID
  • 返回:回复列表,包含其内容和元数据

用户工具

mattermost_get_users

  • 获取具有基本个人资料信息的工作区用户列表
  • 可选输入:
    • limit (数字, 默认: 100, 最大: 200): 要返回的最大用户数
    • page (数字, 默认: 0): 分页的页码
  • 返回:用户列表,包含其基本个人资料

mattermost_get_user_profile

  • 获取特定用户的详细个人资料信息
  • 必需输入:
    • user_id (字符串): 用户的 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 客户端使用这些端点:

# 触发监控
curl http://localhost:3456/run-monitoring

# 检查状态
curl http://localhost:3456/status

实用程序脚本

run-monitoring-http.sh

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

./run-monitoring-http.sh

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

  • 不会重启服务器
  • 不会干扰计划的监控
  • 可以从任何终端可靠地工作

view-channel-messages.js

此脚本允许您查看任何频道中的最新消息:

# 查看频道中的消息(需要频道名称)
node view-channel-messages.js <channel-name>

# 查看特定数量的消息
node view-channel-messages.js <channel-name> <message-count>

# 示例:查看频道中的最后 10 条消息
node view-channel-messages.js general 10

该脚本将显示:

  • 频道信息(名称、用途、总消息数)
  • 带有时间戳和用户名的最新消息
  • 如果频道不存在,它将列出所有可用频道

analyze-channel.js

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

# 分析频道中的消息(需要频道名称)
node analyze-channel.js <channel-name>

# 分析特定数量的消息
node analyze-channel.js <channel-name> <message-count>

# 示例:分析频道中的最后 50 条消息
node analyze-channel.js general 50

该脚本将显示:

  • 频道信息和元数据
  • 总消息数(包括系统消息)
  • 用户消息与系统消息的细分
  • 按用户统计的消息数
  • 频道中的最新消息

get-last-message.js

此脚本仅检索频道中的最新消息:

# 获取频道中的最后一条消息(需要频道名称)
node get-last-message.js <channel-name>

# 示例:获取 general 频道中的最后一条消息
node get-last-message.js general

该脚本将显示:

  • 发送者的用户 ID 和用户名
  • 消息的时间戳
  • 完整的消息内容

许可证

此 MCP 服务器在 MIT 许可证下获得许可。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选