Mattermost MCP Server

by pvev

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ファイル(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 (boolean): 監視が有効かどうか
  • schedule (文字列):新しいメッセージを確認するタイミングを指定するCron式(例:15分ごとに「*/15 * * * *」)
  • channels (文字列[]): 監視するチャンネル名の配列
  • topics (string[]): メッセージ内で検索するトピックの配列
  • messageLimit (数値): チェックごとに分析する最近のメッセージの数
  • notificationChannelId (文字列、オプション): 通知を送信するチャネルID。指定されていない場合は、システムは自動的にダイレクトメッセージチャネルを使用します。
  • userId (文字列、オプション): 通知に表示されるユーザーID。指定しない場合は、システムが現在のユーザーを自動的に検出します。

監視を有効にするには、 config.local.jsonファイルでenabledtrueに設定します。

手動で監視を実行する

監視プロセスを手動でトリガーするには、いくつかの方法があります。

  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

これは、監視を手動でトリガーする場合に推奨される方法です。

  • サーバーを再起動しない
  • スケジュールされた監視を妨げない
  • どの端末からでも確実に動作します

チャネルメッセージの表示.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

スクリプトは次のように表示されます:

  • チャンネル情報とメタデータ
  • 合計メッセージ数(システムメッセージを含む)
  • ユーザーメッセージとシステムメッセージの内訳
  • ユーザー別のメッセージ数
  • チャンネル内の最新のメッセージ

最後のメッセージを取得する.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 ライセンスに基づいてライセンスされます。

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    An MCP server that enables saving and sharing Claude Desktop conversations, allowing users to store chats privately or make them public through a web interface.
    Last updated 4 months ago
    2
    6
    TypeScript
    MIT License
    • Apple
  • -
    security
    F
    license
    -
    quality
    An MCP server that enables Claude Desktop to interact with Sanity.io content, providing tools to create, edit, list documents and get schema templates.
    Last updated 2 months ago
    TypeScript
  • A
    security
    A
    license
    A
    quality
    An MCP server that enables Claude to interact with Twitter, allowing for posting tweets and searching Twitter content.
    Last updated a day ago
    2
    65
    202
    TypeScript
    MIT License
    • Apple
  • -
    security
    F
    license
    -
    quality
    An MCP server that connects to the Resource Hub, allowing centralized configuration and management of tools and resources across different MCP environments.
    Last updated 3 months ago
    2
    JavaScript
    • Apple

View all related MCP servers

Appeared in Searches

ID: affmyvem9i