使用说明

项目简介

Mattermost MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端应用,旨在将 Mattermost 平台的消息数据和搜索能力以标准化的方式提供给大型语言模型(LLM)客户端。通过此服务器,LLM 应用可以方便地访问 Mattermost 中的频道消息,并进行搜索,从而实现更丰富的上下文感知和功能扩展。

主要功能点

  • Mattermost 数据桥梁: 连接 Mattermost API,将 Mattermost 的信息转化为 MCP 资源。
  • 工具 (Tool) 功能: 提供 'mattermost' 工具,允许 LLM 客户端检索 Mattermost 频道的消息,支持按频道和消息数量进行检索,并能根据关键词进行搜索。
  • Prompt 模板 (Prompt) 功能: 提供 'mattermost' Prompt,允许 LLM 客户端以用户角色的形式获取 Mattermost 消息,用于构建上下文对话。
  • 多种传输协议支持: 支持 SSE (Server-Sent Events) 和 Standard I/O 两种 MCP 传输协议,满足不同客户端的需求。
  • 灵活的配置: 允许通过环境变量配置 Mattermost 服务器地址、认证 token、监控的团队和频道等信息。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/kakehashi-inc/mcp-server-mattermost.git
    cd mcp-server-mattermost
  2. 安装依赖:

    npm install
  3. 配置环境变量:

    • 复制 '.env.example' 文件并重命名为 '.env'。
    • 根据 '.env' 文件中的说明,配置以下必要的环境变量:
      • 'MCP_PORT': SSE 传输模式的端口号 (默认为 8201)。
      • 'MATTERMOST_ENDPOINT': 你的 Mattermost 服务器 URL。
      • 'MATTERMOST_TOKEN': 你的 Mattermost 认证 Token。
      • 'MATTERMOST_TEAM_ID': 要监控的 Mattermost 团队 ID。
      • 'MATTERMOST_CHANNELS': 要监控的 Mattermost 频道名称列表,用逗号分隔。
      • 你可以选择使用 'dotenvx encrypt' 命令加密 '.env' 文件以提高安全性。
  4. 构建服务器:

    npm run build

服务器配置

为了让 MCP 客户端连接到 Mattermost MCP 服务器,你需要提供服务器的启动配置信息。以下是两种传输模式的配置示例:

SSE 传输模式 (默认)

{
  "serverName": "mattermost-mcp-server",
  "command": "npm start",
  "args": []
}

Stdio 传输模式

{
  "serverName": "mattermost-mcp-server",
  "command": "npm start",
  "args": ["--", "--stdio"]
}
  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 启动 MCP 服务器的命令,通常为 'npm start'。
  • 'args': 传递给启动命令的参数。
    • SSE 模式不需要额外参数,使用空数组 '[]'。
    • Stdio 模式需要传递 '--stdio' 参数,使用 '["--", "--stdio"]'。

基本使用方法

  1. 启动服务器:

    • SSE 模式 (默认): 运行 'npm start' 命令启动服务器。服务器将监听在配置文件中 'MCP_PORT' 指定的端口(默认为 8201)。
    • Stdio 模式: 运行 'npm start -- --stdio' 命令启动服务器。服务器将通过标准输入/输出与客户端通信。
  2. 配置 MCP 客户端:

    • 在你的 MCP 客户端应用中,配置连接到 Mattermost MCP 服务器。你需要指定服务器的传输协议(SSE 或 Stdio)、服务器地址(对于 SSE 模式)或启动命令(对于 Stdio 模式),以及上面提供的服务器配置信息。
  3. 使用 'mattermost' 工具和 Prompt:

    • 通过 MCP 客户端,你可以调用 'mattermost' 工具来检索 Mattermost 消息。工具的具体参数请参考代码仓库中的 'src/mattermost/mcp.tool.ts' 文件。
    • 你也可以使用 'mattermost' Prompt 来生成包含 Mattermost 消息的用户 Prompt,用于 LLM 的上下文输入。Prompt 的具体参数请参考 'src/mattermost/mcp.prompt.ts' 文件。

示例:使用 'mattermost' 工具获取消息

假设你想使用 'mattermost' 工具获取特定频道的消息,你需要在 MCP 客户端中构造一个调用工具的请求,例如:

{
  "jsonrpc": "2.0",
  "method": "Tool.mattermost",
  "params": {
    "channels": ["your_channel_id"],
    "limit": 20
  },
  "id": "1"
}

这个请求会指示 Mattermost MCP 服务器从 'your_channel_id' 频道获取最多 20 条最新的消息,并将结果返回给客户端。

注意: 请务必仔细阅读代码仓库中的 'README.md' 文件和代码注释,以获取更详细的配置和使用信息。

信息

分类

通信与社交