mcp-yandex-dostavka
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YANDEX_DELIVERY_LANG | No | Заголовок Accept-Language (обязателен в экспресс-методах). | ru |
| YANDEX_DELIVERY_TOKEN | No | Общий Bearer-токен для обоих контуров. | |
| YANDEX_DELIVERY_TIMEOUT_MS | No | Таймаут запроса, мс. | 60000 |
| YANDEX_DELIVERY_MAX_RETRIES | No | Повторы при 429 (и 5xx для чтений). | 3 |
| YANDEX_DELIVERY_EXPRESS_TOKEN | No | Токен экспресс-контура (переопределяет общий). | |
| YANDEX_DELIVERY_PLATFORM_TOKEN | No | Токен платформенного контура (переопределяет общий). | |
| YANDEX_DELIVERY_EXPRESS_BASE_URL | No | Хост экспресс-контура. | https://b2b.taxi.yandex.net |
| YANDEX_DELIVERY_PLATFORM_BASE_URL | No | Хост платформы; для теста — https://b2b.taxi.tst.yandex.net. | https://b2b-authproxy.taxi.yandex.net |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| express_check_priceA | Первичная оценка стоимости экспресс-доставки (день в день) БЕЗ создания заявки. Возвращает price (строка-decimal, не число!), currency_rules {code, sign}, distance_meters, eta (минуты) и zone_id. Точки маршрута задаются координатами [долгота, широта] и/или адресом строкой. Типовые ошибки: 400 address_not_found (адрес не распознан), 409 estimating.cant_construct_route (маршрут не строится). |
| express_create_claimA | Создаёт заявку на экспресс-доставку. ВАЖНО: заявка не запускается сразу — после создания она проходит оценку (status: new → estimating → ready_for_approval), затем её нужно подтвердить инструментом express_accept_claim; либо передайте auto_accept=true. Возвращает id (claim_id), status, version, route_points, pricing, created_ts. Идемпотентность обеспечивает request_id: повторный вызов с тем же request_id вернёт ту же заявку, а не создаст дубликат. |
| express_get_claimA | Полная информация по заявке: status, version (нужен для accept/cancel), items, route_points, pricing {offer, final_price, currency}, performer_info (имя курьера, транспорт), eta, created_ts/updated_ts. Статусы: new, estimating, ready_for_approval, accepted, performer_lookup, performer_found, performer_not_found, pickup_arrived, pickuped, delivery_arrived, delivered, returning, returned, failed, cancelled, cancelled_by_taxi. ВНИМАНИЕ: ошибки оценки могут прийти массивом error_messages [{code, message}] внутри успешного 200-ответа — проверяйте и HTTP-ошибку, и это поле. |
| express_accept_claimA | Подтверждает заявку после успешной оценки (status ready_for_approval) и запускает поиск курьера — с этого момента доставка реально заказана. version берётся из express_get_claim. Ошибки 409: inappropriate_status (заявка не в подходящем статусе), old_version (устаревшая версия — перечитайте заявку), offer_expired / offer_already_used (оффер истёк — пересоздайте заявку). |
| express_cancel_infoA | Условия отмены заявки — вызывайте ПЕРЕД express_cancel_claim. Возвращает cancel_state: free (бесплатная), paid (платная — вернётся price/price_with_vat и currency) или unavailable (отменить уже нельзя). |
| express_cancel_claimA | Отменяет заявку (в том числе уже подтверждённую). Перед вызовом получите условия отмены через express_cancel_info и передайте её cancel_state: при paid спишется стоимость отмены. version берётся из express_get_claim. Ошибки 409: устаревшая версия, недопустимый статус или бесплатная отмена уже недоступна. |
| express_search_claimsA | Поиск заявок по фильтрам с пагинацией (сортировка — по дате создания). Возвращает claims (каждая — как в express_get_claim) и cursor для следующей страницы. Пагинация: либо offset/limit, либо курсорная — передайте cursor из предыдущего ответа (тогда остальные фильтры не нужны). |
| express_performer_positionA | Текущая геопозиция курьера по активной заявке: position {lat, lon, timestamp (unix), accuracy, speed (м/с), direction (0–360°)} и route_points с sharing_link. Ошибки: 404 — курьер/позиция не найдены, 409 — заявка не в активном статусе. |
| express_tracking_linksA | Публичные ссылки для отслеживания курьера — их можно отдавать получателю. Возвращает route_points [{id, type, visit_order, sharing_link}]; sharing_link доступен только для точек type=destination. Ошибки 409: inappropriate_status, unknown_tracking_links. |
| platform_list_pickup_pointsA | Список ПВЗ, постаматов и точек самопривоза платформенного контура (доставка «в другой день»). Возвращает points [{id, operator_id, name, type, position {latitude, longitude}, address, payment_methods, schedule, available_for_dropoff, dayoffs}]. id точки используется как platform_station в destination инструмента platform_create_offers. ВНИМАНИЕ: пустое тело вернёт ВСЕ точки (их очень много) — задавайте хотя бы один фильтр (geo_id, диапазон координат или pickup_point_ids). |
| platform_create_offersA | Рассчитывает варианты доставки (офферы) для заказа «в другой день» (НДД/ПВЗ). Возвращает offers [{offer_id, expires_at, offer_details {delivery_interval {min, max, policy}, pickup_interval, pricing, pricing_total, pricing_commission_on_delivery_payment}}]. Оффер действует до expires_at — выбранный вариант бронируется инструментом platform_confirm_offer (до подтверждения заказ НЕ создан). Ошибка 400 no_delivery_options — на выбранный интервал вариантов доставки нет. Денежные суммы — в копейках (целые числа). |
| platform_confirm_offerA | Бронирует выбранный оффер — СОЗДАЁТ заказ в логистической платформе. Возвращает request_id (id заказа, например «77241d8009bb46d0bff5c65a73077bcd-udp») — используйте его в platform_get_request, platform_request_history и platform_cancel_request. Оффер должен быть не просрочен (см. expires_at из platform_create_offers), иначе 400 bad_request. |
| platform_get_requestA | Информация о заказе НДД: state {status (например CREATED), description, timestamp, timestamp_utc, reason}, request (адреса, товары, получатель) и courier_order_id. Возможные причины отмены: SHOP_CANCELLED, USER_CHANGED_MIND, DELIVERY_PROBLEMS, BROKEN_ITEM и др. |
| platform_request_historyA | История смены статусов заказа НДД: state_history [{status, description, timestamp (unix), timestamp_utc (ISO-8601), reason?}] — от создания до текущего момента. |
| platform_cancel_requestA | Отменяет заказ в логистической платформе. Курьерский заказ можно отменить до статуса DELIVERY_TRANSPORTATION_RECIPIENT (передача получателю). Возвращает status (CREATED | SUCCESS | ERROR), reason и description. Ошибки: 403 — чужой заказ/нет прав, 404 — не найден. |
| raw_requestA | Запасной выход: прямой вызов любого метода B2B API Яндекс Доставки — для эндпоинтов без выделенного инструмента (тарифы, points-eta, ярлыки/акты, мерчанты, склады, отгрузки, proof-of-delivery и т.д.). contour выбирает контур и хост: express — b2b.taxi.yandex.net (пути вида «b2b/cargo/integration/v2/...»), platform — b2b-authproxy.taxi.yandex.net (пути вида «api/b2b/platform/...»). query — параметры строки запроса, body отправляется как JSON. ОСТОРОЖНО: инструмент может выполнять и изменяющие операции; 5xx/сетевые ошибки ретраятся только для GET. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
All tools are cleanly separated by domain prefix (express_ vs platform_) and each tool has a distinct purpose: price estimation, claim management, tracking, offers, and order management. No two tools overlap in function; even similar ones like get_claim and search_claims are clearly different (single item vs list).
The prefix convention (express_ and platform_) is consistent, and most tools follow a verb_noun pattern (check_price, create_claim, accept_claim, cancel_claim, list_pickup_points, create_offers). However, a few tools are noun phrases without an explicit verb (express_performer_position, express_tracking_links, platform_request_history), creating minor inconsistency. Still, overall naming is predictable and readable.
With 16 tools, the server is slightly over the typical 3–15 range, but the number is justified by covering two distinct delivery contours (express and platform) plus a raw fallback. Each tool serves a clear workflow step, so the count feels appropriate rather than bloated.
Core lifecycles are covered for both express (price check, create, get, accept, cancel info/cancel, search, tracking) and platform (list points, create offers, confirm, get, history, cancel). Minor gaps such as dedicated tools for specific edge operations (e.g., proof-of-delivery) are mitigated by the raw_request fallback, but those operations are not first-class tools. This is a solid, nearly complete surface.