Zapnoty — MCP-сервер для AI-агентов

Документация API

REST API для уведомлений через Telegram и Max. Подписчики, OTP, рассылки, формы, helpdesk.

MCP-сервер для AI-агентов

MCP-сервер Zapnoty подключает сервис уведомлений к AI-агентам (Claude Code, Cursor, Codex и другим) по протоколу Model Context Protocol. Агент получает больше 100 инструментов: отправка сообщений в Telegram и Max, OTP-коды, рассылки, формы, helpdesk, файлы, настройка проекта.

Подключение через OAuth (рекомендуется)

Адрес сервера — https://mcp.zapnoty.com/mcp (Streamable HTTP). Сервер поддерживает OAuth 2.1 с динамической регистрацией клиентов (DCR) и PKCE: просто добавьте адрес в клиент — при первом обращении он сам откроет браузер. В кабинете Zapnoty вы выберете проект, зададите имя и срок действия ключа и подтвердите доступ кодом — агент готов к работе. Ключ не копируется руками и не появляется в тексте диалога.

Claude Code:

claude mcp add --transport http zapnoty https://mcp.zapnoty.com/mcp

Cursor:

// .cursor/mcp.json
{
"mcpServers": {
"zapnoty": { "url": "https://mcp.zapnoty.com/mcp" }
}
}

VS Code (Copilot, Agent mode):

// .vscode/mcp.json — ключ "servers", не "mcpServers"
{
"servers": {
"zapnoty": { "type": "http", "url": "https://mcp.zapnoty.com/mcp" }
}
}

OpenAI Codex CLI:

# ~/.codex/config.toml
[mcp_servers.zapnoty]
url = "https://mcp.zapnoty.com/mcp"

OpenCode:

// opencode.json
{
"mcp": {
"servers": {
"zapnoty": { "type": "remote", "url": "https://mcp.zapnoty.com/mcp" }
}
}
}

Windsurf:

// ~/.codeium/windsurf/mcp_config.json — через mcp-remote (OAuth-обёртка)
{
"mcpServers": {
"zapnoty": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.zapnoty.com/mcp"]
}
}
}

Управление доступом и отзыв

  • Выданный через OAuth доступ — это обычный API-ключ проекта (zn_live_…): он виден в кабинете в разделе «MCP» и в настройках проекта → «API-ключи» с бейджем MCP.
  • Отзыв действует немедленно — агент получает 401 и предложит переавторизоваться.
  • Срок действия ключа задаётся на консент-экране (от 1 часа до бессрочного); по истечении клиент штатно проходит OAuth заново.

Альтернатива: API-ключ в заголовке

Для CI/headless-окружений, где браузерный OAuth неудобен, передайте API-ключ проекта напрямую:

{
"mcpServers": {
"zapnoty": {
"url": "https://mcp.zapnoty.com/mcp",
"headers": { "Authorization": "Bearer zn_live_..." }
}
}
}

Setup-endpoint: проект «под ключ» без аккаунта

Публичный endpoint /mcp/setup — флоу виртуальных проектов: AI-агент создаёт и настраивает проект для пользователя, у которого ещё нет аккаунта Zapnoty. zapnoty_create_virtual_project возвращает временный ключ zn_virt_… (передаётся аргументом api_key в setup-инструменты) и accept_url — пользователь переходит по ссылке и нажимает «Принять». До Accept доступна только настройка (шаблоны, разрешения, теги, вебхуки); runtime — после Accept по zn_live_-ключу.

POST https://mcp.zapnoty.com/mcp/setup
tools/call → zapnoty_create_virtual_project
{
"owner_email": "user@example.com",
"name": "Мой проект",
"slug": "my-project"
}

Доступные инструменты

  • Настройка — шаблоны, разрешения, теги (полный CRUD), webhook-эндпоинты, авто-сообщения.
  • Runtime — отправка сообщений, batch, рассылки, OTP, события, auth-сессии, тикеты helpdesk, согласования.
  • Планировщик — отложенные сообщения, drip-цепочки, повторяющиеся рассылки.
  • Формы — CRUD форм и маршрутов доставки, чтение заявок.
  • Конфигурация helpdesk — настройки модуля, SLA, типы обращений, готовые ответы, правила маршрутизации.
  • Чтение — подписчики, разрешения подписчиков, журнал аудита, сводка настройки.

Набор инструментов совпадает с REST /v1-API. Cabinet-only операции (управление командой, подключение custom-бота, выпуск ключей) через MCP недоступны.

Безопасность

  • OAuth 2.1: обязательный PKCE S256, одноразовые коды, консент подтверждается OTP-кодом в кабинете.
  • Ключ передаётся только в Authorization-заголовке — не появляется в тексте диалога с нейросетью и не оседает в логах чата.
  • В setup-флоу агент не может отправлять сообщения, пока пользователь не подтвердит проект кнопкой «Принять»; временный ключ zn_virt_ живёт 24 часа.
  • Любой выданный ключ виден в кабинете и отзывается в один клик.

Связанные разделы