Подключение агентов к MultiVoice MCP

Агент не логинится сам: пишет URL в конфиг, человек проходит OAuth в браузере.

Платные действия всегда требуют серверной котировки и confirmation_handle. Агент должен показать сумму человеку перед execute_create.

URL MCP

https://db.multivoice.ai/mcp

Что можно заказать через MCP

  • Классическая аудиокнига order_type_id 1 — Профессиональная аудиокнига с многоголосой ИИ-озвучкой на русском, немецком, английском, французском или латышском. Результат — аудио по главам.
  • Субтитры order_type_id 4 — Автоматическое создание субтитров из аудио или видео. language_from — только из get_create_options languages[]: af am ar as az ba be bg bn bo br bs ca cs cy da de el en es et eu fa fi fo fr gl gu ha he hi hr ht hu hy id is it ja jv ka kk km kn ko la lb ln lo lt lv mg mi mk ml mn mr ms mt my nb ne nl nn no oc pa pl ps pt ro ru sa sd si sk sl sn so sq sr su sv sw ta te tg th tk tl tr tt uk ur uz vi yi yo zh. Прочие ISO (sm, zu, …) сервер отвергает (invalid_create_payload). Когда распознавание готово (статус 3/3), скачайте шесть файлов оригинальной дорожки через get_artifacts / prepare_download: простой, по спикерам и полный × SRT и VTT (artifact_type_id 115–120).
  • Расшифровка order_type_id 5 — Расшифровка телефонных звонков, лекций, собраний и вебинаров. Тот же language_from, что у субтитров: af am ar as az ba be bg bn bo br bs ca cs cy da de el en es et eu fa fi fo fr gl gu ha he hi hr ht hu hy id is it ja jv ka kk km kn ko la lb ln lo lt lv mg mi mk ml mn mr ms mt my nb ne nl nn no oc pa pl ps pt ro ru sa sd si sk sl sn so sq sr su sv sw ta te tg th tk tl tr tt uk ur uz vi yi yo zh.
  • Дубляж order_type_id 7 — Дубляж по оригинальному видео или аудио. language_from (язык речи в фильме) — один из: af am ar as az ba be bg bn bo br bs ca cs cy da de el en es et eu fa fi fo fr gl gu ha he hi hr ht hu hy id is it ja jv ka kk km kn ko la lb ln lo lt lv mg mi mk ml mn mr ms mt my nb ne nl nn no oc pa pl ps pt ro ru sa sd si sk sl sn so sq sr su sv sw ta te tg th tk tl tr tt uk ur uz vi yi yo zh. languages_to только de en fr lv ru (немецкий, английский, французский, латышский, русский).

Субтитры и дубляж заказываются в двух режимах: полностью автоматически без проверки человеком (human_check не передаётся или "self"; быстрее и дешевле) или с проверкой носителем языка (human_check = исходный язык, human_translation_check = целевые языки; дороже и дольше). Агент должен спросить человека, какой режим нужен; цену показывает котировка.

Скачивание — субтитры типа 4

Когда распознавание готово (статус 3, подстатус 3), список файлов — orders.get_artifacts, ссылка — orders.prepare_download (scope artifacts:download). Только оригинальная дорожка; пустые реплики и SyntOriginal пропускаются. HTTP Range не поддерживается.

  • 115 export_srt_simple — SRT простой
  • 116 export_vtt_simple — VTT простой
  • 117 export_srt_speaker — SRT по спикерам
  • 118 export_vtt_speaker — VTT по спикерам
  • 119 export_srt_full — SRT полный (спикер, пол, роль)
  • 120 export_vtt_full — VTT полный (спикер, пол, роль)

Примеры запросов человека

  • «Сделай многоголосую аудиокнигу на русском по моей книге и пришли главы.»
  • «Скачай простые, по спикерам и полные SRT/VTT для готового заказа субтитров.»
  • «Расшифруй запись вебинара с Google Drive.»
  • «Расшифруй этот локальный MPEG/аудиофайл с компьютера. Сначала покажи цену.»
  • «Сделай дубляж этого видео на немецкий и французский с проверкой носителем. Сначала покажи цену.»

Канонические параметры

Config namemultivoice
MCP URLhttps://db.multivoice.ai/mcp
TransportNo standalone GET stream. MCP requests use POST; responses may be JSON or SSE-framed according to negotiated protocol/client
GET /mcpGET /mcp returns 405 with Allow: POST — expected
Resourcehttps://db.multivoice.ai/mcp
Issuerhttps://db.multivoice.ai
PRMhttps://db.multivoice.ai/.well-known/oauth-protected-resource/mcp
AS metadatahttps://db.multivoice.ai/.well-known/oauth-authorization-server
Authorizehttps://db.multivoice.ai/oauth/authorize
Tokenhttps://db.multivoice.ai/oauth/token
RegisterCIMD primary; DCR fallback at https://db.multivoice.ai/oauth/register
AuthOAuth 2.1 Authorization Code + PKCE S256, public client
MCP revisions2025-11-25 (initialize negotiation), 2026-07-28 (per-request revision, validated). Streamable HTTP, Stateless.
Quote TTL5 minutes; confirmation_handle from prepare_create
Sellable via MCPOrder types 1 (classic audiobook), 4 (subtitles), 5 (transcription), 7 (dubbing). Types 2 and 3 are closed via MCP.

Cursor

  1. Settings → MCP → Add HTTP server.
  2. URL: https://db.multivoice.ai/mcp, name: multivoice.
  3. Or project .cursor/mcp.json:
{
  "mcpServers": {
    "multivoice": {
      "url": "https://db.multivoice.ai/mcp"
    }
  }
}

Connect → browser OAuth (human login). Do not put API keys or JWTs in JSON. First smoke: multivoice.account.get.

Codex

codex mcp add multivoice --url https://db.multivoice.ai/mcp
codex mcp login multivoice

Правила для агентов

  • Не используйте GET на /mcp как транспорт (405 — норма). Ответ на POST может быть JSON или SSE.
  • Не запускайте stdio/npx-обёртки. Не вызывайте LLM/синтез вместо MCP.
  • В конфиг клиента пишите только URL. Не вставляйте токены, пароли, CLIENT_API_KEY.
  • Остановитесь и попросите человека Connect / codex mcp login.
  • Продавайте только типы заказа 1, 4, 5 и 7. Типы 2 и 3 через MCP закрыты.
  • Заказы: orders.get_create_options → URL: sources.inspect; локальный файл: sources.prepare_upload (имя + размер + длительность, без пути) → orders.prepare_create → покажите сумму человеку → orders.execute_create с quote_id, confirmation_handle и новым operation_id. Для локального файла после execute загрузите чанки 10 MiB + MD5 на /mcp-uploads (uploads:write выдаётся вместе с orders:create), затем uploads.get_status. Повтор с тем же operation_id не создаёт второй заказ.
  • Субтитры типа 4 скачивайте через orders.get_artifacts, затем orders.prepare_download. Шесть файлов оригинальной дорожки: 115 SRT простой, 116 VTT простой, 117 SRT по спикерам, 118 VTT по спикерам, 119 SRT полный, 120 VTT полный. Готово при статусе распознавания 3/3. Переведённых дорожек в этом каталоге нет.
  • Не вызывайте prepare_action / execute_action (выключены).
  • Пополнение: billing.prepare_topup с topup_amount (EUR). Покажите сумму человеку; верните checkout_url. Платит человек в браузере. Это не orders.execute_create и не списание с кошелька.
  • Коды языков только из get_create_options languages[], нижний регистр (ru, не RU). Коды вроде sm не принимаются.
  • Имена tools, ключи JSON и команды оболочки остаются на английском.

Инструменты

ToolAccessCreates orderConfirmationScope
account.getreadno—account:read
billing.get_walletreadno—billing:read
billing.prepare_topupwritenoconfirmation_handlebilling:read
services.listreadno—services:read
orders.listreadno—orders:history
orders.getreadno—orders:read
orders.get_statusreadno—orders:read
orders.get_actionsreadno—orders:read
orders.get_create_optionsreadno—orders:create
orders.get_artifactsreadno—orders:read
orders.get_operationreadno—orders:read
uploads.get_statusreadno—uploads:read
sources.inspectreadno—orders:create
sources.prepare_uploadreadno—orders:create
orders.prepare_downloadwriteno—artifacts:download
orders.prepare_createwriteno—orders:prepare
orders.execute_createwriteyesconfirmation_handleorders:execute

Примеры

// 1) Smoke
multivoice.account.get

// 2) Audiobook (type 1)
multivoice.orders.get_create_options { "order_type_id": 1 }
multivoice.orders.prepare_create { "order_type_id": 1, "book": { ... } }

// 3) Subtitles (type 4), URL source
multivoice.sources.inspect { "source_type_id": ..., "source_url": "https://www.youtube.com/watch?v=..." }
multivoice.orders.prepare_create {
  "order_type_id": 4,
  "source_handle": "...",
  "language_from": "ru",           // must be from get_create_options languages[]
  "human_check": "self"            // or "<language.id>" for native-speaker review
}

// 4) Transcription (type 5), local file — never send a filesystem path
multivoice.sources.prepare_upload {
  "source_type_id": 12,
  "file_name": "meeting.mpeg",
  "file_size_bytes": 12861888,
  "duration_seconds": 1607.7
}
multivoice.orders.prepare_create { "order_type_id": 5, "source_handle": "...", "language_from": "ru" }

// show total to human, then:
multivoice.orders.execute_create {
  "quote_id": "...",
  "confirmation_handle": "...",
  "operation_id": "<new UUID; reuse on retry>"
}
// local file only: POST /mcp-uploads/init|chunk|complete (10 MiB + MD5), poll uploads.get_status

// 5) Download type-4 subtitles when status is 3/3
multivoice.orders.get_artifacts { "order_code": "SO-…" }
multivoice.orders.prepare_download { "order_code": "SO-…", "artifact_type_id": 115 }
// 115 simple SRT · 116 simple VTT · 117 speaker SRT · 118 speaker VTT · 119 full SRT · 120 full VTT

Also see /llms.txt for crawlers and agents.