mcp-yandex-dostavka is an MCP server developed by A1-x-Tech for integrating with the B2B API of Яндекс Доставка (Yandex Delivery). It allows users to issue delivery tasks in everyday language within AI applications such as Claude, Codex, Cursor, and VS Code, with the assistant accessing the user's Yandex Delivery account to calculate shipping costs, arrange shipments, and display statuses, without needing to develop an integration themselves.
Main uses and capabilities
- Same-day delivery (intracity): calculate shipping costs, distance, and estimated arrival time; arrange shipments by submitting goods, addresses, contacts, and requirements for a vehicle or courier; find orders by status, phone, time slot, or company order number; get the courier's current location and the recipient's tracking link; cancel with an understanding of the consequences (first check whether cancellation is possible and whether a fee applies).
- Next-day delivery and within Russia: compare available delivery time slots and door-to-door shipping costs; arrange the selected option; check the order's current status and change history; submit a cancellation request when the current status allows it.
- Pickup points and parcel lockers: find pickup points and parcel lockers by city, coordinates, type, and payment method; view addresses, opening hours, self-service shipping availability, and payment methods; calculate and arrange delivery to the selected location.
How it works The server includes 16 ready-made operations, data schemas, and safety rules for handling duplicate requests. The assistant first performs pre-calculations (estimated price, distance, ETA), and only after the user explicitly requests it does it pass the data to Yandex Delivery, wait for the final estimate, and begin searching for a courier; after that, it can check status, view the courier's location, and get the tracking link. Costs, ETA, available time slots, pickup point addresses, and statuses all come from the user's Yandex Delivery account and are not made up. The assistant does not continuously monitor orders and only checks status when asked; if the AI application supports scheduled tasks, periodic checks can be configured in its interface. An explicit order or cancellation instruction authorizes the corresponding operation, and additional confirmation behavior depends on the AI application used.
How to use Requires Node.js 20+ and an enterprise client token. First register as an enterprise client at dostavka.yandex.ru and sign a contract (next-day delivery, within Russia, pickup points, and parcel lockers also require connecting a shipping station); in the personal center's "Интеграции" tab, click "获取令牌" (Get token), and pass the token to the server via the environment variable YANDEX_DELIVERY_TOKEN. Integration method (according to the official saMing):
- App interface: Settings → MCP servers → Add server → select STDIO, the command is npx -y mcp-yandex-dostavka@latest, and set the environment variable YANDEX_DELIVERY_TOKEN; save and restart.
- Codex: save to the general configuration via the command line; if it is already open, restart it.
- Claude Desktop: the official path is Settings → Extensions; this repository currently publishes the stdio npm package and does not yet have an .mcpb, so in versions that still support local configuration you can use a JSON stdio configuration (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json; Windows: %APPDATA%\Claude\claude_desktop_config.json); save and restart.
- Claude Code: run the corresponding command in the terminal.
- Cursor: add a yandex-dostavka entry in ~/.cursor/mcp.json (on Windows, %USERPROFILE%.cursor\mcp.json); save and restart.
- VS Code: run MCP: Open User Configuration from the command palette, and add the server in the user-level mcp.json; on first launch it will prompt for the token and save it as a hidden value; you can check with MCP: List Servers. After connecting, start a new conversation and you can give tasks in natural language, for example "calculate the shipping cost for a 2 kg box from Льва Толстого, 16 to Тверскую, 7".
Technical setup and limitations
- Token: usually one general YANDEX_DELIVERY_TOKEN is enough; if different delivery types are enabled in different accounts, you can set YANDEX_DELIVERY_EXPRESS_TOKEN (same-day delivery) and YANDEX_DELIVERY_PLATFORM_TOKEN (next-day delivery/within Russia/pickup points/parcel lockers) separately. If there is no general token, both dedicated tokens must be provided. The token is valid long-term, but becomes invalid after changing the password in the personal account;it is stored in plaintext in the AI application configuration and should be treated like a password; do not commit a configuration containing a real token to Git.
- Test environment: only next-day delivery, within Russia, pickup points, and parcel lockers have a test environment; set YANDEX_DELIVERY_PLATFORM_BASE_URL=https://b2b.taxi.tst.yandex.net and use the test credentials from the official instructions, and only process Moscow addresses. Same-day delivery has no test environment: you can safely test shipping cost calculation and read existing requests, but created shipments will enter the production system.
- Under the hood, the server connects to two independent parts of the B2B API (the same-day delivery API and the next-day delivery API); their tokens, server addresses, amount formats, and units of measurement may differ, and the MCP server automatically selects the correct parameters.
- Privacy: the server runs locally and accesses the Yandex Delivery API directly; the Bearer token is added only to requests for the selected API; the paths of general tools are relative paths, and if they point to an external server they will be blocked to prevent token leakage. By default, anonymous technical telemetry is sent to usage.gistrec.cloud (server startup, names of tools called, and the startup reason code when no token is configured), including a random installation identifier, package version, AI application name and version, Node.js version, and operating system; it does not read or send tokens, account data, tool parameters, or request text, and background sending times out after 2 seconds without affecting operation; telemetry can be disabled by adding a disable option in the configuration, and the implementation is located in src/telemetry.ts.
- Notes: it can create and cancel real deliveries, and cancellation may incur a fee; the AI application decides whether to additionally confirm before writing; same-day delivery has no test environment; there is no continuous monitoring; when temporary restrictions are encountered, the server will wait and retry on its own, and if Yandex Delivery is still unavailable you need to try again later; there is no automatic rollback, and whether cancellation is possible and the fee depend on the current status and Yandex Delivery rules.