Skip to main content
Glama

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 : 사용자의 자세한 프로필 정보를 가져옵니다.

Related MCP server: Tembo MCP Server

설정

  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
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pvev/mattermost-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server