Voice Call MCP Server について
Voice Call MCP Server は、Claude などの AI アシスタントが Twilio で外線通話を発信・管理できるようにする MCP サーバーです。通話音声は GPT-4o Realtime モデルで処理されます。AI 音声通話機能を開発するための基盤として利用できます。
主な機能
- 01Twilio による外線通話の発信
- 02GPT-4o Realtime によるリアルタイム音声処理
- 03通話中の言語切り替え
- 04予約などの一般的な通話用プロンプト
- 05ngrok による公開 URL の自動トンネリング
- 06環境変数による認証情報の管理
活用シーン
- 01相手先への連絡事項の音声伝達
- 02音声による飲食店の予約
- 03クリニックへの予約変更依頼
MCP 対応
本サーバーは外線通話機能を MCP クライアントに公開し、AI アシスタントが電話の発信と管理を行えるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
音声通話 MCP サーバー
Claude やその他の AI アシスタントが、Twilio と OpenAI(GPT-4o Realtime モデル)を使用して音声通話を開始・管理できる Model Context Protocol(MCP)サーバーです。
このプロジェクトを出発点として、AI を活用した音声通話の検討を始め、時間を節約しながら機能を追加してください。

シーケンス図
sequenceDiagram
participant AI as AI Assistant (e.g., Claude)
participant MCP as MCP Server
participant Twilio as Twilio
participant Phone as Destination Phone
participant OpenAI as OpenAI
AI->>MCP: 1) Initiate outbound call request <br>(POST /calls)
MCP->>Twilio: 2) Place outbound call via Twilio API
Twilio->>Phone: 3) Ring the destination phone
Twilio->>MCP: 4) Call status updates & audio callbacks (webhooks)
MCP->>OpenAI: 5) Forward real-time audio to OpenaAI's realtime model
OpenAI->>MCP: 6) Return voice stream
MCP->>Twilio: 7) Send voice stream
Twilio->>Phone: 8) Forward voice stream
Note over Phone: Two-way conversation continues <br>until the call ends
機能
- Twilio 経由で発信 📞
- GPT-4o Realtime モデルで通話音声をリアルタイムに処理 🎙️
- 通話中に言語をリアルタイムで切り替え 🌐
- よくある通話シナリオ(レストランの予約など)向けのプロンプトを事前に用意 🍽️
- ngrok を使用して公開 URL を自動でトンネリング 🔄
- 認証情報を安全に取り扱い 🔒
なぜ MCP なのか?
Model Context Protocol(MCP)は、AI アシスタントと現実世界でのアクションをつなぎます。MCP を実装することで、このサーバーを通じて Claude などの AI モデルが次のことを行えるようになります。
- ユーザーに代わって実際に電話をかける
- リアルタイムの音声会話を処理して応答する
- 音声によるコミュニケーションを必要とする複雑なタスクを実行する
このオープンソースの実装は透明性とカスタマイズ性を備えており、開発者はデータとプライバシーを管理しながら機能を拡張できます。
要件
- Node.js >= 22
- Node.js の更新が必要な場合は、
nvm(Node Version Manager)の使用をおすすめします。nvm install 22 nvm use 22
- Node.js の更新が必要な場合は、
- API 認証情報を設定した Twilio アカウント
- OpenAI API キー
- Ngrok Authtoken
インストール
手動インストール
-
リポジトリをクローンします
git clone https://github.com/lukaskai/voice-call-mcp-server.git cd voice-call-mcp-server -
依存関係をインストールしてビルドします
npm install npm run build
設定
サーバーには、いくつかの環境変数が必要です。
TWILIO_ACCOUNT_SID:Twilio アカウントの SIDTWILIO_AUTH_TOKEN:Twilio の認証トークンTWILIO_NUMBER:Twilio の電話番号OPENAI_API_KEY:OpenAI API キーNGROK_AUTHTOKEN:ngrok の認証トークンRECORD_CALLS:通話を録音する場合は「true」に設定します(任意)
Claude Desktop の設定
このサーバーを Claude Desktop で使用するには、設定ファイルに以下を追加してください。
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"voice-call": {
"command": "node",
"args": ["/path/to/your/mcp-new/dist/start-all.cjs"],
"env": {
"TWILIO_ACCOUNT_SID": "your_account_sid",
"TWILIO_AUTH_TOKEN": "your_auth_token",
"TWILIO_NUMBER": "your_e.164_format_number",
"OPENAI_API_KEY": "your_openai_api_key",
"NGROK_AUTHTOKEN": "your_ngrok_authtoken"
}
}
}
}
その後、Claude Desktop を再起動して設定を再読み込みします。 接続されると、🔨 メニューに Voice Call が表示されます。
Claude との対話例
Claude を通じてこのサーバーを利用する際の自然な対話例を紹介します。
- 簡単な通話:
Can you call +1-123-456-7890 and let them know I'll be 15 minutes late for our meeting?
- レストランの予約:
Please call Delicious Restaurant at +1-123-456-7890 and make a reservation for 4 people tonight at 7:30 PM. Please speak in German.
- 予約の日時調整:
Please call Expert Dental NYC (+1-123-456-7899) and reschedule my Monday appointment to next Friday between 4–6pm.
重要な注意事項
- 電話番号の形式:すべての電話番号は E.164 形式で指定する必要があります(例:+11234567890)。
- レート制限:Twilio と OpenAI のアカウントにおけるレート制限と料金に注意してください。
- 音声での会話:AI が自然な会話をリアルタイムで処理します。
- 通話時間:通話時間は OpenAI API と Twilio の料金に影響するため、注意してください。
- 公開範囲:ngrok トンネルによって、Twilio がアクセスできるようサーバーがインターネットに公開される点に注意してください(ランダムな URL が使用され、ランダムなシークレットで保護されます)。
トラブルシューティング
よくあるエラーメッセージと解決方法:
-
"Phone number must be in E.164 format"
- 電話番号が「+」と国番号で始まっていることを確認してください。
-
"Invalid credentials"
- TWILIO_ACCOUNT_SID と TWILIO_AUTH_TOKEN を確認してください。これらは Twilio Console からコピーできます。
-
"OpenAI API error"
- OPENAI_API_KEY が正しく、有効なクレジットが十分にあることを確認してください。
-
"Ngrok tunnel failed to start"
- NGROK_AUTHTOKEN が有効で、期限切れでないことを確認してください。
-
"OpenAI Realtime does not detect the end of voice input, or is lagging."
- Twilio と受信側のネットワーク事業者の間で、音声エンコードに問題が発生することがあります。別の受信者でお試しください。
コントリビューション
コントリビューションを歓迎します!改善に取り組んでいる分野は次のとおりです。
- 現在の実装に加えて、複数の AI モデルをサポートする
- 会話履歴をローカルに保存し、AI のコンテキストとして利用できるデータベース連携を追加する
- 通話体験を向上させるため、レイテンシと応答時間を改善する
- エラー処理と復旧の仕組みを強化する
- よくあるシナリオ向けの、事前作成済みの会話テンプレートを追加する
- 通話のモニタリングと分析機能を改善する
コントリビューションをご希望の場合は、プルリクエストを送信する前に、アイデアを話し合うためのイシューを作成してください。
ライセンス
このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細は LICENSE ファイルをご覧ください。
セキュリティ
GitHub のイシューやプルリクエストには、電話番号や API 認証情報などの機密情報を含めないでください。このサーバーは機密性の高い通信を処理するため、責任を持ってデプロイし、すべての認証情報を安全に保管してください。
新たなミッションに挑みませんか?
音声 AI の最前線で開発し、次世代の通信事業者に組み込むエンジニアを募集しています。
興味がありますか?careers.popcorn.space をご覧ください 🍿 !
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。