СДЭК через API и MCP: 46 методов, «принято» ≠ «выполнено» и две формы отказа
Разбираем CDEK API v2 изнутри: 46 методов на заказы, курьера, калькулятор и печатные формы, асинхронную обработку, при которой «202 Accepted» не значит «готово», и две разные формы отказа — и как всё это работает через MCP-сервер Mira без единой строки кода.
Обзор
СДЭК — одна из немногих служб доставки в России, где интеграция по API не требует одобрения заявки: продавец заключает договор, получает пару ключей в личном кабинете (lk.cdek.ru → Интеграция → API-ключи) — и готово. Тестовый контур api.edu.cdek.ru с публичной тестовой учётной записью доступен ещё до подписания договора: попробовать API можно сразу.
Mira подключает CDEK API v2 целиком — 46 методов в тринадцати разделах — и отдаёт его в Claude через MCP. Первый коннектор новой категории «Логистика»: следом делаются Boxberry, Яндекс Доставка и ПЭК.
Что доступно продавцу
| Раздел | Методов | Что даёт |
|---|---|---|
| Заказы | 8 | Создание, правка, удаление, клиентский возврат, отказ получателя |
| Печатные формы | 6 | Квитанция и штрихкод места — формирование и скачивание |
| Курьер | 5 | Вызов, изменение, отмена заявки, доступные дни |
| Локации | 5 | Населённые пункты, регионы, координаты, индексы, автодополнение адреса |
| Договорённость о доставке | 4 | Регистрация и интервалы доставки |
| Калькулятор | 4 | Стоимость и сроки по тарифу, список доступных тарифов |
| Вебхуки | 4 | Подписки на статусы заказа, готовность печатной формы и другие события |
| Фото | 2 | Заказы с готовыми фотодокументами, скачивание архива |
| Преалерт | 2 | Предварительное уведомление для растаможки международных отправлений |
| ПВЗ, реестры, возврат, чеки, паспорт | 5 | По одному методу каждый |
Отдельного раздела «интернет-магазины» в API нет — это не набор методов, а значение поля type при создании заказа (1 — интернет-магазин, только для договора «Договор с ИМ»; 2 — доставка, для любого договора). Один и тот же метод POST /v2/orders обслуживает оба случая.
Устройство, которое стоит знать заранее
«Принято» — не значит «выполнено»
Это главная ловушка API. Создание заказа, вызов курьера и большинство других команд отвечают HTTP 202 Accepted мгновенно — но это значит только «запрос встал в очередь на обработку», а не «заказ создан». Итог обработки нужно смотреть отдельно, в поле state внутри того же ответа: ACCEPTED, WAITING, SUCCESSFUL или INVALID.
Проверено живым вызовом против тестового контура: попытка создать заказ с несуществующим тарифом отвечает тем же успешным HTTP-кодом, что и рабочий заказ — разница видна только в requests[0].state. Интеграция, которая читает только код ответа, решит, что заказ создан, хотя СДЭК его отклонил. MCP-инструмент Mira разбирает это поле сам: отказ, спрятанный под успешным кодом, доходит до агента как отказ, а не как «готово» с несуществующим заказом внутри.
Это касается только команд, которые ЧТО-ТО ДЕЛАЮТ — создают, меняют, вызывают курьера. Для обычного чтения то же поле в ответе означает историю ВСЕХ прошлых команд по этой сущности, а не итог текущего запроса: старая ошибка в истории заказа не должна гасить его свежее, вполне успешное чтение. Спутать эти два случая — значит либо пропустить настоящий отказ, либо ложно забраковать нормальное чтение.
Два разных конверта отказа
У калькулятора, локаций и большинства методов, отвечающих сразу, — плоский конверт: {"errors": [{"code", "message"}]}. У заказов и курьера при отказе ДО постановки в очередь — тот же список ошибок, но вложенный в requests[0].errors. Оба варианта подтверждены живыми вызовами против тестового контура: калькулятор с неполным телом отвечает первой формой, запрос несуществующего заказа — второй. Инструмент Mira разбирает обе — причина доходит до чата словами поставщика, а не «HTTP 400» без объяснения.
Печатные формы — тоже асинхронные
Квитанция и штрихкод места не формируются мгновенно: запрос создаёт задачу, статус проверяется отдельным вызовом, а готовый PDF скачивается третьим — по адресу с буквальным суффиксом .pdf, не параметром. Содержимое файла в чат не переносится: инструмент отдаёт тип и размер, как и для архива с фотодокументами.
Барьер: платно ровно три действия из четырнадцати меняющих
Из 46 методов 14 меняют данные — заказы, курьер, печатные формы, вебхуки, договорённость о доставке — и только 3 из них тратят деньги или запускают платную услугу: создание заказа, вызов курьера и регистрация клиентского возврата (она создаёт новую платную доставку по тому же принципу, что обычный заказ). Барьер выведен из одной таблицы, где описан каждый метод — разойтись им негде.
Изменение и удаление заказа, отмена вызова курьера — это тоже запись, но деньги они ОСТАНАВЛИВАЮТ, а не тратят, и поэтому не требуют отдельного подтверждения о списании.
Как это выглядит через MCP
Сколько будет стоить доставка коробки 2 кг из Москвы в Новосибирск тарифом «Экспресс»?
Claude обращается к калькулятору, называет сумму и срок — без захода в личный кабинет.
Вызови курьера завтра с 10 до 18 по заказу на Тверской, 5
Claude собирает заявку на вызов курьера — платное действие, и без разрешения на запись у источника оно остановится ещё до похода к СДЭК, а не после.
Что это даёт на практике
Интернет-магазину. Статус доставки, стоимость и вызов курьера одним вопросом, без переключения между личным кабинетом СДЭК и остальными инструментами.
Агентству и разработчику. Готовый клиент вместо разбора того, где именно в ответе спрятан настоящий итог асинхронной команды, и без риска принять «принято в очередь» за «выполнено».
Как подключить
- Личный кабинет СДЭК (
lk.cdek.ru) → Интеграция → API-ключи → «Создать ключ». - Скопировать Client ID и Client Secret.
- В Mira: проект → источники → СДЭК → вставить оба ключа.
Дальше СДЭК доступен и в чате Mira, и через MCP-сервер в Claude, Cursor или другом клиенте с поддержкой протокола.
Новости в Telegram
Подпишитесь на каналы — новые статьи и обзоры каждый день.
Источники
Ещё по теме «MCP-серверы»
1С через OData: как достать данные учётной базы без единой строки кода на встроенном языке
Разбираем стандартный OData-интерфейс 1С:Предприятие: чем он отличается от API конкретного сервиса, как узнать, что вообще опубликовано на конкретной базе, как проводить и отменять проведение документов и как всё это работает через MCP-сервер Mira без единой строки кода на встроенном языке.
3 сентября 2026 г.Boxberry через API и MCP: документация переехала в Яндекс, а API остался жив
Разбираем API Boxberry для интернет-магазинов: один эндпоинт на 34 действия, поле method вместо путей, отказ, который иногда приходит на HTTP 200, и документация, которая в 2026 году целиком переехала на хостинг Яндекс Доставки — а сам API остался работать. Как всё это доступно через MCP-сервер Mira без единой строки кода.
3 сентября 2026 г.Chatwoot через MCP: разговоры, ответы и отчёты поддержки без переключения окна
Разбираем Application API Chatwoot — self-hosted и облачной платформы поддержки клиентов: как устроены разговоры и их барьер записи, что значит self-hosted для безопасности запроса, и как всё это работает через MCP-сервер Mira: обзор нагрузки на поддержку, ответ клиенту, отчёты по скорости ответа — без переключения в отдельную вкладку Chatwoot.
3 сентября 2026 г.