Mattermost MCP Host について
Mattermost に統合された MCP サーバー接続クライアントで、LangGraph エージェントを活用して、Mattermost 内でインテリジェントなツール実行と会話を実現します。チームコミュニケーション プラットフォーム内で MCP ツールを活用したい組織向けです。
主な機能
- 01LangGraph エージェント統合
- 02動的ツール発見と読み込み
- 03スレッド対応の会話管理
- 04複数の MCP サーバー接続
- 05直接コマンドインターフェース
活用シーン
- 01サポートチャネルで GitHub の課題を検索して新しい課題を作成
- 02チャネル内でウェブ検索を実行して結果を投稿
- 03自然言語を通じて MCP ツールと対話
MCP 対応
複数の MCP サーバーに接続するクライアントとして機能し、ツールを自動的に検出し、LangChain 構造化ツールとしてエージェント用に変換します。
詳細
Mattermost MCP Host
Model Context Protocol (MCP) サーバーに接続する Mattermost インテグレーションです。LangGraph ベースの AI エージェントを活用して、Mattermost 内でユーザーと対話し、ツールを直接実行するためのインテリジェントなインターフェースを提供します。
デモ
1. サポートチャネルの Github エージェント - 既存の Issue と PR を検索し、見つからない場合は新しい Issue を作成します

2. インターネットを検索して Mattermost-MCP-server を使用してチャネルに投稿します

YouTube の完全なデモについては下記をご覧ください
機能
- 🤖 Langgraph エージェント統合: LangGraph エージェントを使用してユーザーリクエストを理解し、レスポンスを調整します。
- 🔌 MCP サーバー統合:
mcp-servers.jsonで定義された複数の MCP サーバーに接続します。 - 🛠️ 動的ツール読み込み: 接続された MCP サーバーからツールを自動的に検出し、AI エージェントで利用可能にします。MCP ツールを langchain 構造化ツールに変換します。
- 💬 スレッド対応会話: Mattermost スレッド内の会話コンテキストを維持して、一貫性のある対話を実現します。
- 🔄 インテリジェントなツール使用: AI エージェントが利用可能なツール(複数呼び出しのチェーンを含む)を使用して、ユーザーリクエストを満たすかどうかを判断できます。
- 🔍 MCP 機能検出: ダイレクトコマンドを通じて、利用可能なサーバー、ツール、リソース、プロンプトをリストアップできます。
- #️⃣ ダイレクトコマンドインターフェース: コマンドプレフィックス(デフォルト:
#)を使用して MCP サーバーと直接対話します。
概要
インテグレーションの動作は以下の通りです。
- Mattermost 接続(
mattermost_client.py): API と WebSocket を通じて Mattermost サーバーに接続し、指定されたチャネルのメッセージをリッスンします。 - MCP 接続(
mcp_client.py):src/mattermost_mcp_host/mcp-servers.jsonで定義された各 MCP サーバーへの接続(主にstdio)を確立します。各サーバーで利用可能なツールを検出します。 - エージェント初期化(
agent/llm_agent.py): 選択した LLM プロバイダーと、接続されたすべての MCP サーバーから動的に読み込まれたツールで構成されたLangGraphAgentが作成されます。 - メッセージ処理(
main.py):- メッセージがコマンドプレフィックス(
#)で始まる場合、それはサーバー/ツールをリストアップするか、対応するMCPClientを通じて特定のツールを呼び出すためのダイレクトコマンドとして解析されます。 - それ以外の場合、メッセージ(スレッド履歴を含む)は
LangGraphAgentに渡されます。
- メッセージがコマンドプレフィックス(
- エージェント実行: エージェントがリクエストを処理し、
MCPClientインスタンスを通じて 1 つ以上の MCP ツールを呼び出す可能性があり、レスポンスを生成します。 - レスポンス配信: エージェントまたはコマンド実行からの最終レスポンスが、適切な Mattermost チャネル/スレッドに投稿されます。
セットアップ
-
リポジトリをクローンする:
git clone <repository-url> cd mattermost-mcp-host -
インストール:
- uv を使用する場合(推奨):
# まだ uv をインストールしていない場合はインストールしてください # curl -LsSf https://astral.sh/uv/install.sh | sh # venv をアクティブにする source .venv/bin/activate # uv でパッケージをインストール uv sync # 開発用の依存関係をインストールするには uv sync --dev --all-extras
- uv を使用する場合(推奨):
-
環境を設定する(
.envファイル):.env.exampleをコピーして値を入力するか、 プロジェクトのルートに.envファイルを作成します(または環境変数を設定します):# Mattermost の詳細 MATTERMOST_URL=http://your-mattermost-url MATTERMOST_TOKEN=your-bot-token # 投稿、チャネル読み取りなどの権限が必要です MATTERMOST_TEAM_NAME=your-team-name MATTERMOST_CHANNEL_NAME=your-channel-name # ボットがリッスンするチャネル # MATTERMOST_CHANNEL_ID= # オプション: 名前が指定されている場合は自動検出されます # LLM 設定(Azure OpenAI がデフォルト) DEFAULT_PROVIDER=azure AZURE_OPENAI_ENDPOINT=your-azure-endpoint AZURE_OPENAI_API_KEY=your-azure-api-key AZURE_OPENAI_DEPLOYMENT=your-deployment-name # 例: gpt-4o # AZURE_OPENAI_API_VERSION= # オプション、デフォルト値が提供されています # オプション: 他のプロバイダー(`[all]` エクストラでインストール) # OPENAI_API_KEY=... # ANTHROPIC_API_KEY=... # GOOGLE_API_KEY=... # コマンドプレフィックス COMMAND_PREFIX=#詳細は
.env.exampleを参照してください。 -
MCP サーバーを設定する:
src/mattermost_mcp_host/mcp-servers.jsonを編集して、接続する MCP サーバーを定義します。src/mattermost_mcp_host/mcp-servers-example.jsonを参照してください。 サーバーの設定によっては、システムのパスにnpx、uvx、dockerをインストールする必要があります。 -
統合を開始する:
mattermost-mcp-host
前提条件
- Python 3.13.1 以上
- uv パッケージマネージャー
- Mattermost サーバーインスタンス
- API トークン付き Mattermost ボットアカウント
- LLM API へのアクセス(Azure OpenAI)
オプション
mcp-servers.jsonに設定された 1 つ以上の MCP サーバー- Tavily ウェブ検索には
.envファイルのTAVILY_API_KEYが必要です
Mattermost での使用方法
統合が実行され、接続されたら:
- ダイレクトチャット: 設定されたチャネルまたはボットと簡単にチャットします。AI エージェントは必要に応じてツールを使用して応答します。メッセージスレッド内でコンテキストを維持します。
- ダイレクトコマンド: 特定のアクションにはコマンドプレフィックス(デフォルト
#)を使用します:#help- ヘルプ情報を表示します。#servers- 設定および接続されている MCP サーバーをリストします。#<server_name> tools-<server_name>の利用可能なツールをリストします。#<server_name> call <tool_name> <json_arguments>-<server_name>で<tool_name>を呼び出し、引数を JSON 文字列として提供します。- 例:
#my-server call echo '{"message": "Hello MCP!"}'
- 例:
#<server_name> resources-<server_name>の利用可能なリソースをリストします。#<server_name> prompts-<server_name>の利用可能なプロンプトをリストします。
次のステップ
- ⚙️ 設定可能な LLM バックエンド: 環境変数を使用して複数の AI プロバイダー(デフォルトは Azure OpenAI、OpenAI、Anthropic Claude、Google Gemini)をサポートします。
Mattermost セットアップ
- ボットアカウントを作成する
- [統合] > [ボットアカウント] > [ボットアカウントの追加] に進みます
- 名前と説明を入力します
- アクセストークンを .env ファイルに保存します
- 必要なボット権限
- post_all
- create_post
- read_channel
- create_direct_channel
- read_user
- ボットをチーム/チャネルに追加する
- ボットをチームに招待します
- 目的のチャネルにボットを追加します
トラブルシューティング
- 接続の問題
- Mattermost サーバーが実行されていることを確認してください
- ボットトークンの権限を確認してください
- チーム/チャネル名が正しいことを確認してください
- AI プロバイダーの問題
- API キーを検証してください
- API クォータと制限を確認してください
- API エンドポイントへのネットワークアクセスを確認してください
- MCP サーバーの問題
- サーバーログを確認してください
- サーバー構成を確認してください
- 必要な依存関係がインストールされており、環境変数が定義されていることを確認してください
デモ
Github MCP サーバーを使用してチャットで issue を作成

(YouTube)
貢献
PR をお気軽に開いてください。
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。