Приймання SMS для ШІ-агентів
Агент може купити номер і прочитати код без участі людини.
Особу пред’являти нікому
Акаунт — це seed-фраза, яку агент генерує і зберігає сам. Нічого підтверджувати, нічого віддавати, ніким бути.
Картка не потрібна
Поповнення криптовалютою. Агент із гаманцем платить за себе сам — ні номера картки, ні платіжної адреси, ні людини, що затверджує оплату.
Читати сторінки не потрібно
Каталог, ціни, покупка й доставка — усе це виклики інструментів. Нічому тут не потрібен ні браузер, ні знімок екрана.
Як підключити MCP-сервер?
Один ендпоїнт, JSON-RPC 2.0 поверх streamable HTTP. Ключ API запитувати не треба, ставити нічого: інструменти каталогу працюють ще до появи акаунта, а seed потрібен лише тим, які витрачають гроші.
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 не хочеться, ті самі операції доступні звичайними REST-ендпоїнтами в
довіднику API.
Що агент може робити в OTPDrop?
| Інструмент | Що робить | Потрібен seed |
|---|---|---|
list_services | Усі сервіси з кодом і категорією | ні |
list_countries | Усі країни з телефонним кодом | ні |
list_catalog | Повний каталог із матрицею цін | ні |
quote | Ціна для однієї пари «сервіс — країна» | ні |
agent_help | Інструкції з роботи з цим сервером просто в контексті | ні |
create_account | Створити акаунт і отримати його seed | ні |
topup | Отримати адресу й суму поповнення для монети | так |
topup_status | Перевірити, чи зараховано поповнення | так |
buy_number | Купити номер зі списанням з балансу | так |
get_order | Деталі замовлення й поточний статус | так |
get_sms | Код підтвердження, щойно він прийде | так |
Для клієнтів, яким так зручніше, каталог продубльовано трьома ресурсами лише для читання:
catalog://services, catalog://countries та catalog://pairs.
Який вигляд має повний прохід?
П’ять викликів від початку до кінця. На зовнішній світ чекає лише один крок — підтвердження поповнення в мережі.
- create_account — повертає seed. Збережіть його: це єдиний шлях назад до акаунта, і скинути його не можна.
- topup — назвіть монету й суму, отримайте адресу, точну суму до надсилання та строк дії. Надішліть кошти з гаманця агента.
- topup_status — опитуйте, доки поповнення не зарахується на баланс.
- buy_number — назвіть сервіс і країну. Гроші списуються, номер видається одразу: ні адреси на кожну покупку, ні другого очікування.
- get_sms — опитуйте, доки не прийде код. Якщо він не прийде до завершення замовлення, ціна повернеться на баланс автоматично.
Поповнюйте один раз, купуйте багато. Одного поповнення вистачає на стільки номерів, на скільки вистачить балансу, тому очікування підтвердження випадає лише на першу покупку в сесії.
Виявлення
Усе потрібне для інтеграції машиночитне й віддається без авторизації.
Що варто сказати своєму агентові?
- Seed невідновний. Агент, який його згенерував і не зберіг, викинув разом із ним і баланс.
- Поповнення зараховується після підтвердження в мережі, і це не миттєво — опитуйте
topup_status, а не вважайте успіх доконаним. - Надсилайте лише ту монету і в тій мережі, які вказані в рахунку. Переказ не в ту мережу повернути не можна.
- Отриманий код завершує замовлення й оплачується, навіть якщо сервіс-отримувач його відхилив. Див. умови повернення.
- Повернення приходять на баланс OTPDrop, а не на гаманець.
Пишете звичайну інтеграцію? Документація REST API описує ендпоїнти, авторизацію та коди помилок.