APIНачало работы

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

На сайте «Вручай» работает сервер MCP (Model Context Protocol). Агенту не нужно изучать REST и собирать запросы руками: он видит готовые инструменты — «создать документ», «свёрстать лист», «посмотреть превью», «выпустить», «дать ссылку на архив» — и вызывает их сам. Здесь собрано, как подключить сервер к Claude, ChatGPT, Claude Code, Cursor, VS Code, Codex, Gemini CLI и другим клиентам, какие инструменты он даёт и что делать, если подключение не заработало.

Быстрее всего — поручить подключение самому агенту. Скажите ему одну фразу:

text
Подключи себе сервис «Вручай» по инструкции https://vruchay.ru/docs/connect.md и проверь подключение вызовом get_account.

Агент в Claude Code, Codex, Gemini CLI, VS Code или Cursor добавит сервер сам и попросит вас один раз войти в кабинет и нажать «Разрешить». В Claude.ai и ChatGPT он подскажет, где нажать. Инструкция для агента — connect.md.

Адрес

https://vruchay.ru/mcp
  • Транспорт — Streamable HTTP. Сервер отвечает на каждый POST сразу одним JSON, без потока событий и без сессий: заголовок Mcp-Session-Id не выдаётся и не нужен.
  • GET и DELETE отвечают 405 — так и задумано: уведомлений сервер не шлёт, закрывать нечего.
  • Версии протокола: новая 2026-07-28 (без рукопожатия, с server/discover) и прежние 2025-11-25, 2025-06-18, 2025-03-26 (с initialize) — на одном адресе, клиент ничего не настраивает.
  • Сервер даёт инструменты (tools) и готовые задания (prompts). Ресурсов и пачек запросов нет.
  • Права и данные — те же, что у REST по тому же токену: инструменты вызывают наш же API изнутри сервера, поэтому роли, возможности плана, проверка полей и лимиты работают одинаково.

Протокол по шагам — в справочнике: `POST /mcp`.

Готовые настройки показывает и кабинет: карточка «ИИ-агенты» в Настройки → Интеграции и API и блок «Подключить ИИ-агента» на главной базы знаний (https://vruchay.ru/docs) — команды для каждого клиента, кнопки установки в Cursor и VS Code и промпт для агента.

Два способа войти

Вход через OAuth — основной

Так подключаются все клиенты из списка ниже — без токена:

  1. Клиент обращается к /mcp без токена и получает 401 с заголовком WWW-Authenticate: Bearer resource_metadata="https://vruchay.ru/.well-known/oauth-protected-resource/mcp".
  2. По этому адресу он находит сервер авторизации, регистрируется сам (Dynamic Client Registration) и открывает в браузере https://vruchay.ru/oauth/authorize.
  3. Человек входит в кабинет (если ещё не вошёл) и видит, какое приложение просит доступ, к какой организации и куда вернётся разрешение.
  4. Выбирает права — «Выпускать документы» или «Полный доступ» — и нажимает «Разрешить».
  5. Клиент получает токен и дальше работает с ним сам.

Разрешить может только владелец или управляющий, и только если доступ по API входит в план (на бесплатной пробе он есть). Подключение появляется в «Токенах API» строкой «Агент «Claude»» (название — то, которым представилось приложение); отключить его — кнопка «Отозвать» там же. Подключение личное: если человека, который его разрешил, убирают из организации или понижают до сотрудника, агент отключается (токены, выданные руками, остаются — они принадлежат организации). Повторное подключение того же приложения тем же человеком заменяет прежний токен, а не добавляет второй; разные приложения на одном компьютере (Claude Code и Codex) друг друга не вытесняют. Подключений через OAuth у организации — не больше десяти, отдельно от десяти обычных токенов.

Адреса этого входа описаны в справочнике: описание сервера авторизации, регистрация клиента; как он устроен и чем ограничен — в Аутентификации.

Клиент представляется автоматической регистрацией (Dynamic Client Registration, DCR): Claude, ChatGPT и остальные делают это сами. Если приложение спрашивает, как ему представиться, выберите DCR («Register automatically»). Вход по адресу описания клиента (Client ID Metadata Document, CIMD) сервер не объявляет: описания Claude и ChatGPT лежат на их сайтах, а те закрыты для российских адресов.

Токен API — для программ без OAuth

Нужен своим скриптам, интеграциям и клиентам, которые не умеют входить через OAuth. Токен выдаёт владелец или управляющий в кабинете: Настройки → Интеграции и API → Токены API → «Выдать токен». Права на выбор:

  • «Выпускать документы» (member) — документы, вёрстка, получатели, выпуск, письма;
  • «Полный доступ» (admin) — то же плюс формы выдачи, домены почты, удаление, отзыв и перевыпуск документов.

Полный токен показывается один раз. Агент передаёт его в каждом запросе:

Authorization: Bearer vru_ВАШ_ТОКЕН

Cookie кабинета на /mcp не принимаются: вход только заголовком. Подробнее о токенах — в Аутентификации.

Настройка клиентов

Ниже — проверенные настройки на октябрь 2026 года. Интерфейсы приложений меняются; если пункт меню называется иначе, ищите раздел про коннекторы или серверы MCP. У каждого клиента сначала вход через OAuth — токен не нужен. Вариант с токеном — для программ без OAuth: токен кладите в переменную окружения VRUCHAY_TOKEN, а не в файл, который попадёт в репозиторий.

Claude.ai и Claude Desktop

Вход через OAuth, токен не нужен. Коннектор привязан к учётной записи Claude: добавленный на claude.ai, он появляется и в Claude Desktop.

  1. Откройте Customize → Connectors (https://claude.ai/customize/connectors).
  2. Нажмите Add custom connector (на тарифах Pro и Max — «+ Add» → «Add custom connector»).
  3. Название — «Вручай», адрес — https://vruchay.ru/mcp.
  4. Authentication — «Sign in now» или «Sign in when needed». OAuth client — «Register automatically». Вариант «Use Claude's published identity» у нас не сработает: описание клиента Claude лежит на claude.ai, а тот закрыт для российских адресов. Если диалог одним экраном, с полями Client ID и Client Secret в «Advanced settings», оставьте их пустыми.
  5. Нажмите Add, затем Connect: откроется страница «Вручай» — войдите и разрешите доступ.
  6. В чате: кнопка + → Connectors → включите «Вручай».

На бесплатном тарифе Claude можно добавить один свой коннектор. На тарифах Team и Enterprise коннектор добавляет владелец рабочего пространства: Organization settings → Connectors → «Add» → «Custom» → «Web», с тем же адресом; каждый участник потом нажимает Connect у себя в Customize → Connectors и входит в «Вручай» сам.

У некоторых организаций Claude есть раздел Request headers (бета). Через него можно подключиться токеном вместо входа: Authentication — «No sign-in», заголовок authorization, значение Bearer vru_ВАШ_ТОКЕН (со словом Bearer и пробелом). Тогда все участники рабочего пространства Claude работают одним токеном.

Источник: Add a connector that isn't in the directory.

ChatGPT

Вход через OAuth. Свой сервер MCP в ChatGPT подключается в режиме разработчика, и права на это зависят от тарифа:

  • Business — режим разработчика включает себе сам владелец или администратор рабочего пространства: Workspace Settings → Permissions & Roles → Connected Data → «Developer mode / Create custom MCP connectors»;
  • Enterprise и Edu — Settings → Apps → Advanced settings → Developer mode;
  • Plus и Pro — режим разработчика есть, но полная поддержка MCP с изменяющими инструментами объявлена для Business, Enterprise и Edu; проверьте на своей учётной записи.

Без поддержки изменяющих инструментов агент сможет только смотреть: документы, реестр, превью.

Подключение:

  1. Откройте Plugins (https://chatgpt.com/plugins), нажмите + → Add custom MCP server. В прежнем интерфейсе — Settings → Apps → «Create app».
  2. Название — «Вручай», описание — «Выпуск именных сертификатов и грамот».
  3. Connection — Public endpoint, адрес https://vruchay.ru/mcp.
  4. Authentication — OAuth. Если ChatGPT предлагает выбрать способ регистрации клиента, выберите динамическую регистрацию (DCR).
  5. Подтвердите предупреждение о рисках («I understand and want to continue») и создайте («Create as a plugin»). ChatGPT откроет страницу «Вручай» — войдите и разрешите доступ.
  6. В новом чате наберите @ и выберите «Вручай».

Изменяющие инструменты ChatGPT выполняет только после вашего подтверждения. Инструменты, которые только читают, помечены у нас readOnlyHint и подтверждения не просят. Если инструменты на сервере поменялись — Plugins → «Вручай» → Refresh.

Источники: Add custom MCP server, Connect from ChatGPT, Developer mode and MCP apps in ChatGPT.

Claude Code

Одна команда; Claude Code может выполнить её сам, если попросить:

bash
claude mcp add --transport http --scope user vruchay https://vruchay.ru/mcp

Затем войдите: в Claude Code — /mcp → «vruchay» → Authenticate, или в терминале claude mcp login vruchay. Откроется страница «Вручай» — войдите и разрешите доступ. --scope user делает сервер видимым во всех проектах; без него — только в текущем.

Подсказки сервера видны командами: /mcp__vruchay__design_sheet, /mcp__vruchay__issue_from_table и другие.

С токеном — для общего на команду .mcp.json в корне проекта (--scope project): токен не вписывают, а ссылаются на переменную — каждый держит свою:

json
{
  "mcpServers": {
    "vruchay": {
      "type": "http",
      "url": "https://vruchay.ru/mcp",
      "headers": { "Authorization": "Bearer ${VRUCHAY_TOKEN}" }
    }
  }
}

Если задан свой заголовок Authorization, Claude Code пользуется им и OAuth не запускает.

Проверка: /mcp показывает «vruchay» подключённым, инструменты называются mcp__vruchay__get_account и так далее.

Источник: Connect Claude Code to tools via MCP.

Cursor

Проще всего — кнопкой «Добавить в Cursor» в кабинете (карточка «ИИ-агенты»). Вручную — ~/.cursor/mcp.json (для всех проектов) или .cursor/mcp.json (для одного):

json
{
  "mcpServers": {
    "vruchay": { "url": "https://vruchay.ru/mcp" }
  }
}

Без заголовков Cursor предложит войти через OAuth: у сервера в настройках MCP появится кнопка входа.

С токеном — "headers": { "Authorization": "Bearer ${env:VRUCHAY_TOKEN}" }. Переменную задайте в профиле оболочки или в системе: envFile у удалённых серверов Cursor не работает, а запущенный из Dock Cursor профиль оболочки не читает.

Источники: Cursor — Model Context Protocol, MCP Install Links.

VS Code и GitHub Copilot

Кнопкой «Добавить в VS Code» в кабинете или одной командой — сервер добавится в профиль пользователя:

bash
code --add-mcp '{"name":"vruchay","type":"http","url":"https://vruchay.ru/mcp"}'

При первом запуске сервера VS Code спросит, доверяете ли вы ему, и предложит войти через OAuth. Инструменты доступны в чате Copilot в режиме агента.

С токеном — .vscode/mcp.json в проекте. Токен VS Code спросит при первом запуске сервера и сохранит в защищённом хранилище — в файл он не попадёт:

json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "vruchay-token",
      "description": "Токен API «Вручай»",
      "password": true
    }
  ],
  "servers": {
    "vruchay": {
      "type": "http",
      "url": "https://vruchay.ru/mcp",
      "headers": { "Authorization": "Bearer ${input:vruchay-token}" }
    }
  }
}

Для всех проектов — палитра команд → «MCP: Open User Configuration», тот же фрагмент.

Источник: MCP configuration reference.

OpenAI Codex CLI

bash
codex mcp add vruchay --url https://vruchay.ru/mcp
codex mcp login vruchay

Первая команда пишет сервер в ~/.codex/config.toml, вторая открывает вход.

С токеном — в ~/.codex/config.toml только имя переменной окружения, сам токен задайте перед запуском: export VRUCHAY_TOKEN=vru_ВАШ_ТОКЕН.

toml
[mcp_servers.vruchay]
url = "https://vruchay.ru/mcp"
bearer_token_env_var = "VRUCHAY_TOKEN"

Источник: Codex — MCP.

Windsurf (Devin Desktop)

Windsurf со 2 июня 2026 года называется Devin Desktop. Файл настроек MCP — mcp_config.json; где он лежит, зависит от версии (~/.config/devin/mcp_config.json в новых, ~/.codeium/windsurf/mcp_config.json в прежних), поэтому надёжнее открыть его из настроек MCP в самом приложении:

json
{
  "mcpServers": {
    "vruchay": {
      "serverUrl": "https://vruchay.ru/mcp",
      "headers": { "Authorization": "Bearer ${env:VRUCHAY_TOKEN}" }
    }
  }
}

Источники: Devin Desktop — MCP, Devin Desktop FAQ.

Gemini CLI

bash
gemini mcp add --transport http --scope user vruchay https://vruchay.ru/mcp

Затем в Gemini CLI — /mcp auth vruchay: откроется вход в «Вручай». Без --scope user сервер запишется в настройки текущего проекта.

С токеном — в ~/.gemini/settings.json (или .gemini/settings.json в проекте); для Streamable HTTP ключ — httpUrl, а не url; переменные окружения подставляются в любые строки файла:

json
{
  "mcpServers": {
    "vruchay": {
      "httpUrl": "https://vruchay.ru/mcp",
      "headers": { "Authorization": "Bearer $VRUCHAY_TOKEN" }
    }
  }
}

Для бесплатных учётных записей и Google One Gemini CLI с 18 июня 2026 года заменён на Antigravity CLI — там настройка своя.

Источники: Gemini CLI — MCP servers, Gemini CLI — configuration.

Любой другой клиент

Подойдёт любой клиент MCP с транспортом Streamable HTTP: адрес https://vruchay.ru/mcp. Клиенты с OAuth находят вход сами по /.well-known/oauth-protected-resource/mcp и /.well-known/oauth-authorization-server; остальным — заголовок Authorization: Bearer vru_ВАШ_ТОКЕН.

Если клиент умеет запускать только локальные серверы (stdio), поможет сторонний мост mcp-remote — он запускается через npx и пересылает вызовы на удалённый сервер:

json
{
  "mcpServers": {
    "vruchay": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://vruchay.ru/mcp",
        "--header",
        "Authorization:${VRUCHAY_AUTH}"
      ],
      "env": { "VRUCHAY_AUTH": "Bearer vru_ВАШ_ТОКЕН" }
    }
  }
}

Пробелов вокруг двоеточия в --header нет намеренно: часть клиентов (Cursor, Codex, Claude Desktop под Windows) ломает аргументы с пробелами, а в переменной окружения пробел допустим.

Если MCP недоступен вовсе, агент работает с REST API по тому же токену — сценарии в AGENTS.md расписаны для обоих путей.

Проверить подключение

Без клиента, одним запросом — вызов инструмента get_account:

bash
curl -s https://vruchay.ru/mcp \
  -H "Authorization: Bearer $VRUCHAY_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_account","arguments":{}}}'

В ответе — организация, условия (left, expired, features) и проекты. Список инструментов со схемами — тот же запрос с "method":"tools/list".

Инструменты

Первым агент вызывает get_account, за инструкцией идёт в get_guide. Чего нет отдельным инструментом — делает через api_request по справочнику.

ИнструментЧто делаетМеняет данныеТратит квоту
get_accountКто подключён, условия (left, expired, features) и проектынетнет
get_guideИнструкция: start, layout, layout_reference, integrations, recipes, mcp, errorsнетнет
get_layout_catalogЕдиницы, форматы листа, шрифты, готовые раскладки, служебные полянетнет
list_documentsДокументы, шаблоны или корзина организации, отбор по проекту и поискунетнет
get_documentКарточка документа, листы, поля и последние выпуски; блоки сжаты, full: true — макет целикомнетнет
create_documentНовый документ: формат, готовая раскладка (preset), копия шаблона (templateId) или своего документа (copyOf, с asTemplate — шаблоном)данет
update_documentНазвание, размер листа, мероприятие, дата выдачи, постоянные поля, срок, проектданет
delete_documentВ корзину или из корзины (restore)данет
create_projectНовый проект — мероприятие или сайтданет
edit_layoutДобавить, поменять и убрать блоки листа одним вызовом; в ответе — замечанияданет
set_layoutЗаписать лист целикомданет
apply_presetСвёрстать лист по готовой раскладкеданет
add_sheetЕщё один лист (например, оборот)данет
delete_sheetУдалить листда, необратимонет
upload_imageСкачать PNG или JPEG по ссылке: картинка блока или фон листаданет
get_upload_linkОдноразовая ссылка на 15 минут: агент с оболочкой загружает curl'ом файл с диска — фон, картинку блока или таблицу получателейданет
check_sheetЧто не так с вёрсткой: край листа, не влезает текст, блоки наложились, неизвестное поле или шрифт, мелкий QRнетнет
preview_sheetКартинка листа, как он напечатаетсянетнет
get_recipientsКолонки и строки таблицы получателей, страницаминетнет
import_recipientsТаблица: дописать (append) или заменить (replace); за вызов до 2 МБ, больше — частямиданет
edit_recipientsТочечно: добавить, поправить, удалить строки, отметить все; applySuggestions — принять исправления проверкиданет
validate_recipientsПустые имена, кривая почта, дубли, не влезающий текст — с предложенными исправленияминетнет
start_generationВыпуск по отмеченным строкам, асинхронно; resume — доделать прерванныйдада
get_jobХод выпуска; waitSeconds — подождать до 60 с; причины сбоевнетнет
cancel_jobОстановить выпуск; недошедшие строки квоту не тратятданет
get_download_linkСсылка на архив ZIP или общий PDF, действует час; name — имена файлов, например "%name"нетнет
issue_documentОдин документ одному человеку, по желанию — с письмомдада
list_formsФормы выдачи с готовой ссылкой и кодом вставкинетнет
setup_formСоздать или изменить форму на сайте или по ссылке, дневной предел выдачидакаждая заявка с формы
set_mail_templateШаблон письма с документомданет
get_mailПисьмо документа: шаблон, кому уйдёт сейчас и кому нет, что с отправленныминетнет
send_mailРазослать (уже получившим — не повторно), повторить недоставленные или переслать выданныеда, необратимонет
search_registryРеестр выданного: поиск и отбор; fileId — карточка и ссылка на файлнетнет
revoke_documentsОтозвать проверку подлинности: сначала предпросмотр, затем с подтверждённым числомданет
reissue_documentsПеревыпустить выданные по исправленным строкамдада
api_requestЛюбой другой запрос к API, кроме закрытых разделовпо запросупо запросу

setup_form, revoke_documents, reissue_documents и delete_document (в корзину) требуют прав «Полный доступ», остальное — и возврат из корзины (restore: true) — доступно и с правами «Выпускать документы».

Клиент видит у каждого инструмента пометки риска (annotations): только читает, может стереть или заменить, безопасен при повторе, выходит наружу (письма, чужие ссылки). По ним Claude и ChatGPT решают, спрашивать ли вас перед вызовом.

Файлы с диска

Бланк, логотип или таблица часто лежат у агента файлом, а не в интернете. Передать их аргументом инструмента нельзя: MCP ходит JSON-ом, а мегабайт base64 модель не напишет. Агенту с оболочкой — Claude Code, Codex, Cursor, VS Code — сервер даёт ссылку на загрузку:

  1. get_upload_link с documentId и целью: background (с sheetId) — фон листа, element — картинка для блока, recipients — таблица получателей (mode: append — дописать, replace — заменить; headers — как понимать первую строку).
  2. В ответе — готовая команда. Агент подставляет путь и выполняет её:

``bash curl -sS -F "file=@бланк.png" "https://vruchay.ru/api/v1/uploads/u.…" ``

  1. curl печатает итог JSON-ом. У картинок — fileId, widthPx, heightPx: фон уже стоит на листе, дальше preview_sheet; картинку блока ставят в props.fileId через edit_layout. У таблицы — сколько строк загружено и как названы колонки, дальше validate_recipients.

Ссылка действует 15 минут и принимает один файл: повтор отвечает 410, за следующим файлом — новая ссылка. Файл не того типа ссылку не тратит. Типы и размеры — те же, что у загрузки в кабинете: PNG или JPEG до 20 МБ, таблица .xlsx или .csv до 10 МБ. Токена в команде нет: права — того токена, который выдал ссылку, и отозванный токен гасит её. В журнал действий загрузка попадает с автором — токеном или подключённым агентом; имени файла и строк таблицы там нет. Без оболочки (Claude.ai, ChatGPT) — upload_image по публичной ссылке или кабинет. Справочник — `POST /api/uploads` и `POST /api/v1/uploads/{link}`.

Готовые задания (подсказки)

Сервер отдаёт клиенту подсказки (prompts) — те же задания, что на странице Готовые тексты для агента: do_task, design_sheet, issue_from_table, site_form, crm_integration, new_event, fix_issued. В Claude Code это команды /mcp__vruchay__design_sheet и другие: выберите, допишите своими словами, что нужно, — и агент получит задание целиком. Подробности о каждом сценарии — в AGENTS.md, о вёрстке — в руководстве по вёрстке.

Как выглядят ответы

  • Обычный ответ — один текстовый блок с JSON. Ответы сжаты: у листа — id, место и начало текста каждого блока, а не всё дерево; полный макет — get_document с full: true.
  • Превью — картинка JPEG (type: "image") и короткая подпись. Код и номер на превью — образцы.
  • Ошибка — ответ с isError: true и текстом по-русски: Ошибка 400: …, следом Поля: [...] с путём и причиной по каждому полю. У edit_recipients — ещё Успело выполниться: {...}, если часть правок прошла. По этому тексту агент исправляет запрос сам.
  • Ошибки протокола — JSON-RPC error: неизвестный инструмент (-32602), неверный JSON-RPC (-32600), неизвестный метод (-32601), заголовки не совпали с телом (-32020), незнакомая версия (-32022). Подробно — в справочнике `POST /mcp`.
  • Длинный ответ обрезается на 80 000 знаках с припиской «сузьте запрос».
  • api_request возвращает только JSON. Файлы (архив, CSV, PDF) через MCP не передаются — для готовых документов есть get_download_link, а файл с диска приносит curl по ссылке из get_upload_link.
  • Тело api_request — тоже только JSON. Адреса, которые ждут файл (multipart/form-data: картинка, фон листа, логотип, разбор таблицы из файла), через него не вызвать. Файл с диска — через get_upload_link, картинка из интернета — ссылкой в upload_image, таблица — строками в import_recipients. Страница в справочнике REST ещё не значит, что адрес доступен агенту: закрытые разделы перечислены ниже, а роли и возможности плана действуют как у токена.

Ограничения

ЧтоПредел
Запросы к /mcp (любые: вызовы, список, рукопожатие)300 в минуту на организацию
Тело запроса к /mcp2 МБ; таблица больше — частями (mode: "append") или файлом через get_upload_link
preview_sheet30 в минуту на организацию; отрисовка — до 30 секунд
upload_image30 в минуту на организацию; PNG или JPEG до 20 МБ
Загрузка по ссылке из get_upload_linkссылка живёт 15 минут и принимает один файл; 30 загрузок в минуту с одного адреса; PNG или JPEG до 20 МБ, таблица до 10 МБ
issue_document120 в минуту на организацию; ответ ждёт готовый документ до 25 секунд
validate_recipients40 проверок за 5 минут на организацию
get_jobждёт завершения не дольше 60 секунд за вызов
get_download_linkссылка живёт час; скачивание — 30 в минуту с одного адреса

Сверх лимита запросов к /mcp — 429 с числом секунд в тексте и в заголовке Retry-After. Внутри инструментов действуют те же пределы, что у REST: см. Ограничения частоты. Сверх них инструмент отвечает ошибкой «Ошибка 429: Слишком много попыток. Повторите через N с.» — секунды только в тексте, заголовка у инструмента нет.

Чего агент не может

  • Управлять людьми: приглашать и удалять сотрудников, менять роли и пароли.
  • Выдавать и отзывать токены, разрешать подключения OAuth.
  • Платить: оплата картой и счета — только человек в кабинете.
  • Удалить документ насовсем — только владелец в кабинете.
  • Ходить в служебные и публичные адреса: api_request не пускает в /api/auth (кроме /api/auth/me), /api/tokens, /api/oauth, /api/team, /api/team-invite, /api/push, /api/billing/checkout, /api/invoices, /api/platform, /api/leads, /api/render и /api/v1/*.
  • Видеть чужие организации: чужой объект отвечает 404.

Сервер не пишет в журнал аргументы вызовов — только имя инструмента и исход: в аргументах бывают имена и почта участников. Действия агента попадают в журнал действий организации так же, как действия по токену.

Если не работает

Что видноПочемуЧто делать
401, клиент просит войти сноваТокена нет, он отозван или заменён новым подключением того же приложенияПроверить заголовок: Authorization: Bearer vru_…, слово Bearer и пробел. Для OAuth — подключиться заново
«Couldn't reach the MCP server» (Claude), сервер «failed» или «needs auth» в списке MCPВход не пройден или клиент не дошёл до сервераПройти вход (/mcp в Claude Code, Connect в Claude.ai). Не помогло — удалить сервер и добавить заново. Проверка без клиента — curl из раздела «Проверить подключение»
Страница «Нужны права управляющего»Подключать агентов может владелец или управляющийПопросить их подключить или выдать права
«Ссылка для подключения не подходит»Устаревшая или повреждённая ссылка разрешенияНачать подключение в приложении заново
«Неизвестное приложение: client_id не наш или повреждён»Клиент назвал client_id, которого сервер не выдавал, или его описание по адресу недоступно, не https или не называет себя этим адресомПодключиться заново; если не помогает — выбрать автоматическую регистрацию клиента
«У организации уже десять подключённых агентов»Предел подключений через OAuthОтозвать лишние в «Токенах API»
403 у инструментаНе хватает прав (setup_form — «Полный доступ»), возможности нет в плане или срок плана вышелОбъяснить человеку; повтор не поможет
409 у правки листаЛист изменился с тех пор, как агент его читалПеречитать get_document и повторить правку с новой версией
429Слишком частоПодождать: у запроса к /mcp секунды в Retry-After, у инструмента — в тексте ошибки («Повторите через N с.»)
413Тело больше 2 МБТаблицу — частями с mode: "append" или файлом через get_upload_link
410 в ответе curlСсылка на загрузку истекла (15 минут) или уже приняла файлВзять новую get_upload_link
405 на GET /mcpКлиент ждёт старый транспорт HTTP+SSE (2024 года)Выбрать в клиенте Streamable HTTP или обновить его
claude.ai или chatgpt.com не открываютсяСами сервисы закрыты для российских адресов, «Вручай» тут ни при чёмПодключить «Вручай» к тому агенту, который у вас работает (Claude Code, Codex, Cursor, VS Code…), — серверу всё равно, откуда клиент, — или работать по REST
Токен попал в чат, файл или репозиторий—Отозвать его в «Токенах API» и выдать новый; агентам лучше вход через OAuth
Инструменты не видныКоннектор выключен в этом чате или клиент не обновил списокClaude — «+» → Connectors; ChatGPT — Refresh; Claude Code — /mcp
Не подключается из офисной сетиПрокси или фильтр не пускает на vruchay.ruРазрешить исходящий HTTPS на vruchay.ru:443; при подмене сертификатов прокси программам на Node нужен корпоративный корневой сертификат (NODE_EXTRA_CA_CERTS)

Проверить подключение изнутри клиента проще всего просьбой: «вызови get_account».

Claude.ai и ChatGPT обращаются к серверу из своего облака, а не с вашего компьютера, поэтому офисная сеть на них не влияет. Ответы сервера — обычный JSON, без потоков, так что буферизующие прокси их не ломают.

Коды и формат ошибок — в Кодах ошибок.

Вручай