Mattermost MCP Server

by pvev

Mattermost MCP 서버

Claude와 다른 MCP 클라이언트가 Mattermost 작업 공간과 상호 작용할 수 있도록 하는 Mattermost API용 MCP 서버입니다.

특징

이 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. 이 저장소를 복제하세요:

지엑스피1

  1. 종속성 설치:
npm install
  1. 서버를 구성하세요:저장소에는 플레이스홀더 값이 포함된 config.json 파일이 있습니다. 실제 설정을 위해 실제 자격 증명을 사용하여 config.local.json 파일(gitignored)을 생성하세요.
    { "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 (string[]): 메시지에서 찾을 주제 배열
  • messageLimit (숫자): 검사당 분석할 최근 메시지 수
  • notificationChannelId (문자열, 선택 사항): 알림이 전송될 채널 ID입니다. 지정하지 않으면 시스템에서 자동으로 DM 채널을 사용합니다.
  • 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 플래그로 서버를 시작합니다: GXP6
    • 이렇게 하면 서버가 시작되자마자 모니터링 프로세스가 실행됩니다.
    • 모니터링 프로세스가 완료된 후 종료하려면 --exit-after-monitoring 추가하세요: GXP7
    • 이는 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 클라이언트와 함께 사용할 수 있습니다.

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

유틸리티 스크립트

실행 모니터링-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

스크립트는 다음을 표시합니다.

  • 채널 정보(이름, 목적, 총 메시지 수)
  • 타임스탬프와 사용자 이름이 포함된 최신 메시지
  • 채널이 존재하지 않으면 사용 가능한 모든 채널이 나열됩니다.

분석-채널.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 라이선스에 따라 라이선스가 부여되었습니다.

-
security - not tested
-
license - not tested
-
quality - not tested

Claude와 다른 MCP 클라이언트가 Mattermost 작업 공간과 상호 작용할 수 있도록 하는 MCP 서버로, 채널 관리, 메시징 기능, 주제 모니터링 기능을 제공합니다.

  1. Features
    1. Topic Monitoring
    2. Channel Tools
    3. Message Tools
    4. Monitoring Tools
    5. User Tools
  2. Setup
    1. Topic Monitoring Configuration
      1. Running Monitoring Manually
    2. Tool Details
      1. Channel Tools
      2. Message Tools
      3. User Tools
    3. Usage with Claude Desktop
      1. Troubleshooting
        1. HTTP Endpoints
          1. Utility Scripts
            1. run-monitoring-http.sh
            2. view-channel-messages.js
            3. analyze-channel.js
            4. get-last-message.js
          2. License
            ID: affmyvem9i