Open in
ThunderPhone CLI
ターミナルからログインし、音声エージェントと通話を管理し、MCPクライアントを設定して、プロジェクトのひな形を作成します。
CLI には Node.js 18.18 以降が必要です。npx で実行するか、グローバルにインストールします。
npm install -g thunderphone
thunderphone --helpログイン
npx thunderphone login
thunderphone whoami --jsonログインすると確認コードが表示され、ブラウザが開き、認可を待機します。
ヘッドレスマシンでは --no-browser を使用し、表示された URL を別の場所で開きます。
デバイスログインには、API の OAuth デバイスフローがロールアウトされている必要があります。
THUNDERPHONE_API_KEY に設定した組織 API キーでもコマンドを認証でき、保存済みのログイン認証情報より優先されます。
認証情報はプロファイルごとに、ファイルモード 0600 で ~/.config/thunderphone/credentials.json
に保存されます。XDG_CONFIG_HOME と THUNDERPHONE_CONFIG_DIR はディレクトリを上書きします。
アクセストークンは自動的に更新され、ローテーションされるリフレッシュトークンはアトミックに
保存されます。トークンがログイン時に表示されることはありません。
thunderphone login --profile work
thunderphone agents list --profile work --json
thunderphone logout --profile workTHUNDERPHONE_PROFILE はデフォルトのプロファイルを設定します。ログアウトするとローカルの認証情報は削除されますが、
サーバーの許可は取り消されません。デフォルト API は https://api.thunderphone.com です。
別の API を使用するには、--api-base-url または THUNDERPHONE_API_BASE_URL を使用します。プロファイルのトークンを
別の設定済み API URL に送信することはできません。その URL には別のプロファイルでログインしてください。
コマンド
すべてのコマンドは --json を受け付けます。成功時のデータは stdout に出力され、エラーは
ゼロ以外の終了コードとともに stderr に出力されます。--json を指定しない場合、出力はコンパクトなテーブルまたはフィールド一覧になります。
JSON では API レスポンスの構造が維持され、認証情報フィールドは編集されます。MCP サービングでは、stdout は MCP プロトコル用に予約されます。
| コマンド | 用途 |
|---|---|
login [--no-browser] [--scope "scopes"] | デバイスコードで認可する |
logout, whoami | ローカル認証情報を削除する。アクセス可能な組織を一覧表示する |
agents list, agents get ID | エージェントを取得する |
agents create --file agent.json | エージェントを作成する |
agents update ID --file agent.json | エージェントの下書きを保存する |
agents deploy ID, agents delete ID | 下書きをデプロイする。エージェントを削除する |
numbers list | 電話番号を取得する |
numbers provision --country US --area-code 415 | 米国の着信番号をプロビジョニングする |
numbers assign NUMBER_ID --agent ID | 着信エージェントを割り当てる |
sms send TO --from FROM --body TEXT --idempotency-key KEY | 安全な再実行に対応した、顧客接続済み通信事業者番号経由で SMS を送信する |
sms list [--limit N], sms get UUID | SMS レコードを一覧表示または確認する |
call TO --agent ID --from FROM [--wait] | 発信通話を開始する。必要に応じて文字起こしを待機する |
calls list [--limit N] [--agent ID] | 通話を一覧表示する(上限は 1~200) |
calls get ID, calls transcript ID | 1 件の通話またはその文字起こしを取得する |
test run AGENT_ID [--scenario ID] --consent-to-charge | ウェブチャネルを使用して、課金対象の保存済みシナリオを実行する |
test status RUN_ID [--agent ID] | バッチを確認する。エージェントを指定した場合はシナリオの詳細も表示する |
import VENDOR export.json | レビュー用にベンダー JSON インポートを準備する |
imports get UUID, imports commit UUID | インポートを確認する。レビュー後に選択したエージェントを確定する |
mcp setup, mcp serve | クライアントを設定する。stdio ブリッジを開始する |
init [directory] | プロジェクトのスキャフォールドを生成する |
発信通話には、発信が有効な番号が必要です。THUNDERPHONE_FROM_NUMBER で
--from を指定できます。顧客の VoIP 番号では引き続き発信通話を利用できます。
ThunderPhone がプロビジョニングした番号は、最初は着信専用です。組織管理者は
電話番号ページから発信通話をリクエストできます。各リクエストは
手動で審査されます。--wait のデフォルトのタイムアウトは 1 時間です。変更するには
--timeout SECONDS を設定します。タイムアウトしても通話は終了せず、待機のみ停止します。
SMS にも、接続済みの Twilio または Telnyx アカウント上の SMS 対応番号が必要です。ThunderPhone 所有の番号から送信されることはありません。同一性キーを再利用するのは、 完全に同じ送信者、受信者、本文で再試行する場合に限ってください。
インポートでは vapi、retell、elevenlabs、bland をサポートしています。2 番目の引数は
リモートベンダー ID ではなく、ベンダー JSON エクスポートへのパスです。API はマッピングを
非同期で準備します。imports get UUID で確認し、準備が完了して
マッピングされたフィールドと警告をレビューした後にのみ確定してください。エージェントのインポートを参照してください。
MCP の設定
thunderphone mcp setup --client cursor --api-key-env THUNDERPHONE_API_KEY
thunderphone mcp setup --client codex --scope user --api-key-env THUNDERPHONE_API_KEY
thunderphone mcp setup --client claude-desktop --scope userクライアント: claude-code、codex、cursor、vscode、gemini、claude-desktop、および
windsurf。プロジェクトスコープがデフォルトです。Desktop と Windsurf ではユーザースコープが必要です。
--client を省略すると、プロジェクトから単一のクライアントを検出します。検出結果が曖昧な場合は、
対話型で確認を求めるか、非対話型セッションでは手順を示して失敗します。
設定では書き込んだファイルを出力し、関連しないサーバーは保持されます。既存の JSON
は有効な厳密 JSON である必要があります。Codex の TOML 値は保持されますが、コメントは再整形される場合があります。
設定では直接リモート HTTP が優先されます。--api-key-env を指定すると、キーそのものではなく
変数参照を書き込みます。このオプションを指定しない場合、直接 HTTP はクライアントの
OAuth サポートに依存し、CLI の認証情報ファイルは使用しません。任意の stdio 対応クライアントで
thunderphone login の認証情報を再利用するには、次を使用します。
{
"mcpServers": {
"thunderphone": {
"command": "npx",
"args": ["-y", "@thunderphone/mcp"]
}
}
}ラッパーは THUNDERPHONE_API_KEY、次に現在の CLI プロファイル(必要に応じて更新)を確認し、
その後 OAuth を mcp-remote に委任します。THUNDERPHONE_MCP_URL はエンドポイントを上書きします。
テレメトリーは送信しません。スタンドアロン設定は
npx -y @thunderphone/mcp setup --client cursor、または @thunderphone/mcp をグローバルに
インストールした後の thunderphone-mcp setup でも利用できます。
プロジェクトを作成する
npx create-thunderphone-agent my-receptionist
npx create-thunderphone-agent my-outbound --template python --agent-type outbound
# Equivalent:
thunderphone init my-receptionist --template node --agent-type receptionistテンプレートは node と python、エージェントタイプは receptionist、outbound、および
custom です。デフォルトのエージェントは、明示的なデモ情報を備えた英語・スペイン語対応の歯科受付です。
プロジェクトには agent.json、デプロイスクリプト、Claude Code、Cursor、VS Code 用の MCP 設定、
エージェント指示、.env.example、および README が含まれます。
スキャフォールディングはオフラインで実行され、空でないディレクトリへの上書きは拒否されます。
デプロイ前に業務情報を編集してください。生成された README の説明に従って、API キー、接続済みの発信者番号、
およびテスト受信者をエクスポートします。npm run deploy
または python deploy.py は、エージェントを作成または更新し、そのドラフトをデプロイして、課金対象のテスト通話を発信します。
スクリプトは API キー認証を使用します。CLI と stdio MCP ラッパーはデバイスログインにも対応しています。
Python スクリプトには Python 3.9 以降が必要です。