MCP server for CDEK delivery API — 16 tools: calculate, orders, courier pickup, tracking, PVZ, print, webhooks. OAuth2 auth.
CDEK MCP demonstrates solid tool coverage (16 tools) with consistent naming patterns (verb_noun: calculate_*, create_*, get_*, list_*, delete_*, track_*, generate_*, print_*). All tools have descriptions (194 - 250 chars, within baseline 34 - 392 range). Input schemas are present and properly typed with JSON Schema. However, output schemas are not documented, responses are wrapped in generic text content without structured field definitions. Error handling is minimal; no recovery guidance or actionable error messages visible. Tool descriptions lack dependency hints (e.g., 'Call get_cities first to obtain city_code'). Parameter descriptions are adequate but some lack format constraints (e.g., date_invoice_from accepts 'YYYY-MM-DDTHH:MM:SS±HH:MM' but this is stated in description, not as a regex pattern in schema). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Composition is strong, tools chain logically (calculate_tariff → create_order → get_order → track_shipment). Idempotency not explicitly addressed.
Расчёт стоимости и сроков доставки СДЭК по конкретному тарифу, маршруту и параметрам груза. Используйте для предварительной оценки перед созданием заказа. Требует код тарифа (136=склад-склад, 137=склад-дверь, 138=дверь-склад, 139=дверь-дверь). Для поиска кода города используйте get_cities.
Расчёт стоимости доставки СДЭК по всем доступным тарифам для маршрута. Используйте когда нужно показать клиенту все варианты доставки с ценами и сроками, не зная заранее код тарифа.
Создание заявки на вызов курьера СДЭК для забора отправления. Требует UUID заказа и временной интервал. После создания можно отслеживать статус заявки через get_courier_pickup.
Создание заказа на доставку СДЭК с указанием отправителя, получателя и мест. Перед созданием рекомендуется рассчитать стоимость через calculate_tariff. После создания заказ можно отслеживать через get_order или track_shipment.
Подписка на вебхуки СДЭК для получения уведомлений о смене статуса заказов (ORDER_STATUS) или готовности фото (DOWNLOAD_PHOTO). СДЭК будет отправлять POST-запросы на указанный HTTPS URL.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Returns statuses, номер накладной and delivery details') but no structured schema defines response fields, types, or nesting. LLMs cannot plan downstream tool calls or extract specific fields without documented output structure.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked with Risk levels (READ_ONLY, WRITE, DESTRUCTIVE) in metadata but not exposed via MCP tool annotations. Agents cannot distinguish safe-to-retry operations from destructive ones without explicit hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Удаление заказа СДЭК по UUID. Работает только для заказов, ещё не переданных в курьерскую службу. После удаления заказ нельзя восстановить.
Удаление подписки на вебхуки СДЭК по UUID вебхука. Используйте для отключения уведомлений или смены URL получателя (удалить старый + создать новый).
Генерация штрихкода (этикетки) для заказа СДЭК по UUID. Поддерживает форматы A4, A5, A6 и до 10 копий. Ссылка на PDF появится в результатах get_order.
Поиск городов в справочнике СДЭК по названию, индексу или стране. Возвращает код города, регион и ФИАС. Используйте для получения city_code перед вызовом calculate_tariff или create_order.
Получение статуса заявки на вызов курьера СДЭК по UUID заявки. Возвращает дату, время и историю статусов заявки.
Получение полной информации о заказе СДЭК по UUID. Возвращает статусы, номер накладной и детали доставки. Используйте после create_order для проверки обработки заказа.
Получение справочника регионов СДЭК. Поддерживает фильтрацию по стране и названию региона, пагинацию. Используйте для построения иерархии локаций или фильтрации городов по региону.
Поиск пунктов выдачи (ПВЗ) и постаматов СДЭК по городу, индексу или GPS-координатам. При указании latitude+longitude+radius_km фильтрует и сортирует пункты по расстоянию. Возвращает адрес, время работы, наличие примерочной и способы оплаты.
Поиск и фильтрация заказов СДЭК по дате, номеру ИМ или накладной СДЭК. Поддерживает пагинацию. Используйте для получения списка заказов за период или поиска конкретного заказа.
Печать квитанции (накладной) для заказа СДЭК в формате PDF. Опрашивает API до готовности файла (до 10 секунд) и возвращает ссылку для скачивания.
Отслеживание отправления СДЭК по номеру накладной (cdek_number). Возвращает полную историю статусов с датами и городами. Если известен только UUID заказа — используйте get_order.
Error handling lacks recovery guidance. No visible error responses that tell LLMs what to do next (e.g., 'User not found. Try search_users() with a partial name.'). Errors are wrapped in generic withErrorHandling but no actionable messages or error classification (retryable vs user-fixable vs fatal).
Missing dependency hints in descriptions. Tools like create_order recommend 'Call calculate_tariff first' but do not guide LLMs on how to obtain required city_code (via get_cities). Multi-step workflows lack explicit sequencing hints.
Date/time format constraints stated in descriptions but not enforced in schema. Parameters like 'intake_date' (YYYY-MM-DD) and 'date_invoice_from' (YYYY-MM-DDTHH:MM:SS±HH:MM) lack regex patterns or format declarations in JSON Schema. LLMs may pass invalid formats.