AIエージェント向けのSMS受信
エージェントは人手を介さずに番号を購入し、コードを読み取れます。
提示すべき身元がありません
アカウントは、エージェント自身が生成して保管するリカバリーフレーズです。確認するものも、 差し出すものも、名乗るべき人物もありません。
カードは不要です
チャージは暗号資産で行います。ウォレットを持つエージェントは自ら支払えます。カード番号も、 請求先住所も、支出を承認する人間も必要ありません。
読むべきページがありません
カタログ、価格、購入、発行はすべてツールの呼び出しです。ここにはブラウザもスクリーンショットも 必要とするものはありません。
MCPサーバーはどのように接続しますか?
HTTP ストリーマブル上の JSON-RPC 2.0 で、エンドポイントは一つだけです。申請すべきAPIキーも、 インストールするものもありません。カタログのツールはアカウントが存在する前から動作し、フレーズが 必要なのはお金を使うツールだけです。
https://otpdrop.com/mcp
Claude Code
claude mcp add --transport http otpdrop https://otpdrop.com/mcp
Cursor、Windsurf、VS Code など
HTTP を自ら扱えるクライアントは、この同じ設定を受け付けます。Cursor と Windsurf はキーを
mcpServers、VS Code は servers と呼びます。
{
"mcpServers": {
"otpdrop": {
"type": "http",
"url": "https://otpdrop.com/mcp"
}
}
}
| クライアント | 設定の場所 |
|---|---|
| Claude Code | claude mcp add またはプロジェクト内の .mcp.json |
| Claude Desktop | 設定 → コネクタ → カスタムコネクタを追加 |
| Cursor | ~/.cursor/mcp.json またはプロジェクトごとの .cursor/mcp.json |
| VS Code | .vscode/mcp.json の servers の下 |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
MCPのクライアントは速く変化し、これらのパスもそれに伴って変わります。お手元の 表示と一致しない場合は、クライアントのドキュメントをご確認ください。当方の側にあるのは、アドレスと トランスポートだけです。
クライアントが stdio しか扱えない場合は?
HTTP のMCPサーバーを直接開けないクライアントもあります。その場合はローカルで中継してください:
{
"mcpServers": {
"otpdrop": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://otpdrop.com/mcp"]
}
}
}
MCPのクライアントがまったくない場合は?
サーバーは通常のHTTPのエンドポイントですので、どの言語からでも呼び出せます。ツールの一覧を取得 すると、次のようになります:
curl -s -X POST https://otpdrop.com/mcp \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
アカウントを必要とするツールには Authorization: Bearer <seed> を添えてください。
JSON-RPC を扱いたくない場合は、同じ操作がAPIリファレンスの通常のRESTエンドポイント
としても用意されています。
エージェントは OTPDrop で何ができますか?
| ツール | 役割 | フレーズの要否 |
|---|---|---|
list_services | すべてのサービスとコード、カテゴリ | 不要 |
list_countries | すべての国と国番号 | 不要 |
list_catalog | 価格のマトリクスを含むカタログ全体 | 不要 |
quote | サービスと国の組み合わせの価格 | 不要 |
agent_help | このサーバーの使い方を、そのまま文脈に | 不要 |
create_account | アカウントを作成してフレーズを取得 | 不要 |
topup | 指定の通貨のチャージ用アドレスと金額を取得 | 必要 |
topup_status | チャージが反映されたかを確認 | 必要 |
buy_number | 残高から引き落として番号を購入 | 必要 |
get_order | 注文の詳細と現在のステータス | 必要 |
get_sms | 認証コードを、届きしだい取得 | 必要 |
そのほうが扱いやすいクライアントのために、カタログは3つの読み取り専用リソースとしても公開して
います:catalog://services、catalog://countries、
catalog://pairs。
一連の流れはどのようになりますか?
最初から最後まで5回の呼び出しです。外の世界を待つ工程は一つだけ、ネットワークによるチャージの 承認です。
- create_account — フレーズが返ります。保存してください。アカウントへ戻る唯一の 道であり、再設定はできません。
- topup — 通貨と金額を指定すると、アドレス、送金すべき正確な金額、期限が返ります。 エージェントのウォレットから送金してください。
- topup_status — チャージが残高に反映されるまで問い合わせます。
- buy_number — サービスと国を指定します。残高が引き落とされ、番号がすぐに発行され ます。購入ごとのアドレスも、二度目の待ち時間もありません。
- get_sms — コードが届くまで問い合わせます。注文の期限までに届かなければ、代金は 自動的に残高へ戻ります。
チャージは一度、購入は何度でも。1回のチャージで残高が許すだけの番号を賄えるため、承認を待つのは セッションで最初の購入だけです。
発見
実装に必要なものはすべて機械可読で、認証なしで提供しています。
エージェントに何を伝えるべきですか?
- フレーズは復旧できません。生成したのに保存しなかったエージェントは、残高ごと捨てたことになりま す。
- チャージはネットワークの承認後に反映され、それは即時ではありません。成功を前提とせず、
topup_statusを問い合わせてください。 - 請求に示された通貨とネットワークのみを送ってください。誤ったネットワークへの送金は回復できま せん。
- 届いたコードは注文を完了させ、送信先のサービスに拒否された場合でも料金が発生します。 返金条件をご覧ください。
- 返金はウォレットではなく、OTPDrop の残高へ戻ります。
通常の実装をお書きですか? REST APIのドキュメントに、 エンドポイント、認証、エラーコードを記載しています。