ThunderPhone 2.0、提供開始。セルフサービスで、1分あたり2セントから。発表内容を見る

Getting Started

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 work

THUNDERPHONE_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 UUIDSMS レコードを一覧表示または確認する
call TO --agent ID --from FROM [--wait]発信通話を開始する。必要に応じて文字起こしを待機する
calls list [--limit N] [--agent ID]通話を一覧表示する(上限は 1~200)
calls get ID, calls transcript ID1 件の通話またはその文字起こしを取得する
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 以降が必要です。