Необходимые cookie-файлы нужны для работы сайта. Аналитические cookie (Яндекс Метрика) — только с вашего согласия. Политика cookie-файлов

Тема оформления
Справочник

MCP-сервер

Справочник MCP-сервера Typizer: адрес, авторизация, инструменты с параметрами и сниппеты для клиентов.

Пошаговое подключение клиентов (Claude Code, Claude Desktop, Cursor, VS Code) — «Подключение через MCP». Здесь — полный справочник: адрес, авторизация и все восемь инструментов с их параметрами.

Адрес и авторизация

  • Адрес сервера — https://api.typizer.ru/mcp (только POST; GET и DELETE отвечают 405: сессий и потока событий у этого сервера нет — каждый вызов самостоятельный).
  • Авторизация — только ключ API в заголовке Authorization: Bearer tz_live_… (тот же ключ и те же скоупы, что у REST API — см. «Ключи API»). Сессия кабинета для MCP не принимается.
  • Отсутствующий или неверный ключ — 401 с WWW-Authenticate: Bearer realm="typizer" (error="invalid_token" для просроченного/отозванного ключа, error="invalid_request" для неверного заголовка).
  • OAuth не используется. У /mcp нет /.well-known/oauth-protected-resource (запрос на этот путь — обычный 404, ресурс не объявлен) — протокол авторизации MCP требует, чтобы этот документ называл хотя бы один сервер авторизации, а в v1 его нет: единственный способ войти — ключ API. OAuth 2.1 для MCP — в планах, не реализован.
  • Файлы в инструментах (file_base64, sample_base64) передаются как base64 внутри тела JSON-RPC, размером не больше 50 МБ (MAX_FILE_BYTES) — столько же, сколько и в REST API.
Внимание:

Подключение из браузера не поддерживается — у /mcp нет CORS. Клиентом должно быть локальное приложение (Claude Code, Claude Desktop, Cursor, VS Code и т. п.) или сервер, а не код, выполняющийся на странице в браузере пользователя.

Инструменты

Каждый вызов проверяет тот же скоуп, что REST API потребовал бы для аналогичного действия — ключ без нужного скоупа получает insufficient_scope, как и в REST.

ИнструментСкоупПараметры
list_typizerstypizers:readlimit, starting_after — постраничный вывод, 20 на страницу по умолчанию
get_typizertypizers:readtypizer_id
create_typizertypizers:writename?, description?, sample_url? или sample_base64+filename? — модель составляет схему по описанию и/или образцу; расходует одну единицу дневной квоты генерации
update_typizertypizers:writetypizer_id, name?, schema?, instructions? — новая схема или инструкции создают новую версию
extractruns:writeсм. ниже
get_runruns:readrun_id
list_runsruns:readtypizer_id?, status?, limit, starting_after — без output/fields, только статусы; за данными — get_run
get_balancebilling:readбез параметров — доступные и зарезервированные страницы, список пакетов

? — необязательный параметр. Создание и обновление типизатора, а также extract, работают так же, как соответствующий маршрут REST API: extract резервирует страницы с баланса и списывает их при завершении, create_typizer расходует дневную квоту ИИ-ассистента — те же числа, что у POST /v1/typizers/generate («Лимиты»).

extract

Главный инструмент: извлекает данные из документа по сохранённому типизатору или разовой схеме.

ПараметрЗначение
typizer_id или schemaровно один: сохранённый типизатор, либо разовая JSON Schema («Поддерживаемый JSON Schema»)
file_url или file_base64+filenameровно один: публичный http(s)-адрес документа, либо содержимое файла в base64 с его именем
formatjson, xml, csv или xlsx — по умолчанию формат типизатора, иначе json
modestandard или precise — precise перепроверяет извлечение и тарифицируется в 5 раз дороже по страницам
wait_seconds0–60 (по умолчанию 50) — сколько ждать завершения прогона в этом же вызове; если прогон не успел — читайте его позже get_run
idempotency_key1–255 печатных ASCII-символов — свой ключ, чтобы повтор вызова был безопасен

idempotency_key работает как заголовок Idempotency-Key REST API («Обработка ошибок и повторов»): тот же ключ с теми же аргументами в течение 24 часов возвращает тот же прогон вместо создания (и повторной оплаты) нового; тот же ключ с другими аргументами — ошибка. У MCP нет HTTP-заголовков, поэтому этот аргумент — единственный способ сделать повтор extract безопасным; без него каждый вызов создаёт новый прогон.

Пример аргументов и результата:

JSON
// Аргументы вызова extract
{
  "typizer_id": "tz_01J…",
  "file_url": "https://typizer.ru/samples/invoice.pdf",
  "wait_seconds": 50,
  "idempotency_key": "agent-run-2026-10-31-0007"
}
JSON
// Результат — тот же объект Run, что и REST API (см. «Форматы результата»),
// отдаётся агенту и как structuredContent, и как текст JSON
{
  "id": "run_01J…",
  "status": "succeeded",
  "format": "json",
  "pages": { "physical": 1, "billed": 1 },
  "output": { "invoice_number": "A-204", "total": 15000 },
  "fields": { "total": { "status": "ok", "sources": [] } }
}

При ошибке (например, недостаточно баланса или типизатор не найден) результат инструмента помечается isError, а текстом идёт то же тело проблемы, что вернул бы REST API (для 402 — без ссылки, с тем же нейтральным текстом «недостаточно страниц на балансе»).

Проверка

После подключения спросите агента «Какие типизаторы у меня есть?» — это вызовет list_typizers. Логи сервера хранят имя инструмента, идентификаторы и коды ошибок — никогда аргументы, имена файлов или результат.

Клиенты

Подробная настройка каждого клиента, с пояснениями — «Подключение через MCP». Конфигурация в двух словах:

Claude Code — нативная поддержка заголовка авторизации:

bash
claude mcp add --transport http typizer https://api.typizer.ru/mcp --header "Authorization: Bearer tz_live_…"

Claude Desktop — через мост mcp-remote (его удалённые коннекторы не передают свой заголовок Authorization; схема может измениться в новой версии клиента — см. тьюториал):

JSON
{
  "mcpServers": {
    "typizer": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.typizer.ru/mcp",
        "--header",
        "Authorization:${TYPIZER_AUTH}"
      ],
      "env": {
        "TYPIZER_AUTH": "Bearer tz_live_…"
      }
    }
  }
}

Cursor — нативная поддержка удалённых HTTP-серверов с заголовками (по документации Cursor на момент написания):

JSON
{
  "mcpServers": {
    "typizer": {
      "url": "https://api.typizer.ru/mcp",
      "headers": {
        "Authorization": "Bearer tz_live_…"
      }
    }
  }
}

VS Code — нативная поддержка удалённых HTTP-серверов с заголовками (по документации VS Code на момент написания):

JSON
{
  "servers": {
    "typizer": {
      "type": "http",
      "url": "https://api.typizer.ru/mcp",
      "headers": {
        "Authorization": "Bearer tz_live_…"
      }
    }
  }
}

Что дальше