Smsverbot Mcp

io.github.MassimoSun由 GitHub 账号 MassimoSun 发布v0.1.3更新于 Oct 28, 2026

SMS verification for AI agents: buy a number, get the code, cancel with refund. Free sandbox.

已验证Streamable HTTP可网页运行沟通与协作商业与电商

概览

AI 生成的概览

让智能体购买真实手机号接收短信验证码、等待验证码,并可取消订单退款,费用从预付余额扣除。

可以做什么
  • 浏览目录:列出可用的服务与国家,并在不购买的情况下查询某服务在某国家的零售价。
  • 购买与等待:购买号码(扣减预付余额)并轮询等待短信验证码。
  • 取消与退款:取消订单并一次性退回零售价。
  • 账户信息:查询当前余额、列出最近订单,并用 whoami 校验 API 密钥。
适用场景
适合智能体需要为合法注册的服务完成手机验证,或自动化测试自家产品的短信流程。免费的沙箱模式提供假号码和固定验证码,可先零成本开发和调试集成,再切换到真实密钥。
运行要求
远程 streamable HTTP 端点,或本地安装 Python 3.11+ 后以 stdio 或 HTTP 运行。需要从服务方的 Telegram 机器人获取 API 密钥,通过 Authorization Bearer 请求头或每个工具的 api_key 参数传入。需要以卢布充值的预付余额;测试可用单独的沙箱密钥。真实供应商模式还需设置 PROVIDER 与 FIVESIM_TOKEN。
安装前请注意
buy_number 会从共享的预付余额中真实扣费,等待验证码超时不会自动退款,需自行调用 cancel_order。API 密钥是可消费的凭证,不要写入日志或共享的配置文件。服务由第三方托管,订单与密钥数据会发送给该运营方及上游短信供应商。垃圾信息、规避封禁、批量虚假账号等滥用行为被禁止,可能导致密钥被封。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Smsverbot Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.MassimoSun%2Fsmsverbot-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "smsverbot": {
      "type": "http",
      "url": "https://kremledroid.duckdns.org/mcp"
    }
  }
}

README

smsverbot-mcp

[MCP Registry]

SMS verification for AI agents. An MCP server that lets an agent buy a real phone number, wait for the confirmation code, and cancel the order with a refund if the code never arrives. Remote streamable-HTTP endpoint, prepaid balance, pay-as-you-go — no subscriptions.

Works with Claude Code, Cursor, VS Code, Codex, Hermes and any MCP client. Keywords: MCP server, model context protocol, SMS verification, SMS activation, virtual numbers, AI agents, phone verification.

  • Endpoint: https://kremledroid.duckdns.org/mcp
  • Tools: list_services, list_countries, get_price, buy_number, wait_for_code, cancel_order, get_balance, order_history, whoami

Step 1 — get your key in the bot

Open @Smsverbot in Telegram, press 🤖 MCP для агентов (or send /api_key). The bot gives you the API key and shows your balance. The balance is shared with the bot: top up once — the same money pays for both numbers bought in the chat and numbers bought by your agent. No separate account, no card, no crypto wallet needed for MCP.

Step 2 — try the free sandbox first

Press 🧪 Тестовый режим in the same menu. A sandbox key buys fake numbers (+10000000000) and returns the fixed code 123456 after ~4 seconds, costs nothing, and never touches real providers. Build and debug your integration for free, then switch to a real key when you are ready.

Step 3 — connect

bash
claude mcp add --transport http smsverbot https://kremledroid.duckdns.org/mcp

Badges

[MCP Registry] [Glama]


MCP-сервер, который продаёт AI-агентам номера для приёма SMS-кодов подтверждения. Это отдельный продукт, не связанный с Telegram-ботом. Работает без собственного UI и веб-фреймворка: агент подключается по stdio или streamable HTTP и вызывает инструменты MCP.

Деньги хранятся в целых копейках. Баланс предоплаченный: агент пополняет счёт, покупка номера списывает стоимость, отмена возвращает её ровно один раз.

Подключение за 30 секунд (хостед, без установки)

Эндпоинт: https://kremledroid.duckdns.org/mcp (streamable HTTP, TLS).

Claude Code:

bash
claude mcp add --transport http smsverbot https://kremledroid.duckdns.org/mcp

Cursor (~/.cursor/mcp.json):

json
{ "mcpServers": { "smsverbot": { "url": "https://kremledroid.duckdns.org/mcp" } } }

VS Code (.vscode/mcp.json):

json
{ "servers": { "smsverbot": { "type": "http", "url": "https://kremledroid.duckdns.org/mcp" } } }

Дальше: получить API-ключ у Telegram-бота @Smsverbot, положить баланс и передать ключ одним из двух способов — заголовком Authorization: Bearer <ключ> в конфиге клиента (рекомендуется для хостед-режима) или первым аргументом api_key любого инструмента. Проверка, что ключ принят: инструмент whoami — отдаёт key_id и баланс.

Возможности

  • 9 MCP-инструментов для каталога, цен, покупки, ожидания кода, отмены, баланса, истории и проверки ключа.
  • Провайдер-агностичный слой: детерминированный mock без сети и реальный адаптер fivesim.
  • SQLite с WAL и транзакциями BEGIN IMMEDIATE для всех операций с балансом.
  • Ключи API хранятся только как SHA-256; открытый ключ показывается один раз.
  • Идемпотентный возврат средств при отмене.
  • Ограничения частоты и дневной лимит на ключ.

Установка

Windows (PowerShell или cmd):

bat
python -m venv .venv.venv/Scripts/pip install -r requirements.txt

Linux/macOS:

bash
python -m venv .venv.venv/bin/pip install -r requirements.txt

Требуется Python 3.11+. Проект проверялся на Python 3.14.

Настройка

Скопируйте .env.example в .env и заполните значения. Файл .env читается автоматически, переменные окружения имеют приоритет.

ПеременнаяПо умолчаниюНазначение
MCP_DB./mcp.dbПуть к SQLite-базе
MCP_API_KEYпустоКлюч по умолчанию для stdio-клиентов, если api_key передан пустым
PROVIDERmockmock или fivesim
FIVESIM_TOKENпустоТокен 5sim, обязателен для fivesim
MCP_MARKUP2.5Наценка к закупочной цене
RATE_LIMIT_PER_15MIN20Лимит покупок на ключ за 15 минут
DAILY_CODE_LIMIT200Дневной лимит заявок на ключ (UTC)
CODE_WAIT_SECONDS120Максимальное ожидание SMS-кода
USD_KOP_RATE9200Курс USD→RUB в копейках за доллар

Секретов в репозитории нет. Не коммитьте .env и реальные токены.

Запуск

Mock-режим не делает сетевых запросов и подходит для тестов и локальной разработки:

bat
.venv/Scripts/python server.py --stdio

Live-режим включается только явно:

bat
set PROVIDER=fivesimset FIVESIM_TOKEN=your_token_here.venv/Scripts/python server.py --stdio

HTTP-транспорт (streamable HTTP):

bat
.venv/Scripts/python server.py --http --port 8765

По умолчанию HTTP слушает 127.0.0.1; хост можно изменить через --host.

Ключи и пополнение

Открытый API-ключ показывается только при создании. В базе остаётся лишь его SHA-256.

bat
.venv/Scripts/python server.py --create-key "my-agent".venv/Scripts/python server.py --topup svb_ВАШ_КЛЮЧ 500

Вторая команда пополняет баланс на 500 рублей (50000 копеек).

Админ: выдача ключей

admin.py читает путь к базе из MCP_DB (по умолчанию ./mcp.db).

Создать ключ с меткой и сразу пополнить баланс на 500 рублей:

bat
python admin.py create --label client1 --topup 500

Показать все ключи (ID, метка, баланс в рублях):

bat
python admin.py list

Пополнить баланс ключа на 200 рублей:

bat
python admin.py topup --key-id ID --amount 200

Показать последние заказы ключа:

bat
python admin.py orders --key-id ID

Открытый API-ключ показывается только один раз при создании.

Подключение MCP-клиентов

Во всех примерах замените путь на абсолютный путь к server.py. Для live-режима добавьте PROVIDER и FIVESIM_TOKEN в блок env.

Claude Desktop

Файл claude_desktop_config.json:

json
{  "mcpServers": {    "smsverbot": {      "command": "C:/path/to/.venv/Scripts/python.exe",      "args": ["C:/path/to/smsverbot-mcp/server.py", "--stdio"],      "env": {        "MCP_DB": "C:/path/to/smsverbot-mcp/mcp.db",        "PROVIDER": "mock"      }    }  }}

Cursor

Файл .cursor/mcp.json (или глобальный ~/.cursor/mcp.json) использует ту же схему mcpServers, что и Claude Desktop.

Claude Code

bash
claude mcp add smsverbot -- python server.py --stdio

Публичный HTTP-сервер:

bash
claude mcp add --transport http smsverbot https://kremledroid.duckdns.org/mcp

Для отдельной базы и live-провайдера передайте переменные окружения в оболочке перед запуском команды.

Hermes и другие MCP-клиенты

Зарегистрируйте stdio-сервер с командой python и аргументами server.py --stdio, либо подключите HTTP-транспорт по адресу http://127.0.0.1:8765/mcp. Передайте MCP_DB и при необходимости PROVIDER/FIVESIM_TOKEN через env.

Инструменты

Все инструменты принимают api_key первым аргументом. Если передать пустую строку, используется MCP_API_KEY из окружения. Успех: {"ok": true, ...}. Ошибка: {"ok": false, "error": "CODE", "message": "..."}. Коды ошибок: UNAUTHORIZED, INSUFFICIENT_FUNDS, RATE_LIMITED, DAILY_LIMIT, ORDER_NOT_FOUND, NO_NUMBERS, UNAVAILABLE, UPSTREAM_ERROR, INTERNAL.

ИнструментОписание
list_services(country="indonesia")Список доступных сервисов
list_countriesСписок доступных стран
get_price(service, country)Розничная цена без покупки и списания
buy_number(service, country)Купить номер и списать баланс
wait_for_code(order_id)Дождаться SMS-кода по заказу
cancel_order(order_id)Отменить заказ и вернуть деньги один раз
get_balance()Текущий баланс в копейках и рублях
order_history(limit=10)Последние заказы ключа
whoamiПроверить ключ: key_id и баланс в рублях

Чтение каталога, цен, баланса и истории никогда не списывает деньги.

Биллинг

  • Все суммы хранятся и списываются в целых копейках; денежные операции не используют float.
  • Закупочная цена cost_kop берётся у провайдера.
  • Розничная цена: price_kop = max(ceil(cost_kop * MCP_MARKUP), cost_kop + 1000), затем округление вверх до 100 копеек.
  • Покупка: сначала создаётся заказ в статусе waiting, затем баланс списывается атомарно. При нехватке средств заказ отменяется у провайдера и помечается cancelled.
  • wait_for_code только опрашивает провайдера. Таймаут переводит ответ в pending, деньги не возвращаются.
  • Отмена возвращает полную розничную цену, если заказ был в статусе waiting/open. Повторная отмена возвращает refunded_kop: 0.
  • Каждое изменение баланса фиксируется в таблице ledger: topup, debit, refund.

Лимиты

  • RATE_LIMIT_PER_15MIN — скользящее окно на ключ, по умолчанию 20 запросов покупки за 15 минут.
  • DAILY_CODE_LIMIT — число незавершённых отменой заказов на ключ за сутки UTC, по умолчанию 200.
  • CODE_WAIT_SECONDS — максимум ожидания кода, по умолчанию 120 секунд; опрос каждые 2 секунды.
  • Таймаут ожидания не освобождает номер и не возвращает деньги; для возврата вызовите cancel_order.

AUP: допустимое и запрещённое использование

Разрешено:

  • легальная регистрация и подтверждение собственных аккаунтов;
  • автоматизация тестирования собственных продуктов;
  • сценарии, где использование временного номера не нарушает правила сервиса и законодательство.

Запрещено:

  • мошенничество, спам, обход банов и массовое создание фейковых аккаунтов;
  • покупка номеров для преступлений или нарушения законов;
  • перепродажа доступа способом, скрывающим конечного пользователя от проверки;
  • использование сервиса лицами младше установленного законом возраста.

Оператор вправе заблокировать ключ и отказать в обслуживании при нарушении AUP. Пользователь обязан соблюдать правила целевых сервисов, включая их ограничения на виртуальные номера.

Проверка

bat
.venv/Scripts/python -m pytest -q tests/.venv/Scripts/python -m compileall -q .

Тест tests/test_mcp_client.py запускает сервер по stdio через официальный MCP-клиент, проверяет ровно 9 инструментов и читает баланс из общей тестовой базы.

Структура

  • config.py — настройки из окружения.
  • store.py — SQLite, ключи, заказы, ledger, лимиты.
  • providers/ — протокол, mock- и 5sim-адаптеры.
  • service.py — бизнес-логика цен, покупки, ожидания и отмены.
  • server.py — FastMCP, 9 инструментов и CLI.
  • admin.py, admin_service.py — админ-CLI и операции с ключами в рублях.
  • tests/ — сервисные тесты и интеграционный тест MCP-клиента.

来源:README.md,提交 a21e419

工具

9

list_services

List services available for SMS activation in a country.

输入参数api_keycountry

list_countries

List countries available for SMS activation.

输入参数api_key

get_price

Get the retail price for a service and country without buying.

输入参数api_keycountry必填service必填

buy_number

Buy a phone number and debit the prepaid balance.

输入参数api_keycountry必填service必填

wait_for_code

Wait for an SMS code for an existing order.

输入参数api_keyorder_id必填

cancel_order

Cancel an order and refund the balance exactly once.

输入参数api_keyorder_id必填

get_balance

Return the current prepaid balance.

输入参数api_key

order_history

Return recent orders for the API key.

输入参数limitapi_key

whoami

Verify an API key and return its id and balance in rubles.

输入参数api_key

版本历史

3
  1. v0.1.3最新Oct 22, 2026
  2. v0.1.2Oct 21, 2026
  3. v0.1.0Oct 20, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。