Mattermost MCP Server について
Claude などの MCP クライアントから Mattermost ワークスペースを操作するための MCP サーバーです。チャンネル、メッセージ、スレッド、ユーザー向けのツールに加え、cron で実行されるトピック監視機能を備え、指定したトピックが話題になると通知を送ります。
主な機能
- 01チャンネル一覧と履歴の取得
- 02メッセージ投稿、スレッド返信、リアクション追加
- 03スレッド返信とユーザープロフィールの取得
- 04cron によるスケジュール型のトピック監視
- 05HTTP エンドポイントによる手動監視の実行
活用シーン
- 01AI アシスタントによるチーム内チャンネルの閲覧と返信
- 02指定トピックを監視し、関係者へ通知する
- 03cron やスクリプトを使った定期的な監視の実行
MCP 対応
本プロジェクトは MCP サーバーであり、Mattermost のチャンネル、メッセージ、ユーザー、監視機能を MCP ツールとして Claude などのクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Matty によるタイトル変更
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:ユーザーの詳細なプロフィール情報を取得します
セットアップ
- このリポジトリをクローンします。
git clone https://github.com/yourusername/mattermost-mcp.git
cd mattermost-mcp
- 依存関係をインストールします。
npm install
-
サーバーを設定します。
リポジトリには、プレースホルダー値が設定された
config.jsonファイルが含まれています。実際の設定を行うには、実際の認証情報を記述したconfig.local.jsonファイル(gitignore 対象)を作成します。
{
"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
}
}
この方法なら、他のユーザー向けのテンプレートを維持しながら、実際の認証情報をリポジトリに含めずに済みます。
4. サーバーをビルドします。
npm run build
- サーバーを実行します。
npm start
トピックモニタリングの設定
モニタリングシステムは、次のオプションで設定できます。
enabled(boolean):モニタリングを有効にするかどうかschedule(string):新しいメッセージを確認するタイミングを指定する cron 式(例:15 分ごとの場合は "*/15 * * * *")channels(string[]):モニタリングするチャンネル名の配列topics(string[]):メッセージ内で検索するトピックの配列messageLimit(number):各確認時に分析する最近のメッセージ数notificationChannelId(string、任意):通知の送信先となるチャンネル ID。指定しない場合、システムはダイレクトメッセージ用チャンネルを自動的に使用します。userId(string、任意):通知でメンションするあなたのユーザー ID。指定しない場合、システムは現在のユーザーを自動的に検出します。
モニタリングを有効にするには、config.local.json ファイルで enabled を true に設定します。
モニタリングを手動で実行する
モニタリングプロセスは、いくつかの方法で手動で実行できます。
- 付属のスクリプトを使用する:
./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>- チャンネルの最後のメッセージを取得します
- コマンドラインインターフェイス(CLI)を使用する:
- サーバーの実行中に、ターミナルで次のコマンドのいずれかを入力します。
run- モニタリングプロセスを実行しますmonitor-runと同じですcheck-runと同じです
- その他の利用可能なコマンド:
help- 利用可能なコマンドを表示しますexit- サーバーをシャットダウンします
- MCP ツールを使用する:
- MCP インターフェイス経由で
mattermost_run_monitoringツールを使用します - これにより、関心のあるトピックについて、設定済みのすべてのチャンネルを直ちに確認します
- コマンドラインフラグを使用する:
--run-monitoringフラグを付けてサーバーを起動します。
npm start -- --run-monitoring
- これにより、サーバーの起動直後にモニタリングプロセスが実行されます
- モニタリングプロセスの完了後に終了するには、
--exit-after-monitoringを追加します。
npm start -- --run-monitoring --exit-after-monitoring
- 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(文字列):投稿先のチャンネルの IDmessage(文字列):投稿するメッセージ本文
- 戻り値:メッセージの投稿確認と ID
mattermost_reply_to_thread
- 特定のメッセージスレッドに返信します
- 必須の入力:
channel_id(文字列):スレッドを含むチャンネルpost_id(文字列):親メッセージの IDmessage(文字列):返信本文
- 戻り値:返信の確認と ID
mattermost_add_reaction
- メッセージに絵文字リアクションを追加します
- 必須の入力:
channel_id(文字列):メッセージを含むチャンネルpost_id(文字列):リアクションするメッセージの IDemoji_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"
]
}
}
}
トラブルシューティング
権限エラーが発生した場合は、次の点を確認してください。
- 個人アクセストークンに必要な権限があること
- トークンが設定に正しくコピーされていること
- 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
ユーティリティスクリプト
run-monitoring-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
スクリプトには次の内容が表示されます。
- チャンネル情報(名前、目的、メッセージの総数)
- タイムスタンプとユーザー名を含む最新メッセージ
- チャンネルが存在しない場合は、利用可能なすべてのチャンネル
analyze-channel.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 ライセンスのもとでライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。