Mattermost (플러그인)

상태: 플러그인을 통해 지원됩니다(bot token + WebSocket 이벤트). 채널, 그룹, DM이 지원됩니다. Mattermost는 자체 호스팅 가능한 팀 메시징 플랫폼입니다. 제품 세부정보 및 다운로드는 공식 사이트 mattermost.com을 참조하세요.

플러그인 필요

Mattermost는 플러그인으로 제공되며 코어 설치에 번들되지 않습니다.

CLI를 통해 설치 (npm 레지스트리):

openclaw plugins install @openclaw/mattermost

로컬 체크아웃 (git 저장소에서 실행 시):

openclaw plugins install ./extensions/mattermost

구성/온보딩 중에 Mattermost를 선택하고 git 체크아웃이 감지되면, OpenClaw가 자동으로 로컬 설치 경로를 제공합니다.

자세한 내용: Plugins

빠른 설정

  1. Mattermost 플러그인을 설치합니다.
  2. Mattermost 봇 계정을 생성하고 bot token을 복사합니다.
  3. Mattermost base URL을 복사합니다(예: https://chat.example.com).
  4. OpenClaw를 구성하고 Gateway를 시작합니다.

최소 설정:

{
  channels: {
    mattermost: {
      enabled: true,
      botToken: "mm-token",
      baseUrl: "https://chat.example.com",
      dmPolicy: "pairing"
    }
  }
}

환경 변수 (기본 계정)

환경 변수를 선호하는 경우 Gateway 호스트에서 설정합니다:

  • MATTERMOST_BOT_TOKEN=...
  • MATTERMOST_URL=https://chat.example.com

환경 변수는 기본 계정(default)에만 적용됩니다. 다른 계정은 설정 값을 사용해야 합니다.

채팅 모드

Mattermost는 DM에 자동으로 응답합니다. 채널 동작은 chatmode로 제어됩니다:

  • oncall (기본값): 채널에서 @멘션될 때만 응답합니다.
  • onmessage: 모든 채널 메시지에 응답합니다.
  • onchar: 메시지가 트리거 접두사로 시작할 때 응답합니다.

설정 예시:

{
  channels: {
    mattermost: {
      chatmode: "onchar",
      oncharPrefixes: [">", "!"]
    }
  }
}

참고사항:

  • onchar는 여전히 명시적 @멘션에 응답합니다.
  • channels.mattermost.requireMention은 레거시 설정에서 존중되지만 chatmode가 선호됩니다.

접근 제어 (DM)

  • 기본값: channels.mattermost.dmPolicy = "pairing" (알 수 없는 발신자는 페어링 코드를 받음).
  • 승인 방법:
    • openclaw pairing list mattermost
    • openclaw pairing approve mattermost <CODE>
  • 공개 DM: channels.mattermost.dmPolicy="open"channels.mattermost.allowFrom=["*"].

채널 (그룹)

  • 기본값: channels.mattermost.groupPolicy = "allowlist" (멘션 게이팅).
  • channels.mattermost.groupAllowFrom으로 발신자를 허용목록에 추가합니다(사용자 ID 또는 @username).
  • 오픈 채널: channels.mattermost.groupPolicy="open" (멘션 게이팅).

아웃바운드 전달용 타겟

openclaw message send 또는 cron/webhook과 함께 이러한 타겟 형식을 사용합니다:

  • channel:<id> (채널용)
  • user:<id> (DM용)
  • @username (DM용, Mattermost API를 통해 해석됨)

단순 ID는 채널로 처리됩니다.

다중 계정

Mattermost는 channels.mattermost.accounts 아래에서 다중 계정을 지원합니다:

{
  channels: {
    mattermost: {
      accounts: {
        default: { name: "Primary", botToken: "mm-token", baseUrl: "https://chat.example.com" },
        alerts: { name: "Alerts", botToken: "mm-token-2", baseUrl: "https://alerts.example.com" }
      }
    }
  }
}

문제 해결

  • 채널에서 응답 없음: 봇이 채널에 있고 멘션되었는지(oncall), 트리거 접두사를 사용했는지(onchar), 또는 chatmode: "onmessage"로 설정했는지 확인합니다.
  • 인증 오류: bot token, base URL, 계정 활성화 여부를 확인합니다.
  • 다중 계정 문제: 환경 변수는 default 계정에만 적용됩니다.