API VEGA

DialMCP Connector

Дайте вашему AI‑агенту телефон.

Open-source коннектор для [DialMCP] — размещённого MCP-сервера, который позволяет AI‑агентам осуществлять реальные телефонные звонки с вашего собственного подтверждённого номера.


Что это такое

DialMCP — удалённый MCP-сервер по адресу https://mcp.dialmcp.com/mcp. Любой клиент, который поддерживает Streamable HTTP с OAuth, может подключиться напрямую — никаких установок и API-ключей. Этот пакет не нужен таким клиентам.
У этого репозитория две цели:

  • Стандартный сквозной мост для клиентов, поддерживающих только локальные серверы. Некоторые MCP‑клиенты всё ещё не могут общаться с удалёнными серверами. dialmcp-connector запускает локальный stdio‑сервер, который проксирует к размещённой точке доступа и сам обрабатывает OAuth‑браузерный поток для вас.

  • Открытая, каноническая документация по интеграции DialMCP — схемы инструментов, конфигурации клиентов, регистровый манифест server.json и модель безопасности — в одном проверяемом месте.

Сам сервис вызовов, размещённый на стороне сервиса, закрыт по лицензии. Этот коннектор MIT‑лицензирован и не содержит проприетарной логики: это тонкий транспортный адаптер над общедоступной точкой доступа.

Быстрый старт

Прямое подключение (предпочтительно)

Если ваш клиент поддерживает удалённые MCP‑серверы, пропустите этот пакет полностью:

URL:        https://mcp.dialmcp.com/mcp
Transport:  Streamable HTTP
Auth:       OAuth 2.1 (sign in with your phone number)

Claude Code

claude mcp add --transport http dialmcp https://mcp.dialmcp.com/mcp
# add --scope user to enable it in every project

Codex~/.codex/config.toml

[mcp_servers.dialmcp]
url = "https://mcp.dialmcp.com/mcp"

claude.ai / Claude Desktop
Settings → Connectors → Add custom connector → paste https://mcp.dialmcp.com/mcp.

Gamut
Settings → Connectors → Add MCP server → paste the URL (HTTP / OAuth) → complete SMS verification.

При первом подключении откроется окно браузера для входа. Подтвердите ваш номер телефона с помощью SMS‑кода — этот номер станет вашим caller ID.

Через этот коннектор (клиенты, работающие только через stdio)

npx dialmcp-connector

Или в конфигурации MCP‑клиента:

{
  "mcpServers": {
    "dialmcp": {
      "command": "npx",
      "args": ["-y", "dialmcp-connector"]
    }
  }
}

См. examples/ для готовых конфигураций, которые можно вставлять.

Инструменты

ИнструментОписание
place_callЗапуск исходящего звонка на номер в США или Канаде с заданной целью. Возвращает немедленно идентификатор звонка — звонок выполняется асинхронно.
get_callПолучение текущего состояния звонка: статус, ход выполнения в реальном времени, а по завершении — расшифровка, ссылка на запись и структурированное решение. Осуществляйте опрос после place_call.
end_callНемедленно завершить выполняющийся звонок.
list_callsСписок недавних звонков для аутентифицированного пользователя с их статусами и результатами.

API задумано как асинхронное: place_call возвращает моментально идентификатор звонка, и ваш агент опрашивает get_call, поэтому длительный звонок в несколько минут не приводит к превышению тайм‑аутов клиента.

По завершении звонка get_call возвращает структурированное решение — achieved, partially_achieved, или not_achieved — с резюме, любыми обязательствами со стороны оппонента, предложениями по следующим шагам, покадровой расшифровкой и подписанной ссылкой на аудиозапись.

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

Модель безопасности

Каждая защита реализуется на стороне сервера, а не в инструкциях модели, которыми агент мог бы обойти.

  • Раскрытие. Каждый звонок начинается с заявления о том, что это AI‑помощник, для кого звонок и что линия записывается — до выполнения задачи. Соответствие независимым аудитом проверяется по каждому транскрипту и регистрируется. Агент никогда не отрицает, что он AI, и завершает звонок, если абонент возражает.

  • Ваш реальный номер. Звонки отображают ваш собственный SMS‑проверенный caller ID. Подмены не применяются, и получатели могут перезвонить вам.

  • Ограничения по скорости. 1 одновременный звонок · 3/час · 10/сутки · максимум 2/сутки на один и тот же получатель · 6‑минут по умолчанию и твёрдый лимит 10 минут, контролируемый системой. Массовые вызовы невозможны по конструкции.

  • Время и место. 8:00–21:00 по местному времени получателя (соответствует TCPA), только США и Канада. Неизвестные временные зоны рассматриваются консервативно.

  • Необходимый чёрный список. Экстренные службы (911), платные линии (900/976) и диапазоны с высоким уровнем мошенничества — набираются нельзя.

  • Постоянные отказы. Запросы не звонить сохраняются, проходят повторную независимую проверку транскрипции, сохраняются навсегда и распространяются на всех пользователей. Публичная самосервисная отписка по адресу https://mcp.dialmcp.com/opt-out — учётной записи не требуется.

  • Объективность. Независимый проверяющий оценивает цель каждого звонка на предмет harassment, обмана или мошенничества до набора номера. Агент сообщает только факты, данные в задаче.

  • Запретные использования. Телемаркетинг, холодные обращения, робоклики, опросы, лидогенерация, взыскание долгов и политические обращения запрещены условиями использования — Terms.

Полная детальная информация: https://dialmcp.com/safety.html

Требования

  • Node.js 18 и выше (только если вы используете stdio‑мост)

  • Номер мобильного американского или канадского оператора для SMS‑верификации

  • Пользователям должно быть 18 лет или старше

Ссылки

Выпуски

Каждый релиз публикуется в двух местах: в npm (dialmcp-connector) и в официальном MCP Registry (com.dialmcp/dialmcp). Оба процессами автоматически управляются через .github/workflows/release.yml.

Cutting a release

  • Обновите version в обоих package.json и server.jsonnpm run validate:manifest выдаёт ошибку, если версии расходятся, и CI запускается при каждом пуше.

  • Слияние в ветку main.

  • Запустите workflow релиза вручную (Actions → Release → Run workflow, dry_run оставьте включённым) и доведите до зелёного. Это упакует tarball и валидирует server.json по схеме живого реестра без публикации.

  • Опубликуйте GitHub Release с тегом vX.Y.Z. Тег должен совпадать с package.json, иначе workflow остановит публикацию.

Шаг 3 стоит двух минут: версии реестра неизменны и не подлежат отмене публикации. Неправильная версия может быть заменена только более новой или помечена как устаревшая.

Что делает workflow

ЗадачаРаботает наШаги
publishрелизы и ручные прогоныtypecheck → validate manifest → build → smoke test → tag/version match → npm publish --provenance → mcp-publisher validate
registryтолько релизыожидание распространения npm → mcp-publisher login dns → mcp-publisher publish

--provenance прикрепляет подписанное подтверждение, связывающее tarball с коммитом и шагом workflow, который его собрал, что и объясняет необходимость id-token: write.

Публикация реестра — отдельная задача по двум причинам. Нужно подождать распространения npm: регистр проверяет право собственности, получив недавно опубликованную версию и прочитав её поле mcpName, которое возвращает 404 до распространения npm (задача делает повторные попытки примерно ~2,5 минуты). И она держит ключ подписи, который относится ко всему пространству com.dialmcp, а не к этому пакету — поэтому он находится в защищённой среде. Разделение этого окружения от задачи публикации целеназначено: политика веток допускает только теги вида v*, и применение его ко всем задачам сразу могло бы блокировать ручные прогоны из main.

Одноразовая настройка

ЧтоГдеЗачем
NPM_TOKENсекрет репозиторияавтоматизационный токен с правами публикации на dialmcp-connector
MCP_REGISTRY_PRIVATE_KEYсекрет в окружении выпускаключ Ed25519 в base64; аутентифицирует публикацию реестра
окружение выпускаполитика ветки → теги → v*хранит ключ пространства имён вне незаметных прогонов
v=MCPv1; k=ed25519; p=TXT-запись на вершине dialmcp.comкак реестр подтверждает владение доменом

TXT‑запись размещается на bare-домене, по стилю SPF — селектор _mcp. не читается и вызывает ошибку подписи. Подписи имеют временной интервал около ±15 секунд, поэтому часы раннера должны быть точны.

Внесение изменений

Ошибки и пулреквесты приветствуются для коннектора, документации и конфигураций клиентов. Ошибки в размещённой службе лучше отправлять на support@dialmcp.com. Пожалуйста, прочитайте SECURITY.md перед тем, как сообщать о каких-либо вопросах, связанных с безопасностью.

Лицензия

MIT © Datawizz Inc. См. LICENSE.