Skip to main content
Glama
A1-x-Tech

mcp-yandex-dostavka

 Яндекс Доставка MCP

npm CI Glama License: MIT

A1 Яндекс Доставка MCP позволяет управлять корпоративной доставкой из Claude, Codex, Cursor и других AI-приложений. Вы ставите задачу обычными словами, а ассистент обращается к вашему аккаунту Яндекс Доставки, рассчитывает стоимость, оформляет отправления и показывает их статус.

  • День в день по городу. Рассчитайте доставку, вызовите курьера, узнайте его местоположение и получите ссылку для получателя.

  • На следующий день и по России. Сравните доступные сроки и стоимость доставки до двери.

  • В ПВЗ и постаматы. Найдите подходящую точку, рассчитайте варианты и оформите выбранную доставку.

  • Сначала расчёт, затем заказ. Ассистент различает предварительную стоимость, подготовку отправления и момент, когда доставка действительно оформляется.

  • Без собственной интеграции. Внутри уже есть 16 готовых действий, схемы данных и правила безопасной работы с повторными запросами.

Подходит компаниям и предпринимателям, которые уже подключены к B2B API Яндекс Доставки и получили токен в личном кабинете. Это не сервис для частных отправителей.

Быстро узнать стоимость

Вы: Рассчитай доставку коробки 2 кг с Льва Толстого, 16 на Тверскую, 7.

Ассистент: Проверил маршрут через Яндекс Доставку и вернул актуальную стоимость, расстояние и примерное время подачи из вашего аккаунта.

Подключить сервер · Посмотреть сценарии · Открыть техническую документацию


Увидеть работу за минуту

Вы: Рассчитай доставку букета сегодня к 18:00 из офиса на Льва Толстого, 16 клиенту на Тверскую, 7.

Ассистент: Проверил маршрут и получил предварительную стоимость, расстояние и ETA из вашего аккаунта Яндекс Доставки.

Вы: Оформи доставку, если итоговая цена не выше 1 000 ₽.

Ассистент: Итоговая цена укладывается в лимит. Доставка оформлена, поиск курьера начался.

Вы: Где сейчас курьер и какую ссылку отправить получателю?

Ассистент: Получил текущую позицию курьера и публичную ссылку для отслеживания заказа.

Вы: Теперь найди варианты доставки этой коробки в Казань на следующий день: до двери, в ПВЗ или постамат.

Ассистент: Получил доступные варианты по срокам и стоимости. Для ПВЗ и постаматов покажу адреса, расписание и поддерживаемые способы оплаты.

Вы: Можно бесплатно отменить первую доставку?

Ассистент: Сначала проверил условия отмены. Покажу, доступна ли она сейчас, будет ли бесплатной и какая сумма спишется при платной отмене.

Примеры показывают последовательность доступных действий. Конкретные цены, сроки, статусы и доступность доставки всегда приходят из вашего аккаунта Яндекс Доставки.


Related MCP server: Yandex Delivery MCP

Содержание

Быстрый старт

Нужны Node.js 20+ и токен корпоративного клиента Яндекс Доставки.

  1. Получите токен в личном кабинете Яндекс Доставки.

  2. Добавьте MCP-сервер в своё AI-приложение.

mcp-yandex-dostavka запускается на вашем компьютере через npx, поэтому браузерные версии ChatGPT и Claude не могут подключить его напрямую.

Через интерфейс приложения:

  1. Откройте Settings → MCP servers.

  2. Нажмите Add server.

  3. Выберите STDIO, затем укажите команду запуска npx -y mcp-yandex-dostavka@latest и переменную окружения YANDEX_DELIVERY_TOKEN со своим токеном.

  4. Нажмите Save, затем Restart.

Через командную строку:

codex mcp add yandex-dostavka \
  --env YANDEX_DELIVERY_TOKEN=ваш_токен \
  -- npx -y mcp-yandex-dostavka@latest

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

codex mcp list

Команда сохраняет сервер в общей конфигурации Codex. Если Codex уже открыт, перезапустите его.

Официальная инструкция Codex

Актуальный официальный путь — Settings → Extensions. Для пользовательского desktop extension откройте Advanced settings → Extension Developer → Install Extension…, выберите файл .mcpb и следуйте подсказкам.

Этот репозиторий сейчас публикует npm-пакет со stdio и пока не содержит .mcpb. Поэтому используйте приведённый ниже JSON stdio-конфиг как fallback только в сборках Claude Desktop, где ещё поддерживается локальная конфигурация:

{
  "mcpServers": {
    "yandex-dostavka": {
      "command": "npx",
      "args": ["-y", "mcp-yandex-dostavka@latest"],
      "env": {
        "YANDEX_DELIVERY_TOKEN": "ваш_токен"
      }
    }
  }
}

В таких сборках сохраните его в ~/Library/Application Support/Claude/claude_desktop_config.json на macOS или %APPDATA%\Claude\claude_desktop_config.json на Windows.

Сохраните файл и перезапустите Claude Desktop.

Официальная инструкция Claude Desktop

Откройте терминал и выполните:

claude mcp add \
  --env YANDEX_DELIVERY_TOKEN=ваш_токен \
  --transport stdio \
  --scope user \
  yandex-dostavka \
  -- npx -y mcp-yandex-dostavka@latest

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

claude mcp list

Официальная инструкция Claude Code

Пользовательский локальный сервер добавляется в Cursor через файл mcp.json:

  • macOS и Linux: ~/.cursor/mcp.json

  • Windows: %USERPROFILE%\.cursor\mcp.json

Создайте файл, если его ещё нет, и добавьте сервер. Если в файле уже есть другие серверы, сохраните их и добавьте только запись yandex-dostavka:

{
  "mcpServers": {
    "yandex-dostavka": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-yandex-dostavka@latest"],
      "env": {
        "YANDEX_DELIVERY_TOKEN": "ваш_токен"
      }
    }
  }
}

Сохраните файл. Если Cursor уже открыт, перезапустите его.

Официальная инструкция Cursor

  1. Откройте палитру команд: ⇧⌘P на macOS или Ctrl+Shift+P на Windows и Linux.

  2. Выполните команду MCP: Open User Configuration. Откроется пользовательский файл mcp.json, доступный во всех проектах.

  3. Добавьте сервер. Если в файле уже есть другие настройки, сохраните их:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "yandex-delivery-token",
      "description": "Токен Яндекс Доставки",
      "password": true
    }
  ],
  "servers": {
    "yandex-dostavka": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-yandex-dostavka@latest"],
      "env": {
        "YANDEX_DELIVERY_TOKEN": "${input:yandex-delivery-token}"
      }
    }
  }
}
  1. Сохраните файл. VS Code попросит токен при первом запуске сервера и сохранит его как скрытое значение.

  2. Чтобы проверить сервер, выполните в палитре команд MCP: List Servers и выберите yandex-dostavka.

Официальная инструкция VS Code

После подключения откройте новый диалог в выбранном приложении и попросите:

Рассчитай доставку коробки 2 кг с Льва Толстого, 16 на Тверскую, 7.

Что можно поручить

Доставка день в день по городу

  • Узнать стоимость. Рассчитать цену, расстояние и примерное время подачи курьера по адресам, весу и габаритам отправления.

  • Оформить отправление. Передать товары, адреса, контакты и требования к машине или курьеру.

  • Найти заказ. Искать отправления по статусу, телефону, периоду или номеру заказа вашей компании.

  • Следить за курьером. Получить его текущую позицию и публичную ссылку для получателя.

  • Отменить с известными последствиями. Сначала узнать, возможна ли отмена и будет ли она платной.

Доставка на следующий день и по России

  • Сравнить варианты. Получить доступные интервалы и стоимость доставки до двери.

  • Оформить выбранный вариант. Подтвердить подходящие срок, способ вручения и цену.

  • Проверить заказ. Узнать текущий статус и посмотреть историю его изменений.

  • Отменить заказ. Отправить запрос на отмену, пока текущий статус это позволяет.

Доставка в ПВЗ и постаматы

  • Найти подходящую точку. Искать ПВЗ и постаматы по городу, координатам, типу и способу оплаты.

  • Проверить условия. Посмотреть адрес, расписание, доступность самопривоза и способы оплаты.

  • Рассчитать и оформить. Получить варианты доставки в выбранную точку и подтвердить подходящий.

Как ассистент работает с доставкой

Для доставки день в день ассистент сначала рассчитывает маршрут. Когда вы просите оформить отправление, он передаёт данные в Яндекс Доставку, дожидается итоговой оценки и запускает поиск курьера. После этого можно узнавать статус, смотреть позицию курьера и получать ссылку для отслеживания.

Для доставки на следующий день, по России, в ПВЗ или постамат ассистент получает доступные варианты со сроками и стоимостью. Вы выбираете подходящий вариант, после чего ассистент оформляет заказ и может читать его текущий статус и историю.

Значения не придумываются. Стоимость, ETA, доступные интервалы, адреса точек и статусы приходят из вашего аккаунта Яндекс Доставки.

Ассистент не наблюдает за заказами постоянно. Он проверяет состояние доставки, когда вы ставите ему задачу. Если AI-приложение поддерживает задачи по расписанию, в его интерфейсе можно настроить регулярную проверку — например, каждый час узнавать статус заказа до вручения.

Когда создаётся реальный заказ

Что вы просите

Что происходит

Доставка оформлена

Рассчитать доставку день в день

Ассистент получает предварительную цену, расстояние и ETA

Нет

Подготовить доставку день в день

Создаётся заявка и получается итоговая оценка, но поиск курьера ещё не начинается

Ещё нет

Оформить доставку день в день

Ассистент подтверждает оценённую заявку и запускает поиск курьера

Да

Рассчитать доставку на следующий день, до ПВЗ или постамата

Ассистент получает доступные варианты и цены

Нет

Оформить выбранный вариант

Ассистент подтверждает вариант и создаёт заказ

Да

Проверить условия отмены

Ассистент узнаёт, возможна ли отмена и сколько она стоит

Нет

Отменить доставку

Ассистент изменяет реальный заказ; отмена может быть платной

Да, заказ изменяется

Точная команда на оформление или отмену разрешает соответствующее действие. Поведение дополнительных подтверждений зависит от AI-приложения: некоторые клиенты спрашивают разрешение перед каждой записью, другие следуют собственным политикам.

Получение доступа к API

  1. Зарегистрируйтесь как корпоративный клиент на dostavka.yandex.ru и заключите договор. Для доставки на следующий день, по России, в ПВЗ и постаматы также подключите станцию отгрузки.

  2. В личном кабинете откройте вкладку «Интеграции» и нажмите «Получить токен».

  3. Передайте токен серверу в YANDEX_DELIVERY_TOKEN.

Токен действует неограниченное время, но перестаёт работать после смены пароля личного кабинета. Подробнее: доступ к API доставки день в день и доступ к API доставки на другой день.

Токен хранится открытым текстом в конфигурации AI-приложения. Относитесь к нему как к паролю и не добавляйте конфигурацию с реальным токеном в Git.

Один или два токена

Обычно достаточно общего YANDEX_DELIVERY_TOKEN. Если разные виды доставки подключены в разных кабинетах, задайте два отдельных токена:

  • YANDEX_DELIVERY_EXPRESS_TOKEN — токен доставки день в день;

  • YANDEX_DELIVERY_PLATFORM_TOKEN — токен доставки на другой день, по России, в ПВЗ и постаматы.

Если общего токена нет, серверу нужны оба отдельных токена.

Тестовая среда

Тестовая среда есть только для доставки на другой день, по России, в ПВЗ и постаматы. Задайте YANDEX_DELIVERY_PLATFORM_BASE_URL=https://b2b.taxi.tst.yandex.net и используйте тестовые реквизиты из официальной инструкции. Она обрабатывает только московские адреса.

Для доставки день в день тестовой среды нет: безопасно проверять расчёт стоимости и чтение существующих заявок, а оформленные отправления попадают в рабочую систему.

Технические настройки

На техническом уровне сервер работает с двумя независимыми частями B2B API Яндекс Доставки: API доставки день в день и API доставки на другой день. У них могут быть разные токены, адреса серверов, форматы денег и единицы измерения — MCP-сервер выбирает нужные параметры сам.

Переменная

Обязательна

По умолчанию

Что задаёт

YANDEX_DELIVERY_TOKEN

да*

Общий Bearer-токен для обоих API

YANDEX_DELIVERY_EXPRESS_TOKEN

нет

Отдельный токен доставки день в день

YANDEX_DELIVERY_PLATFORM_TOKEN

нет

Отдельный токен доставки на другой день

YANDEX_DELIVERY_EXPRESS_BASE_URL

нет

https://b2b.taxi.yandex.net

Корневой URL API доставки день в день

YANDEX_DELIVERY_PLATFORM_BASE_URL

нет

https://b2b-authproxy.taxi.yandex.net

Корневой URL API доставки на другой день

YANDEX_DELIVERY_LANG

нет

ru

Заголовок Accept-Language

YANDEX_DELIVERY_TIMEOUT_MS

нет

60000

Таймаут одного запроса, мс

YANDEX_DELIVERY_MAX_RETRIES

нет

3

Число повторов временных ошибок

ASKADS_TELEMETRY

нет

включена

0, false, off или no отключает анонимную телеметрию

* Общий токен не нужен, если заданы оба отдельных токена.

Данные и телеметрия

Запросы к Яндекс Доставке

Сервер запускается локально и обращается к API Яндекс Доставки напрямую. Bearer-токен добавляется только к запросам выбранного API. Даже универсальный инструмент принимает относительный путь: если он ведёт на внешний сервер, запрос блокируется, чтобы токен не ушёл на чужой адрес.

Анонимная телеметрия

По умолчанию сервер отправляет на usage.gistrec.cloud три вида технических событий: запуск сервера, имя вызванного инструмента и код причины старта без настроенного токена.

В событие входят случайный идентификатор установки, версия пакета, имя и версия AI-приложения, версия Node.js и операционная система. Токен, данные аккаунта, аргументы инструментов и тексты запросов не читаются и не отправляются. Отправка выполняется в фоне с таймаутом 2 секунды и не влияет на работу сервера.

Чтобы отключить телеметрию для MCP-серверов A1, добавьте в конфигурацию:

ASKADS_TELEMETRY=0

Реализация находится в src/telemetry.ts.

Ограничения

  • Это не только чтение. Ассистент умеет оформлять и отменять настоящие доставки; отмена может быть платной.

  • AI-приложение влияет на подтверждения. MCP-сервер сообщает тип каждого действия, но решение о дополнительном вопросе перед записью принимает приложение и его агент.

  • Нет тестовой среды для доставки день в день. Безопасно проверить можно расчёт стоимости и чтение существующих заявок.

  • Нет постоянного наблюдения. Сервер работает во время вызова из AI-приложения. Если приложение поддерживает задачи по расписанию, настройте в его интерфейсе регулярную проверку статуса.

  • При временном ограничении возможна задержка. Сервер сам подождёт и повторит запрос. Если Яндекс Доставка по-прежнему недоступна, попробуйте ещё раз позже.

  • Нет автоматического отката. Возможность и стоимость отмены зависят от текущего статуса и правил Яндекс Доставки.

Техническая документация

Помощь и обратная связь

Нашли ошибку или не хватает сценария? Создайте issue или напишите в Telegram.

Available Tools

16 tools
express_accept_claimЭкспресс: подтвердить заявкуA

Подтверждает заявку после успешной оценки (status ready_for_approval) и запускает поиск курьера — с этого момента доставка реально заказана. version берётся из express_get_claim. Ошибки 409: inappropriate_status (заявка не в подходящем статусе), old_version (устаревшая версия — перечитайте заявку), offer_expired / offer_already_used (оффер истёк — пересоздайте заявку).

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesВерсия заявки из последнего ответа express_get_claim.
claim_idYesИдентификатор заявки (claim_id, 32–64 символа) из ответа express_create_claim или express_search_claims.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations already indicate non-read-only and non-idempotent behavior, the description adds important context: it triggers a courier search and marks the delivery as actually ordered. It also discloses error conditions (409 with specific codes) and recovery steps, which is valuable beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states the main action and consequence in the first sentence, then provides essential operational and error-handling details. Every sentence serves a purpose with no filler, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity as a mutating action with potential 409 errors, the description adequately covers preconditions, version source, and error recovery. It lacks an explicit description of the return value, but since there is no output schema, the description still provides enough context for correct invocation in the broader flow of express_* tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with detailed descriptions for both parameters. The description adds extra value by clarifying that the version is derived from express_get_claim, reinforcing the schema's provenance guidance for claim_id. This goes beyond simply repeating schema info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: confirms a claim after successful evaluation (status ready_for_approval) and initiates courier search, making the delivery actually ordered. It specifies the resource (claim) and the specific context, distinguishing it from sibling tools like express_cancel_claim or express_create_claim.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: it is meant for claims already in ready_for_approval status, and it instructs that the version should be taken from express_get_claim. It doesn't explicitly list alternative tools to avoid, but the required status and error handling imply when it is appropriate. This is slightly above baseline but not fully explicit about when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

express_cancel_claimЭкспресс: отменить заявкуA
Destructive

Отменяет заявку (в том числе уже подтверждённую). Перед вызовом получите условия отмены через express_cancel_info и передайте её cancel_state: при paid спишется стоимость отмены. version берётся из express_get_claim. Ошибки 409: устаревшая версия, недопустимый статус или бесплатная отмена уже недоступна.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesВерсия заявки из последнего ответа express_get_claim.
claim_idYesИдентификатор заявки (claim_id, 32–64 символа) из ответа express_create_claim или express_search_claims.
cancel_stateYesРежим отмены из express_cancel_info: free — бесплатно, paid — платно.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, the description warns about financial consequences (paid cancellation fee), version-based concurrency (errors 409), and the ability to cancel confirmed claims. This adds valuable behavioral context without contradicting any annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the main action, and efficiently covers prerequisites and error handling in three sentences with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive financial operation, the description adequately covers prerequisites, fee consequences, and error conditions. It doesn't describe the output, but no output schema exists, and the 100% parameter schema fills the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all three parameters with detailed descriptions and an enum for cancel_state. The description reinforces where to get version and cancel_state but adds little new semantic information beyond the 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool cancels a claim, including already confirmed ones, using a specific verb and resource. It distinguishes itself from siblings like express_cancel_info and express_accept_claim by focusing on the cancellation action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs to call express_cancel_info first and pass its cancel_state, and to take version from express_get_claim. This provides a clear workflow and prerequisites, though it doesn't explicitly state when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

express_cancel_infoЭкспресс: условия отменыA
Read-onlyIdempotent

Условия отмены заявки — вызывайте ПЕРЕД express_cancel_claim. Возвращает cancel_state: free (бесплатная), paid (платная — вернётся price/price_with_vat и currency) или unavailable (отменить уже нельзя).

ParametersJSON Schema
NameRequiredDescriptionDefault
claim_idYesИдентификатор заявки (claim_id, 32–64 символа) из ответа express_create_claim или express_search_claims.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructiveHint, and the description adds valuable behavioral context: it details the return structure (cancel_state with meanings) and indicates that paid cancellations return price fields. This goes beyond what annotations provide and clarifies the tool's role in the cancellation flow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-loaded with purpose, followed by return value details. No filler or repetition of schema information, earning its place efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description completely explains the return values and their implications. Combined with the detailed schema for the single parameter, this tool is fully specified for safe and effective usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema description covers 100% of the parameter meaning (claim_id, its length, and source). The description does not add extra parameter semantics, but since schema coverage is high, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states this tool returns cancellation conditions for a claim and specifies the cancel_state values (free, paid, unavailable). It distinguishes itself from the sibling express_cancel_claim by instructing to call it BEFORE cancellation, making its purpose and scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs the agent to call this tool BEFORE express_cancel_claim, providing a clear when-to-use directive. It also implies usage for checking cancelability and pricing, which differentiates it from other siblings like express_get_claim or express_check_price.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

express_check_priceЭкспресс: оценка стоимостиA
Read-onlyIdempotent

Первичная оценка стоимости экспресс-доставки (день в день) БЕЗ создания заявки. Возвращает price (строка-decimal, не число!), currency_rules {code, sign}, distance_meters, eta (минуты) и zone_id. Точки маршрута задаются координатами [долгота, широта] и/или адресом строкой. Типовые ошибки: 400 address_not_found (адрес не распознан), 409 estimating.cant_construct_route (маршрут не строится).

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesТовары/грузоместа.
requirementsNoТребования к доставке (класс, тип кузова, доп. опции).
route_pointsYesТочки маршрута: координаты и/или адрес (хотя бы одно из двух у каждой точки).
skip_door_to_doorNotrue — отключить доставку до двери (по умолчанию false).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering safety. The description adds important behavioral details: price is returned as a string-decimal, not a number; typical errors (400 address_not_found, 409 estimating.cant_construct_route) are disclosed; and the output fields are listed. This goes beyond the annotations and aids client handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: it immediately states the primary purpose and the key differentiator (no order creation). It then lists return fields and typical errors in a compact, information-dense manner. Every sentence earns its place, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description adequately covers return values (price, currency_rules, distance_meters, eta, zone_id) and common error responses. It also notes the coordinate order and the option to use addresses. It does not exhaustively describe every possible error or edge case, but it provides sufficient context for an agent to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description mentions that route points can be coordinates and/or address, which is also in the schema. It does not add any extra meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Первичная оценка стоимости экспресс-доставки (день в день) БЕЗ создания заявки' (primary cost estimate for express delivery without creating an order). It explicitly distinguishes itself from siblings by mentioning the absence of order creation, and specifies the resource (express delivery) and the action (estimation). The mention of returning price, eta, etc., further clarifies its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: for preliminary cost estimation, and explicitly states 'without creating an order' (БЕЗ создания заявки), which serves as a when-not-to-use for order creation. However, it does not explicitly name alternative tools like express_create_claim, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

express_create_claimЭкспресс: создать заявкуA

Создаёт заявку на экспресс-доставку. ВАЖНО: заявка не запускается сразу — после создания она проходит оценку (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 вернёт ту же заявку, а не создаст дубликат.

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNoЖелаемое время подачи курьера (ISO-8601), например 2026-08-10T12:00:00+03:00.
itemsYesТовары к доставке. Ставка НДС передаётся кодами vat_none | vat0 | vat10 | vat20.
commentNoКомментарий курьеру (до 7000 символов).
skip_actNotrue — не формировать акт приёма-передачи.
request_idNoТокен идемпотентности (1–128 символов, query-параметр). Если не задан — UUID сгенерируется автоматически.
auto_acceptNotrue — подтвердить заявку автоматически после успешной оценки (без express_accept_claim).
route_pointsYesТочки маршрута (2–300): как минимум source и destination.
same_day_dataNoПараметры доставки «в течение дня» (для taxi_class=sdd_multislot): {delivery_interval: {from, to}}.
optional_returnNotrue — при неудачном вручении курьер не возвращает товары отправителю.
emergency_contactNoКонтакт на случай проблем с доставкой.
skip_door_to_doorNotrue — не подниматься до двери (вручение у подъезда).
skip_client_notifyNotrue — не отправлять SMS/пуши получателю.
callback_propertiesNoWebhook о смене статусов заявки.
client_requirementsYesТребования к доставке; taxi_class обязателен.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses the non-obvious lifecycle: claim is not immediately active, status passes through new → estimating → ready_for_approval, and confirmation is required. It also explains idempotency semantics tied to request_id, complementing the idempotentHint=false annotation by clarifying the conditional behavior. No annotation contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences long, with the critical 'ВАЖНО' warning up front. Every sentence earns its place: purpose, workflow, return fields, and idempotency. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 14 params, nested objects, and no output schema, the description covers the essential behavioral context: return fields (id, status, version, route_points, pricing, created_ts), the estimation/confirmation workflow, and idempotency. Parameter construction is not described but schema satisfies that need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with detailed descriptions for all 14 parameters, including auto_accept and request_id. The description reiterates these but does not add new parameter-level meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Создаёт заявку на экспресс-доставку' (creates an express delivery claim), using a specific verb and resource. It also distinguishes from siblings by stating that the claim must be confirmed via express_accept_claim or auto_accept=true, clearly situating this as the creation step in the workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear workflow context: the claim goes through estimation and needs subsequent confirmation via express_accept_claim, or the agent can pass auto_accept=true. This implies when to use this tool versus the acceptance tool, though it doesn't mention how to choose between this and pricing/sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

express_get_claimЭкспресс: информация о заявкеA
Read-onlyIdempotent

Полная информация по заявке: 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-ошибку, и это поле.

ParametersJSON Schema
NameRequiredDescriptionDefault
claim_idYesИдентификатор заявки (claim_id, 32–64 символа) из ответа express_create_claim или express_search_claims.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite having readOnlyHint and idempotentHint annotations, the description adds a crucial behavioral warning: error_messages may appear inside a successful 200 response. This goes beyond annotations and is valuable for correct handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and includes a concise field list, but the long enumeration of statuses adds some bulk. Still, every element (fields, statuses, warning) serves a purpose, so it earns a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schema, the description fills the gap by listing all key response fields (status, version, items, pricing, performer_info, eta, timestamps) and even enumerates possible status values. The additional error_messages caveat makes it fully contextual for a get tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter claim_id is fully described in the schema (including format and source). The description does not add extra parameter-level detail, so it relies on the schema's 100% coverage, yielding the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Полная информация по заявке' and enumerates the fields returned, making it clear this is a read/get operation for claim details. It also lists possible statuses, distinguishing it from sibling tools like accept/cancel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that the version field is needed for accept/cancel, providing a usage hint. However, it does not explicitly mention when not to use this tool or name alternative tools for specific scenarios, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

express_performer_positionЭкспресс: позиция курьераA
Read-onlyIdempotent

Текущая геопозиция курьера по активной заявке: position {lat, lon, timestamp (unix), accuracy, speed (м/с), direction (0–360°)} и route_points с sharing_link. Ошибки: 404 — курьер/позиция не найдены, 409 — заявка не в активном статусе.

ParametersJSON Schema
NameRequiredDescriptionDefault
claim_idYesИдентификатор заявки (claim_id, 32–64 символа) из ответа express_create_claim или express_search_claims.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds substantial value by detailing the response structure (lat, lon, timestamp, accuracy, speed, direction, route_points) and error codes (404, 409), giving the agent a clear expectation of behavior beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the purpose, and includes only essential information (response shape and error codes). No redundant words or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only operation with one parameter and no output schema, the description is remarkably complete: it specifies the response fields, error conditions, and usage context. All necessary information is provided without needing to consult other tools or documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the only parameter (claim_id), and the schema already explains its origin and length. The description does not add further parameter-specific semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns the current geolocation of the courier for an active claim, with specific response fields (position, route_points, sharing_link). This distinguishes it from sibling tools like express_get_claim (claim details) and express_tracking_links (tracking links). The verb is implied but unambiguous from the resource naming.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies that the tool applies to 'active claim' and mentions a 409 error when the claim is not in active status, giving clear context on when it is appropriate to use. However, it does not explicitly name alternative tools or provide 'when-not-to-use' guidance, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

express_search_claimsЭкспресс: поиск заявокA
Read-onlyIdempotent

Поиск заявок по фильтрам с пагинацией (сортировка — по дате создания). Возвращает claims (каждая — как в express_get_claim) и cursor для следующей страницы. Пагинация: либо offset/limit, либо курсорная — передайте cursor из предыдущего ответа (тогда остальные фильтры не нужны).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько заявок вернуть (1–1000).
phoneNoФильтр по телефону из контактов заявки.
stateNoГруппа статусов: active — активные, finished — завершённые, delayed — отложенные.
cursorNoКурсор из предыдущего ответа — альтернатива offset/limit.
due_toNoПодача не позднее (ISO-8601).
offsetNoСмещение offset-пагинации (по умолчанию 0).
statusNoФильтр по статусу. Известные статусы: 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.
claim_idNoФильтр по id заявки.
due_fromNoПодача не ранее (ISO-8601).
created_toNoСоздана не позднее (ISO-8601).
created_fromNoСоздана не ранее (ISO-8601).
external_order_idNoФильтр по внешнему id заказа.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive. The description adds valuable behavioral context: sorting by creation date, return of a cursor, and the rule that passing cursor makes other filters unnecessary. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, followed by essential pagination details. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 12 parameters are all schema-described and annotations are present, the description covers return shape, pagination, and sorting. It lacks explicit error cases but is otherwise complete for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters. The description supplements this by clarifying the relationship between cursor, offset, and limit, and that cursor supersedes other filters. This adds semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Поиск заявок по фильтрам с пагинацией' (search claims by filters with pagination), specifying the verb, resource, and sorting. It distinguishes from sibling express_get_claim by noting the return format matches that tool while this one searches multiple claims.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains pagination options (offset/limit vs cursor) and the cursor behavior, giving clear context for usage. It does not explicitly contrast with sibling tools, but the search-vs-single-claim distinction is implied via the reference to express_get_claim.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

platform_cancel_requestПлатформа: отменить заказA
Destructive

Отменяет заказ в логистической платформе. Курьерский заказ можно отменить до статуса DELIVERY_TRANSPORTATION_RECIPIENT (передача получателю). Возвращает status (CREATED | SUCCESS | ERROR), reason и description. Ошибки: 403 — чужой заказ/нет прав, 404 — не найден.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYesid заказа в платформе (из platform_confirm_offer).

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description discloses important behavioral context: the cancellation is conditional on order status, it returns specific fields (status, reason, description), and it lists error codes 403 and 404. This provides the agent with actionable expectations not present in the structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, each serving a distinct purpose: stating the action, specifying the cancellation scope and return values, and listing error codes. There is no redundancy or excessive detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter cancellation tool with annotations covering safety and destructiveness, the description provides all necessary operational context: the cancellation precondition, return shape, and error semantics. Even without an output schema, an agent can correctly invoke and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter request_id is fully described in the schema (id заказа в платформе (из platform_confirm_offer)), giving 100% coverage. The description adds no additional parameter-level detail, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Отменяет заказ в логистической платформе' (cancels an order in the logistics platform). It also distinguishes from siblings like express_cancel_claim by specifying 'Курьерский заказ' (courier order) and the platform context, making the purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage condition: cancellation is possible only up to the status DELIVERY_TRANSPORTATION_RECIPIENT, which tells the agent when this tool is applicable. However, it does not explicitly mention alternatives (e.g., express_cancel_claim for express orders), so it lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

platform_confirm_offerПлатформа: подтвердить офферA

Бронирует выбранный оффер — СОЗДАЁТ заказ в логистической платформе. Возвращает request_id (id заказа, например «77241d8009bb46d0bff5c65a73077bcd-udp») — используйте его в platform_get_request, platform_request_history и platform_cancel_request. Оффер должен быть не просрочен (см. expires_at из platform_create_offers), иначе 400 bad_request.

ParametersJSON Schema
NameRequiredDescriptionDefault
offer_idYesoffer_id выбранного варианта из ответа platform_create_offers.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false (mutation) and idempotentHint=false. The description adds behavioral details: it creates an order, returns a request_id, and can fail with 400 if the offer is expired. This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each adding necessary information: purpose, return value and related tools, and a critical error condition. No fluff, front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers all essential aspects: what it does, what it returns, how to use that return value, and when it might fail. The annotations cover idempotency and read-only hints, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage of the only parameter (offer_id) with a description tying it to platform_create_offers. The description adds extra semantic context: the offer must not be expired and should be the selected one, reinforcing the parameter's meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: 'Бронирует выбранный оффер — СОЗДАЁТ заказ' (books the selected offer — creates an order). This distinguishes it from sibling tools like platform_create_offers (which creates offers) and platform_get_request (which reads requests).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear usage context: it is used after receiving an offer from platform_create_offers, and the resulting request_id is meant to be used with platform_get_request, platform_request_history, and platform_cancel_request. It also mentions a precondition (offer not expired). No explicit exclusions for when not to use it, but the workflow is well implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

platform_create_offersПлатформа: рассчитать варианты доставкиA

Рассчитывает варианты доставки (офферы) для заказа «в другой день» (НДД/ПВЗ). Возвращает 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 — на выбранный интервал вариантов доставки нет. Денежные суммы — в копейках (целые числа).

ParametersJSON Schema
NameRequiredDescriptionDefault
infoYesСлужебная информация о заказе.
itemsYesТовары заказа.
placesYesГрузоместа (коробки).
sourceYesОткуда забирать отправление.
destinationYesКуда доставить: platform_station (ПВЗ/постамат) ИЛИ custom_location (адрес курьером).
billing_infoYesПараметры оплаты.
recipient_infoYesПолучатель.
forbid_unboxingNotrue — запретить вскрытие при получении.
last_mile_policyYesПоследняя миля: time_interval — курьерская доставка в интервал, self_pickup — самовывоз из ПВЗ/постамата.
particular_items_refuseNotrue — разрешить частичный выкуп (отказ от части товаров).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds important behavioral context beyond annotations: the order is not created until confirmation, offer is valid until expires_at, and money amounts are in kopecks. It also exposes the specific error case. While it doesn't enumerate all side effects, it clarifies the state lifecycle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused paragraph that front-loads the main purpose, then packs essential details (response structure, workflow, error, units) without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description provides a partial response structure, error handling, and workflow context, which is substantial for a 10-parameter tool. It misses explicit alternatives to express tools, but the sibling list helps fill that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already explained in the schema. The description adds cross-cutting details (kopecks, error condition) but does not provide per-parameter meaning beyond what the schema offers, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it calculates delivery options (offers) for 'another day' orders, using specific verbs and resources. It also distinguishes itself from the sibling tool platform_confirm_offer by explaining that the selected offer is booked there.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly describes the workflow: calculate offers first, then use platform_confirm_offer to book. It also provides an error condition (400 no_delivery_options) for when no options exist. However, it does not explicitly contrast with express delivery siblings, so exclusion guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

platform_get_requestПлатформа: информация о заказеA
Read-onlyIdempotent

Информация о заказе НДД: state {status (например CREATED), description, timestamp, timestamp_utc, reason}, request (адреса, товары, получатель) и courier_order_id. Возможные причины отмены: SHOP_CANCELLED, USER_CHANGED_MIND, DELIVERY_PROBLEMS, BROKEN_ITEM и др.

ParametersJSON Schema
NameRequiredDescriptionDefault
slimNotrue — сокращённый ответ.
request_idYesid заказа в платформе (из platform_confirm_offer).
request_codeNoНомер заказа в системе заказчика (дополнительный фильтр).

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds value by specifying the response fields (state, request, courier_order_id) and enumerating possible cancellation reasons (SHOP_CANCELLED, USER_CHANGED_MIND, etc.), which is useful contextual detail beyond the structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence that efficiently lists key response elements. It's not overly verbose, though the inclusion of many cancellation reason codes makes it slightly run-on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with no output schema, the description covers the main output structure and explains possible state reasons. It doesn't explain the slim parameter or request_code filter behavior, but those are documented in the schema, so the description is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides complete descriptions for all three parameters (request_id, slim, request_code), so the description adds no additional parameter-level meaning. It mentions courier_order_id, but that is an output field, not a parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (order) and lists the specific contents (state, request, courier_order_id), making it clear this is an order-information tool. However, it uses a noun phrase ('Информация о заказе') rather than an explicit verb like 'retrieve' or 'get', and it doesn't explicitly contrast with sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as platform_request_history, raw_request, or platform_cancel_request. The description doesn't state prerequisites, exclusions, or typical use-cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

platform_list_pickup_pointsПлатформа: список ПВЗ и постаматовA
Read-onlyIdempotent

Список ПВЗ, постаматов и точек самопривоза платформенного контура (доставка «в другой день»). Возвращает 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoТип точки: pickup_point — ПВЗ, terminal — постамат, warehouse — точка самопривоза.
geo_idNoГео-id города/региона по геобазе Яндекса, например 213 — Москва.
latitudeNoДиапазон по широте {from, to}.
longitudeNoДиапазон по долготе {from, to}.
operator_idsNoФильтр по операторам точек.
payment_methodNoТолько точки, поддерживающие способ оплаты: already_paid, card_on_receipt, postpay.
payment_methodsNoНесколько способов оплаты сразу.
pickup_servicesNoФильтр по доступным услугам точки.
pickup_point_idsNoТочечный запрос по id точек.
is_yandex_brandedNotrue — только брендированные ПВЗ Яндекса.
available_for_dropoffNotrue — только точки, куда можно самопривозить отправления.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, open-world, and idempotent behavior, so the description adds value by specifying the exact return fields, warning about the unbounded empty query, and explaining the id's role in other tools. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three focused sentences: functionality and return format, cross-reference, and a critical usage warning. It is front-loaded and contains no redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the read-only nature, complete schema coverage, and lack of output schema, the description adequately covers return structure and a key usage caveat. It doesn't elaborate on every field's semantics or pagination, but the schema sufficiently handles parameter details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for all 11 parameters, so the baseline is 3. The description only generically mentions filters (geo_id, coordinate range, pickup_point_ids) and does not add per-parameter meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Список' (list) with a clear resource ('ПВЗ, постаматов и точек самопривоза') and distinguishes from express siblings by noting the platform contour and delivery 'в другой день'. This makes the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It identifies the platform-specific context and cross-references platform_create_offers, indicating a concrete use case. The warning about empty bodies and filter recommendations provides practical guidance, though it doesn't explicitly state when to avoid this tool in favor of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

platform_request_historyПлатформа: история статусов заказаA
Read-onlyIdempotent

История смены статусов заказа НДД: state_history [{status, description, timestamp (unix), timestamp_utc (ISO-8601), reason?}] — от создания до текущего момента.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYesid заказа в платформе (из platform_confirm_offer).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds valuable behavioral context beyond annotations by detailing the return structure (status, description, timestamps, optional reason) and the temporal scope ('от создания до текущего момента'). This helps the agent understand what data will be returned without needing an output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence and front-loads the purpose. It packs the output format into the sentence without excessive wording. The only minor issue is the unexplained acronym 'НДД', which might confuse agents unfamiliar with the domain, so it loses one point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with strong annotations, the description is comprehensive. It specifies the output structure and temporal scope, which is essential since there is no output schema. The presence of siblings is well-handled by the clarity of the tool's unique purpose. No significant gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the only parameter (request_id) and its description already explains that it is the order ID from platform_confirm_offer. The tool description does not add additional parameter semantics, so it does not exceed the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the history of order status changes ('История смены статусов заказа') and specifies the exact output structure (state_history array with fields). This distinguishes it from sibling tools like platform_get_request, which presumably fetches the current request state rather than its full timeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is used to get the history of status changes from creation to the current moment. It does not explicitly name alternatives or exclusions, but the purpose is so specific that an agent can infer when to use this tool. The schema also hints that the request_id comes from platform_confirm_offer, which adds prerequisite context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raw_requestПроизвольный вызов API Яндекс ДоставкиA
Destructive

Запасной выход: прямой вызов любого метода 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON-тело запроса.
pathYesОтносительный путь API, например "b2b/cargo/integration/v2/claims/info" или "api/b2b/platform/request/info".
queryNoQuery-параметры, например {"claim_id": "..."}.
methodNoHTTP-метод; по умолчанию POST.
contourYesКонтур API: express — экспресс-доставка (claims), platform — НДД/ПВЗ.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive/read-only nature, but the description adds important behavioral details: the retry policy (5xx/network errors only for GET) and host/path conventions for each contour. This goes beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, using only two sentences to convey purpose, param roles, and cautions. Every sentence is informative with no irrelevant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a generic raw-request tool with 5 params and no output schema, the description covers purpose, usage, parameter roles, and security cautions. It does not mention auth prerequisites or error response structure, but these are not strictly required given the fallback nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema covers 100% of parameters with descriptions, the description enriches these by explaining the mapping of `contour` to host and path prefix patterns, and clarifies that `body` is sent as JSON. This adds meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a fallback tool for direct calls to any B2B API method not covered by dedicated tools, with a specific list of example endpoints. This clearly distinguishes it from siblings like express_create_claim or platform_get_request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'for endpoints without a dedicated tool' and labels itself as a fallback, giving clear when-to-use guidance. It also cautions about modifying operations and the GET-only retry policy, which helps avoid misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 16 tool updatesv0.1.0
    • First observedexpress_accept_claim
    • First observedexpress_cancel_claim
    • First observedexpress_cancel_info
    • First observedexpress_check_price
    • First observedexpress_create_claim
    • First observedexpress_get_claim
    • First observedexpress_performer_position
    • First observedexpress_search_claims
    • First observedexpress_tracking_links
    • First observedplatform_cancel_request
    • First observedplatform_confirm_offer
    • First observedplatform_create_offers
    • First observedplatform_get_request
    • First observedplatform_list_pickup_points
    • First observedplatform_request_history
    • First observedraw_request

TDQS

A4.1/5.0
Disambiguation5/5

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).

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/A1-x-Tech/mcp-yandex-dostavka'

If you have feedback or need assistance with the MCP directory API, please join our Discord server