Chamade について
Chamadeは、AIエージェントが複数のプラットフォームで会議やDMに参加するための、ホスト型音声・チャットゲートウェイです。音声処理または生音声の転送を担い、エージェントはテキストとMCPツールで操作します。
主な機能
- 01音声会議への参加と着信対応
- 02会議チャットとDMの送信
- 03独自キーを使ったホスト型STT/TTS
- 04双方向WebSocketによる生音声転送
- 05対応チャットでのファイル送受信
活用シーン
- 01会議の文字起こしを読み、音声で応答
- 02着信やDMへの対応
- 03対応チャットでのファイル共有
MCP 対応
Chamadeは、ホスト型Streamable HTTP MCPサーバーを通じて、通話、チャット、受信トレイ、アカウント、ファイルアップロードのツールを提供します。HTTP非対応のクライアント向けにstdio shimも用意されています。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.chamade.io/mcp/claude mcp add --transport http chamade-io https://mcp.chamade.io/mcp/{"mcpServers":{"chamade-io":{"type":"http","url":"https://mcp.chamade.io/mcp/"}}}Cursor で開く{"servers":{"chamade-io":{"type":"http","url":"https://mcp.chamade.io/mcp/"}}}VS Code で開く{"mcpServers":{"chamade-io":{"type":"http","url":"https://mcp.chamade.io/mcp/"}}}{"mcpServers":{"chamade-io":{"serverUrl":"https://mcp.chamade.io/mcp/"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.chamade.io/mcp/認証が必要ツール
詳細
@chamade/mcp-server
Chamade 用の MCP(Model Context Protocol)サーバーです。AI エージェントが Discord、Microsoft Teams、Google Meet、Telegram、SIP、Zoom、Nextcloud Talk、Slack、WhatsApp の会議や DM に参加できる、音声・チャットゲートウェイです。
推奨する音声経路は、API キーを持ち込んで利用するホスト型 STT/TTS です。 ダッシュボードで ElevenLabs / Deepgram / OpenAI / Cartesia の API キーを一度登録すれば、そのキーを使って Chamade 側で音声処理パイプライン全体が実行されます。文字起こしは call_transcript イベントとして届き、chamade_call_say で会議中に発話できます。Chamade 側の利用は無料で、料金が発生するのは利用するプロバイダー分のみです。エージェントはすべてテキストベースのままです。
既存の音声パイプライン(OpenAI Realtime、LiveKit Agents、Pipecat、Deepgram Voice Agent、手動カスケード)を引き続き使いたい場合、Chamade は双方向 WebSocket を通じて通話の raw-PCM 音声も提供します。音声は持ち込み、Chamade が転送し、音声処理レイヤーはご自身で実行します。どちらの方式でも、制御には同じ MCP ツールを使用します。
ファイル添付は、Discord、Telegram、Slack、WhatsApp(音声メモを含む)、Nextcloud Talk の DM と会議チャットで、すぐに利用できます。chamade_file_upload_url を使って認証不要の署名付きアップロード URL を発行し、返された file_id を chamade_dm_chat または chamade_call_chat の attachments に渡します。受信ファイルは Chamade の署名付き URL として chamade_inbox に届くため、エージェントは追加の認証なしで curl できます。Teams と Meet のサポートはコード上で準備済みですが、各プラットフォームの認定が完了するまで利用できません。
Chamade は現在、早期アクセス期間中です。無料で、サブスクリプションも利用上限もありません。
v4:ホスト型 MCP + 薄型 stdio シム
Chamade MCP サーバーは https://mcp.chamade.io/mcp/ でホストされ、Streamable HTTP トランスポートに対応しました。 これが唯一の信頼できる情報源であり、すべてのツール、リソース、プッシュイベントがここにあります。
- MCP クライアントが Streamable HTTP(最近の Claude Desktop、Claude Code、Cursor、Windsurf など)に対応している場合は、ホスト型エンドポイントを直接設定してください。この npm パッケージは不要です。
- MCP クライアントが stdio のみに対応している場合は、このパッケージをインストールしてください。v3 以降、このパッケージは約 160 行のラッパーとなり、内部で
mcp-remoteを起動して、stdio とホスト型 HTTP エンドポイントを接続します。ツール、プッシュイベント、レイテンシは同じです。並行する stdio 実装がないため、差異は発生しません。
v4 での変更点
v4 はサーバー側のワイヤー形式の変更で、shim によって自動的に取り込まれます。主な変更点の詳細は docs/AGENTS.md をご覧ください。
- Channels は Agents になりました。 ベアラーごとのスコープは変更されていません。ワイヤー上およびツールの説明では、どこでも名称が
agentになりました。 account_idが正規の結合キーです。chamade_dm_chat、chamade_call_join、イベントペイロード、返信 XML タグの属性で同じように使用されます。- イベントペイロード v2。
dataにはaccount_id、from、from_name(sender_* フィールドは削除)が含まれます。また、あらかじめ設定されたagent_context.{accounts, active_calls}のスナップショットも含まれるため、エージェントは追加の往復通信なしで、現在の状況を常に把握できます。 - 明示的なターゲット指定に対応した XML タグ。 返信 XML で、現在の返信コンテキスト外の会話や通話を指定できるようになりました(
<dm platform=…>、<call_say call_id=…>など)。これにより、別のターゲットへの開始が可能です。 - MCP の自動接続。 MCP をツールとしてネイティブにサポートするプロバイダー(OpenAI Responses、Anthropic Managed Agents、Foundry)には、エージェントごとのベアラーを設定した Chamade MCP サーバーが事前に注入されます。
このパッケージの以前のバージョン(v2.x 以下)には、Chamade の REST API に対して TypeScript で 13 個のツールをローカル実装する、完全なネイティブ stdio サーバーが同梱されていました。v3 以降はこれを shim に置き換えています。徐々に乖離する 2 つのインターフェイスを保守しなくて済むよう、アップグレードしてください。
クイックスタート
オプション A — HTTP 直接接続(推奨)
クライアントが Streamable HTTP に対応している場合、このパッケージは不要です。
{
"mcpServers": {
"chamade": {
"type": "http",
"url": "https://mcp.chamade.io/mcp/",
"headers": {
"Authorization": "Bearer chmd_..."
}
}
}
}
オプション B — stdio shim(このパッケージ)
stdio のみ対応するクライアント向けです。
{
"mcpServers": {
"chamade": {
"command": "npx",
"args": ["-y", "@chamade/mcp-server@3"],
"env": {
"CHAMADE_API_KEY": "chmd_..."
}
}
}
}
CHAMADE_API_KEY は必須です。 https://chamade.io/dashboard → API keys で実際のキーを取得し、chmd_… の値全体を貼り付けてください(プレフィックス以降が 40 文字以上)。環境変数が存在しない、空である、または chmd_... のようなプレースホルダーのままの場合、shim は起動を拒否します。OAuth に暗黙的にフォールバックすることはありません。このフォールバック経路は更新と失効を繰り返すループに陥り、このサーバーの認証方法として利用できないためです。
設定
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%/Claude/claude_desktop_config.json(Windows)。上記のオプション A または B を使用してください。
Claude Code
プロジェクトのルートにある .mcp.json。最適な使用体験を得るには、オプション A(HTTP 直接接続)を使用してください。
リアルタイムのプッシュイベント(トランスクリプト、受信 DM、着信中の通話、WhatsApp の dm_delivered フラッシュ)を受け取るには、毎回チャンネルフラグを付けて Claude Code を起動してください。
claude --dangerously-load-development-channels server:chamade --continue
このフラグは、Anthropic の許可リストにまだ登録されていない MCP チャンネルに対して、Claude Code が必須としている、起動ごとのクライアント側オプトインです。危険なものではなく、リサーチプレビュー中の実験的なチャンネルで標準的に求められるオプトインです。server: の後のサーバー名は、.mcp.json のキーと一致させる必要があります。フラグがなくてもツールは動作しますが、プッシュイベントは無視されます。新しいアクティビティを確認するには、chamade_inbox と chamade_call_status をポーリングする必要があります。
Cursor / Windsurf / OpenClaw
形式は同じです。パスはクライアントによって異なります。.cursor/mcp.json、~/.codeium/windsurf/mcp_config.json、~/.openclaw/config.json を使用してください。クライアントが HTTP に対応している場合はオプション A、そうでない場合はオプション B を使用してください。
ツール
| ツール | 説明 |
|---|---|
chamade_call_join | 音声会議に参加します(プラットフォーム + meeting_url)。 |
chamade_call_say | 会議で TTS を使ってテキストを音声で読み上げます。 |
chamade_call_chat | 会議でテキストチャットメッセージを送信します。テキストと一緒にファイルを送信する場合は、任意の attachments: [{file_id} | {url} | {bytes_b64, name, mime}] を指定します。両方を設定した場合、text はキャプションになります。添付ファイルの上限は 1 件あたり 25 MB です。 |
chamade_call_status | 通話の状態と新しい文字起こし行を取得します(差分パターン)。 |
chamade_call_accept | 着信中の通話(SIP など)に応答します。 |
chamade_call_refuse | 着信中の通話を拒否します。 |
chamade_call_typing | 会議のチャットで入力中インジケーターを送信します。 |
chamade_call_leave | 通話を終了して会議から退出します。 |
chamade_call_list | すべてのアクティブな通話を一覧表示します。 |
chamade_inbox | DM の会話(Discord、Telegram、Teams、WhatsApp、Slack、NC Talk)を確認します。WhatsApp の 24 時間ウィンドウの状態をインラインで表示します。受信したファイル添付は各メッセージの attachments[] に含まれ、Chamade 署名付き URL が設定されます。 |
chamade_dm_chat | プラットフォームを指定して DM メッセージを送信します。ファイルを送信する場合は、任意の attachments: [{file_id} | {url} | {bytes_b64, name, mime}] を指定します。text はキャプションになります。WhatsApp の 24 時間ウィンドウ外では、202 を返してキューに追加し、再エンゲージメント用テンプレートを自動送信します。 |
chamade_dm_typing | プラットフォームを指定して DM の入力中インジケーターを送信します。 |
chamade_file_upload_url | 有効期間 5 分の署名付きアップロード URL を生成します。シェルまたはエージェントで curl -F file=@path <url> を実行し、認証ヘッダーなし(URL 自体が認証情報です)でアップロードしてから、後続の送信で返された file_id を attachments: [{file_id}] に指定します。ローカルの大きなファイルにはこの方法を推奨します。シェルからストリーミングしてアップロードすることで、モデルの出力予算を使って base64 文字をすべて送る必要がなくなり、ツール呼び出しを小さくできます。 |
chamade_account | アカウントの状態、プラン、クレジット/クォータ、プラットフォームごとの利用準備状況(プラットフォームごとの files ブール値を含む)を確認します。 |
リソース
| URI テンプレート | 説明 |
|---|---|
chamade://calls/{call_id}/transcript | ライブ文字起こしです。読み取るたびに、前回の読み取り以降の新しい行のみが返されます(差分パターン)。チャネルモードのクライアントには、新しい行ごとにプッシュ通知も届きます。 |
チャネルモード(プッシュイベント)
チャネルモードでは、DM メッセージ、着信 SIP 通話、文字起こし行、通話状態の変更、WhatsApp の dm_delivered フラッシュイベントがエージェントのコンテキストに直接プッシュされるため、ポーリングは不要です。
サーバー側 — 設定は不要です。 ホスト型 Chamade MCP サーバーは、初期化ハンドシェイク時に常に experimental.claude/channel ケイパビリティを宣言します。v2.x の --channel 引数と CHAMADE_CHANNEL=1 環境変数は廃止されました。
クライアント側 — Claude Code では起動ごとにフラグが必要です。 Claude Code は、明示的に有効化した MCP サーバーからの notifications/claude/channel のみを処理します。
claude --dangerously-load-development-channels server:chamade --continue
起動するたびに指定する必要があります。指定しなくても Chamade のツールは動作しますが、クライアント側でプッシュイベントが通知されず、エージェントは新しいアクティビティを確認するために chamade_inbox と chamade_call_status をポーリングする必要があります。
その他の MCP クライアント(Claude Desktop、Cursor、Windsurf)は、現在チャネル受信機能を備えていないため、プッシュ通知を無視します。ただし、last_message_cursor と、任意で長時間ポーリング用の wait を指定して chamade_inbox を使うポーリングモードでは引き続き動作します。
環境変数(shim のみ)
これらを使用するのは stdio shim のみです。直接 HTTP を設定する場合、すべての設定は JSON に含まれます。
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
CHAMADE_API_KEY | はい | — | chamade.io/dashboard で取得する API キー(chmd_*、エントロピー 40 文字以上)。shim は起動時に形式を検証し、プレースホルダーや値の欠落がある場合は終了コード 1 で終了します。OAuth へのフォールバックはありません。 |
CHAMADE_URL | いいえ | https://chamade.io | Chamade のインスタンス URL。shim は MCP エンドポイントを自動的に導出します。https://chamade.io → https://mcp.chamade.io/mcp/、https://dev.chamade.io → https://mcp.dev.chamade.io/mcp/。 |
CHAMADE_MCP_URL | いいえ | — | MCP エンドポイントの明示的な上書き。カスタムプロキシを実行している場合を除き、設定しないでください。 |
v2.x の --channel CLI フラグは後方互換性のためにエラーなく受け付けられますが、何も行いません。v3 ではチャンネルモードが常に有効です。
対応プラットフォーム
- Discord — 音声チャンネル(共有ボットまたは持ち込みボット)、テキスト、ファイル(送受信、25 MB)
- Microsoft Teams — 音声会議+テキスト DM。ダッシュボードで OAuth 接続が必要です。ファイル機能はコード実装済みで、AppSource 認証の取得後に利用可能です。
- Google Meet — 音声(audio_in)+チャットテキスト。ダッシュボードで OAuth 接続が必要です(下記の注記を参照)。ファイル機能はコード実装済みで、Google OAuth の検証後に利用可能です。
- Telegram — DM テキスト+ファイル(送受信)。音声には対応していません。
- Zoom — 音声+会議チャット。会議 URL を渡します(Zoom Marketplace の承認待ちです。テスターアクセスはリクエストに応じて提供)。ファイルには対応していません。
- SIP / Phone — 音声のみ。電話番号または SIP URI を渡します。ファイルには対応していません。
- Nextcloud Talk — 音声+テキスト+ファイル(送信はすべてのアドオンバージョンで可能。受信にはアドオン ≥ 2.4.0 が必要です)
- WhatsApp — DM テキスト+ファイル(送受信。ボイスメッセージは未加工の音声として扱います)。音声通話には対応していません。
⚠️ Google Meet の音声 — ベータ版の制限。 Meet でのリアルタイム音声キャプチャは、現在 Developer Preview の Google Meet Media API に依存しています。すべての会議参加者が個別に登録されている必要があり、未登録の参加者がいる場合は音声キャプチャに失敗します。カレンダー連携と会議中のチャットは、すべてのユーザーで通常どおり機能します。本番環境で音声を利用する場合は、Teams、Discord、Nextcloud Talk、または SIP を推奨します。
仕組み
Agent (Claude Desktop, Cursor, …)
│ MCP (Streamable HTTP, Authorization: Bearer chmd_*)
▼
mcp.chamade.io (hosted by Chamade)
│
▼
Chamade API (chamade.io)
│
▼
Maquisard bridge (transports audio; forwards to your
STT/TTS provider when BYOK preset set)
│
▼
Discord / Teams / Meet / …
オプション B(stdio shim)では、クライアントは HTTP で通信せず、shim がトランスポートアダプターとして間に入ります。
Agent (stdio-only client)
│ stdio JSON-RPC
▼
@chamade/mcp-server@3 (this package, ~160 LOC)
│ spawns
▼
mcp-remote (local subprocess)
│ Streamable HTTP, Bearer chmd_*
▼
mcp.chamade.io (hosted)
開発
npm install
npm run dev # runs with tsx (hot reload, src/index.ts)
npm run build # compiles to dist/
npm test # unit tests for deriveMcpUrl + buildRemoteArgs
shim 自体は小規模です(src/index.ts を参照)。MCP ツールの動作全体は、親 Chamade リポジトリの tests/e2e/test_mcp_http.py でテストしています。このテストはホストされたサーバーを直接操作するもので、ツールの動作仕様の正としています。
ドキュメント
- MCP サーバーのドキュメント — 主要な各クライアントのセットアップ
- プッシュモードのドキュメント — リアルタイムのプッシュイベントの仕組み(ステートフルセッション)
- エージェント — ベアラー × プラットフォームのスコープ設定(キー/OAuth クライアントごとに 1 エージェント)
- API リファレンス全文 — すべてのツールとエンドポイントを LLM 向けの形式で記載
- セットアップガイド — エージェント向けのステップごとのオンボーディング
問題とフィードバック
- バグ報告や機能リクエスト:issue を作成
- 直接の連絡先:[email protected]
- アプリ内:すべての Chamade ダッシュボードに「フィードバックを送信」ボタンがあります
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。