Chatwoot (Mojood Connect) について
Chatwoot MCP サーバーは、Claude から顧客との会話を検索し、メモや担当者、ラベル、ステータスを管理できます。読み取り専用の照会と、1回限りの確認が必要な変更を分けており、顧客へのメッセージ送信機能はありません。
主な機能
- 01ステータス、本文、ラベル、担当者で会話を検索
- 02会話履歴と連絡先の概要を表示
- 03未割り当て、緊急、返信待ちの会話を特定
- 04確認後に非公開メモを追加
- 05確認後に担当変更、ラベル付け、解決
活用シーン
- 01返信待ち時間が最も長い顧客を探す
- 02連絡先の会話履歴を確認
- 03顧客に連絡せず内部メモを残す
- 04会話を担当者やチームに引き継ぐ
MCP 対応
MCP クライアントに Chatwoot の会話検索・管理ツールを提供します。変更は1回限りの確認コードを経て実行されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx mojood-chatwoot-mcpCHATWOOT_URLYour Chatwoot addressCHATWOOT_ACCOUNTThe account idCHATWOOT_TOKENシークレットA user's API access tokenCHATWOOT_SAMPLE0 for real data (1 labels answers SAMPLE)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Chatwoot MCP サーバー
顧客の受信トレイについて、普段の言葉でClaudeに尋ねられます。最も長く待っている顧客は誰か、顧客が何を求めているか、会社から寄せられたすべての問い合わせなどを確認できます。会話をエージェントやチームに引き継いだり、ラベルを付けたり、解決済みにしたり、同じチャットから非公開メモを残したりできます。変更を行う前には確認ステップがあります。顧客にメッセージを送信するツールはありません。
Chatwootの動作するデモとして、Mojood Connectが作成しました。アプリケーション API を通じて、あらゆるChatwootで動作します。このリポジトリには、架空の会社Harbor Tradingの顧客受信トレイ向けにサンプルデータを設定したローカルChatwootが含まれているため、実際のアカウントに触れずに試せます。
ツール
| ツール | 機能 | 変更を加えますか? |
|---|---|---|
find_conversations | ステータス、メッセージ内の語句、ラベル、エージェントで会話を一覧表示します。連絡先、会社、受信トレイ、担当者、チーム、ラベル、顧客の待ち時間を確認できます | いいえ |
get_conversation | 1件の会話と、順番どおりのすべてのメッセージを表示します。非公開メモには印が付きます | いいえ |
contact_overview | 人物、メールアドレス、会社と、それらに関するすべての会話を表示します。名前が複数の会社の人物と一致する場合は、どの人物かを尋ねます | いいえ |
needs_attention | 担当エージェントがいない会話、返信を待つ顧客(待ち時間が長い順)、緊急の会話を表示します | いいえ |
add_private_note | エージェント向けの非公開メモを追加します。顧客には表示されません | はい、確認後 |
update_conversation | エージェントやチームへの引き継ぎ、ラベルの追加、ステータスの変更を行います | はい、確認後 |
変更を安全に行う方法。 add_private_note または update_conversation を confirmation なしで呼び出しても、何も変更されません。代わりに、要約(「Noor Al-Saadi(Bayt Interiors)との会話1をSalesチームに移し、Omar Siddiquiを担当者にします。」)と、1回限りのコードが返されます。変更は、同じリクエストがそのコードとともに10分以内に再度送信された場合にのみ行われます。コードは1回だけ使用でき、発行されたリクエストに対してのみ有効です。サーバーの指示では、モデルに要約を表示して、ユーザーの承認を待つよう伝えています。メモには「via Claude (Mojood Connect demo)」が付加され、Chatwootでは、すべての引き継ぎとラベルがトークンのユーザー名で会話に記録されます。
サーバーは、アクセストークンを所有するユーザーとして、そのユーザーのChatwoot権限で動作します。
ローカルで試す
Docker(Composeを含む)、uvおよびPython 3.13が必要です。
scripts/reset.sh # local Chatwoot on http://localhost:3010, filled with the SAMPLE inbox
uv run --env-file .env chatwoot-mcp # MCP server on http://127.0.0.1:8004/mcp (Streamable HTTP)
docker/compose.ymlは、Chatwoot独自のdocker-compose.production.yaml(v4.19.1)に従い、バージョンを固定しています。アプリは127.0.0.1上でのみ動作し、データベースとRedisは公開されません。scripts/reset.shは、すべてのパスワード、アカウント、その管理者、アクセストークン自体を生成し、Gitで無視されるファイルdocker/.envと.envに保存します。内容は何も出力されません。scripts/up.shを使うと、データに触れずに再起動後のChatwootを起動できます。
Claude Desktop: claude_desktop_config.json(Settings › Developer)に次の設定を追加し、このフォルダーへのパスを指定します。
{
"mcpServers": {
"chatwoot": {
"command": "uv",
"args": ["run", "--directory", "/path/to/chatwoot-mcp", "--env-file", "/path/to/chatwoot-mcp/.env", "chatwoot-mcp", "--stdio"]
}
}
}
続いて、「返信を最も長く待っているのは誰ですか?」「Bayt InteriorsのNoorは何を求めていますか?」「SalesのOmarに引き継いで、彼女の顧客が木曜日に予算を承認するとメモして」と尋ねてみてください。
ご自身のChatwootを使う場合: CHATWOOT_URL、CHATWOOT_ACCOUNT、CHATWOOT_TOKEN(プロフィール設定にあるアクセストークン)、CHATWOOT_SAMPLE=0を設定します。
サンプルの受信トレイ
Harbor Tradingの顧客受信トレイです。APIチャネルの受信トレイが2つ(Website chat、Email)、エージェントが2チーム(Sales、Service)に4人、ラベルが4つ、7社にまたがる連絡先が8人、会話が9件あります。メッセージの時刻はデータの作成日を基準に設定されているため、何時間も待っている顧客、担当者のいない会話が2件、緊急の会話、保留中の会話、解決済みの履歴が常に存在します。登場する人物や出来事はすべて架空です。
テスト
uv run --env-file .env pytest # unit tests (a fake Chatwoot API), plus live tests when the local Chatwoot runs
本番版で追加される機能
このデモでは、1つのアクセストークンでサインインします。Chatwoot の顧客向けの本番サーバーでは、各エージェントがそれぞれの Chatwoot アカウントでサインインできるようにし、Claude には各自が閲覧できる受信トレイだけが表示されるようにします。また、すべてのツール呼び出しの監査ログを記録するホスティング機能や、API のさらなる機能(定型返信、エージェントが送信する返信の下書き、レポート、マクロ、ヘルプセンター)も追加します。これを実現するのが Mojood Connect です。
ライセンス
Apache 2.0。Chatwoot は Chatwoot Inc. の商標です。このプロジェクトは Chatwoot Inc. による制作でも推奨でもありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。