Voxplo について
Voxploは、AIエージェントから発信し、目的に沿った会話と結果取得を行うMCPサーバーです。電話での予定調整に対応し、要約、文字起こし、構造化データも取得できます。
主な機能
- 01目的に沿った電話発信
- 02電話での予定調整
- 03通話状況と結果の取得
- 04要約、文字起こし、抽出項目の確認
活用シーン
- 01発信による内容確認
- 02連絡先との会議日程調整
- 03通話記録と抽出データの確認
MCP 対応
MCPクライアントに `place_call`、`set_appointment`、`get_call`、`list_calls` ツールを提供します。ホスト型のStreamable HTTPサーバーとローカルのstdioサーバーを利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.voxplo.ai/mcpclaude mcp add --transport http voxplo https://mcp.voxplo.ai/mcp{"mcpServers":{"voxplo":{"type":"http","url":"https://mcp.voxplo.ai/mcp"}}}Cursor で開く{"servers":{"voxplo":{"type":"http","url":"https://mcp.voxplo.ai/mcp"}}}VS Code で開く{"mcpServers":{"voxplo":{"type":"http","url":"https://mcp.voxplo.ai/mcp"}}}{"mcpServers":{"voxplo":{"serverUrl":"https://mcp.voxplo.ai/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
4| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| to | string | はい | E.164 形式の発信先電話番号。例:+14155550123。 |
| fields | array | いいえ | 通話から抽出する構造化フィールド。 |
| context | string | いいえ | アシスタントの背景コンテキスト。 |
| navMode | enum | いいえ | 相手側の IVR を操作する方法:auto(キー入力メニューか会話型アシスタントかをリアルタイムで判定)、keypad(ミュートのままキーを押す)、speech(話す)。auto | keypad | speech |
| callerId | string | いいえ | 発信者番号(任意)。アカウントに登録された番号である必要があります。 |
| objective | string | はい | 通話で達成する内容。 |
| webhookUrl | string | いいえ | 署名付きの結果を受け取る HTTPS URL(任意)。 |
| listenFirst | boolean | いいえ | true の場合、相手または IVR が先に話すまで無言で待ち、その後応答します。電話ツリーへの発信では常に推奨されます。 |
| accountNumber | string | いいえ | enter_account_number ツールが決定的にキー入力するアカウント番号/電話番号(キー入力文字のみ)。 |
| toolAllowlist | array | いいえ | この通話で使用できるツール。例:["send_digits","reached_human","add_participant","enter_account_number"]。省略するとデフォルトのセットが使われます。 |
| callbackNumber | string | いいえ | 回拨用の当社 DID 番号。enter_callback_number ツールがキー入力します(AI への折り返し通話モード)。 |
詳細
voxplo-mcp
AI エージェントに電話を持たせましょう。この MCP サーバーを使うと、あらゆる MCP クライアント(Claude、Cursor、ChatGPT developer mode など)から、Voxplo を通じて実際の AI 発信電話をかけられます。AI が相手に電話をかけ、目的に沿って会話を進め、要約、文字起こし、抽出した構造化フィールドを返します。
- ホステッド(リモート)サーバー:
https://mcp.voxplo.ai/mcp(Streamable HTTP + OAuth、インストール不要) - ローカル(stdio)サーバー:
npx voxplo-mcp(このパッケージ) - ドキュメント: https://voxplo.ai/docs/agent-api/mcp
- ツール:
place_call、set_appointment、get_call、list_calls
オプション A:ホステッドサーバー(推奨)
インストール不要です。クライアントにリモート MCP サーバーとして https://mcp.voxplo.ai/mcp を追加してください。
{
"mcpServers": {
"voxplo": { "type": "streamable-http", "url": "https://mcp.voxplo.ai/mcp" }
}
}
Claude では、「Settings」から「Connectors」、「Add custom connector」の順に選択し、https://mcp.voxplo.ai/mcp を貼り付けます。ブラウザーで Voxplo の同意画面が開くので、Developers page から取得した Agent API キーを貼り付けて承認してください。クライアントにキーそのものが渡ることはなく、OAuth トークンのみが渡されます。
オプション B:ローカルサーバー(このパッケージ)
前提条件:Node 18 以降、Voxplo Agent API キー(bys_ak_ で始まるもの。Developers page から取得できます)。
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)またはお使いの OS の同等の場所に追加します。
{
"mcpServers": {
"voxplo": {
"command": "npx",
"args": ["-y", "voxplo-mcp"],
"env": { "VOXPLO_API_KEY": "bys_ak_your_key_here" }
}
}
}
Cursor
同じブロックを、プロジェクト内の .cursor/mcp.json(またはグローバル設定の ~/.cursor/mcp.json)に追加します。
ステージング環境またはセルフホストのインスタンスを指定するには、env ブロックに "VOXPLO_API_BASE": "https://staging.example.com" を追加します。
ツール
place_call
目的に沿って、AI による発信電話をかけます。すぐに callId を返し、通話は非同期で実行されます。ステータスが終端状態になるまで、その callId を指定して get_call をポーリングしてください。
入力:
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
to | string | はい | E.164 形式の発信先番号(例:+14155550123) |
objective | string | はい | 通話で達成する内容 |
context | string | いいえ | アシスタントに与える背景情報 |
fields | array | いいえ | 抽出する構造化フィールド(最大 20 項目:{ name, type?, description? }) |
webhookUrl | string | いいえ | 通話終了時に署名付きの結果を受信する HTTPS URL |
callerId | string | いいえ | 発信者番号の上書き。アカウントに登録されている番号を指定してください |
戻り値: { callId, status }。成功時の status は queued です。
set_appointment
打ち合わせを設定するため、AI による発信電話をかけます。アシスタントが相手に電話をかけ、日時を調整します。結果(get_call をポーリング)は outcome(appointment_set | callback_requested | declined | no_answer | failed)を含み、予定が設定された場合は予定の詳細(startISO、timezone、durationMinutes、attendee、subject)も含みます。すぐに callId を返します。
入力:
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
to | string | はい | E.164 形式の発信先 |
subject | string | はい | 打ち合わせの内容 |
durationMinutes | number | いいえ | 打ち合わせの所要時間(分。既定値は 30) |
timePreference | string | いいえ | 自然言語で指定する時間帯。例:「来週の平日午前」 |
slots | array | いいえ | 提案する具体的な開始日時:[{ startISO }]。オフセット付き ISO-8601 形式 |
timezone | string | いいえ | 予定の IANA タイムゾーン。例:Asia/Jerusalem |
autoBook | boolean | いいえ | 合意した日時を、接続済みのカレンダーにも予約するかどうか |
webhookUrl | string | いいえ | 署名付きの結果を受信する HTTPS URL |
callerId | string | いいえ | 発信者番号の上書き。アカウントに登録されている番号を指定してください |
get_call
通話の現在のステータスと結果を取得します。
入力:
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
callId | string | はい | place_call または set_appointment から取得した callId |
戻り値: { id, status, summary, transcript, extracted, recordingUrl, to, objective, startedAt, endedAt, durationSec, error? }
list_calls
アカウントから発信した最近の通話を(新しい順に)一覧表示します。
入力:
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
limit | number | いいえ | 返す通話の最大数(デフォルトは20、最大100) |
戻り値: { calls: [ { id, to, objective, status, summary, createdAt, startedAt, endedAt, durationSec, error? } ] }
通話ステータス
| ステータス | 終端状態? | 意味 |
|---|---|---|
queued | いいえ | 通話が受け付けられ、まだ発信していません |
ringing | いいえ | 発信先を呼び出し中です |
in_progress | いいえ | 通話中です |
completed | はい | 通話が正常に終了しました |
no_answer | はい | 発信先が応答しませんでした |
voicemail | はい | 留守番電話につながりました |
declined | はい | 通話が拒否されました |
failed | はい | 技術的な障害が発生しました |
最初の通話を発信する
- 上記のとおり、MCP クライアントを設定します。
- アシスタントに次のように依頼します:「明日の午後2時の会議時刻を確認する目的で、+14155550123 に電話をかけてください。」
- アシスタントが
place_callを呼び出し、callIdを取得します。 - 「通話
<callId>の状況を確認してください。完了しましたか?」と尋ねます。 - アシスタントが
get_callを呼び出し、ステータス、概要、抽出されたフィールドがあればそれを返します。
安全性
発信先はサーバー側で審査され(高額課金、衛星通信など、その他の高リスクな発信経路はブロックされます)、求められた場合は通話中に AI であることを開示します。また、発信ツールには openWorldHint: true が注釈として付けられているため、クライアントは発信前に確認を求めます。詳細:https://voxplo.ai/security
開発
テストを実行します:
node --test
スモークテスト(ダミーキーを使用すると、標準エラー出力に「ready on stdio」と表示されます):
VOXPLO_API_KEY=bys_ak_test node src/server.js
リンク
- Voxplo:https://voxplo.ai
- エージェント API リファレンス:https://voxplo.ai/docs/agent-api
- OpenAPI 仕様:https://www.voxplo.ai/openapi.json
- ホスト型 MCP サーバーカード:https://mcp.voxplo.ai/.well-known/mcp/server-card.json
- ライセンス:MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。