Yango Delivery MCP

io.github.A1-x-TechPublished by GitHub account A1-x-Techv1.2.1Updated Nov 1, 2026

MCP server for the Yango Delivery claims B2B API: price checks, delivery claims, courier tracking.

Overview

AI-generated overview

Connects an assistant to a corporate Yango Delivery account to price, create, accept, track and cancel same-day express courier deliveries.

What you can do
  • Estimate price, distance and ETA for a route without creating a claim
  • Create, read, search, accept and cancel delivery claims, including cancellation terms
  • Track an active delivery: courier position, per-point ETAs, temporary courier phone number and confirmation code
  • Get public tracking links to share with the recipient
  • Call other Yango Delivery claims API methods directly through a raw request tool
When to use it
Useful when you run a corporate Yango Delivery account and want an assistant to quote express courier runs, prepare and place orders, and follow up on active deliveries in ordinary language. It covers only the express claims API, not next-day delivery, pickup points or parcel lockers.
Requirements
Runs locally over stdio via the npm package mcp-yango-delivery, needing Node.js 20+. Requires a corporate Yango Delivery account and an integration token supplied as YANGO_DELIVERY_TOKEN. Optional settings: YANGO_DELIVERY_BASE_URL, YANGO_DELIVERY_LANG, YANGO_DELIVERY_TIMEOUT_MS, YANGO_DELIVERY_MAX_RETRIES. Network access to the Yango Delivery API host.
Before you install
Everything hits production with no sandbox: accepting a claim dispatches a real courier and is billed, and cancelling can incur a fee, so confirm before accept_claim, cancel_claim, create_claim with auto_accept=true, or a state-changing raw_request. The token is stored in plain text in the client config and is reset by an account password change. Anonymous telemetry is on by default and can be disabled with ASKADS_TELEMETRY=0.

Installation

In SourceWeft

  1. Open Yango Delivery MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[A1] Yango Delivery MCP

English | Русский

[npm] [Glama] [CI] [License: MIT]

A1 Yango Delivery MCP connects an AI app to a corporate Yango Delivery account. Estimate an express delivery, order a courier, track the route and share a tracking link with the recipient using ordinary language.

This server works with the international Express Claims API. It does not support next-day delivery, pickup points or parcel lockers.

  • 13 tools. Seven for the delivery lifecycle, five for tracking and courier contact, plus one direct API request tool.
  • Estimate before ordering. Check the current price, route distance and ETA without creating a delivery claim.
  • Create and order separately. A claim can be prepared and reviewed before courier search starts.
  • Follow an active delivery. Get its status, courier position, point ETAs, temporary phone number, confirmation code and recipient tracking link.

Start with:

Estimate delivery of a 2 kg parcel from [pickup address] to [delivery address].

Connect the server · Explore use cases · Open technical documentation


See it work in a minute

You: Estimate delivery of a 2 kg parcel from our warehouse to the customer's address.

Assistant: I returned the current price, route distance and ETA. No delivery claim was created.

You: Create the claim and stop before ordering the courier.

Assistant: The claim has been created. I will show its id, price, status and version before acceptance.

You: Accept the offer.

Assistant: The claim has been accepted and courier search has started.

You: Send me the recipient's tracking link.

Assistant: I returned the public tracking link for the destination.

Price, availability, status and cancellation terms always come from the connected delivery account and the current API response.

Contents

Quick start

You need Node.js 20+, a Yango Delivery corporate account and an integration token.

  1. Get an integration token.

  2. Add the server to your AI app using one of the instructions below.

  3. Start with a price estimate:

    Estimate delivery of a 2 kg parcel from [pickup address] to [delivery address].

Codex

In the app:

  1. Open Settings → MCP servers.

  2. Select Add server.

  3. Choose STDIO, then enter the launch command npx -y mcp-yango-delivery@latest and the YANGO_DELIVERY_TOKEN environment variable with your token.

  4. Select Save, then Restart.

From the command line:

bash
codex mcp add yango-delivery \  --env YANGO_DELIVERY_TOKEN=your_token \  -- npx -y mcp-yango-delivery@latest

Check the connection:

bash
codex mcp list

Codex MCP documentation

Claude Code
bash
claude mcp add \  --env YANGO_DELIVERY_TOKEN=your_token \  --transport stdio \  --scope user \  yango-delivery \  -- npx -y mcp-yango-delivery@latest

Check the connection:

bash
claude mcp list

Claude Code MCP documentation

Claude Desktop

The current official path is Settings → Extensions. For a custom desktop extension, open Advanced settings → Extension Developer → Install Extension…, select a .mcpb file and follow the prompts.

This repository currently publishes an npm stdio package and does not contain a .mcpb bundle. For Claude Desktop builds that still support local configuration, use the following JSON stdio configuration as a fallback:

json
{  "mcpServers": {    "yango-delivery": {      "command": "npx",      "args": ["-y", "mcp-yango-delivery@latest"],      "env": {        "YANGO_DELIVERY_TOKEN": "your_token"      }    }  }}

In those builds, save it to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows.

Claude Desktop MCP documentation

Cursor

Add a user-level server to ~/.cursor/mcp.json on macOS/Linux or %USERPROFILE%\.cursor\mcp.json on Windows:

json
{  "mcpServers": {    "yango-delivery": {      "type": "stdio",      "command": "npx",      "args": ["-y", "mcp-yango-delivery@latest"],      "env": {        "YANGO_DELIVERY_TOKEN": "your_token"      }    }  }}

Cursor MCP documentation

VS Code

Run MCP: Open User Configuration from the Command Palette and add:

json
{  "servers": {    "yango-delivery": {      "type": "stdio",      "command": "npx",      "args": ["-y", "mcp-yango-delivery@latest"],      "env": {        "YANGO_DELIVERY_TOKEN": "${input:yango_delivery_token}"      }    }  },  "inputs": [    {      "type": "promptString",      "id": "yango_delivery_token",      "description": "Yango Delivery integration token",      "password": true    }  ]}

Check the server with MCP: List Servers.

VS Code MCP documentation

What you can ask it to do

Estimate an express delivery

  • Calculate the current price, route distance and ETA without creating a claim.
  • Estimate courier, express or cargo service for the supplied addresses, weight and dimensions.
  • Check whether the API can build the route and satisfy the requested vehicle or delivery requirements.

Prepare and order a courier

  • Create a claim with sender and recipient contacts, route points, items and delivery requirements.
  • Review the returned price, status and claim version before ordering.
  • Accept a claim after successful estimation and start courier search.
  • Find a claim by id, phone number, status, date or external order id.

Track the delivery and contact the courier

  • Get the current courier position and ETA for each route point.
  • Generate a public tracking link for the recipient.
  • Get a temporary forwarded phone number for the courier.
  • Get a pickup or delivery confirmation code when the current claim supports one.

Check and cancel a delivery

  • Check whether cancellation is free, paid or no longer available.
  • Cancel a claim using its current version and the cancellation mode returned by the API.

Use additional API methods

raw_request covers methods without a dedicated tool, including tariffs, delivery methods, proof of delivery, claim editing and return operations. It can create or change real data, so it is intended for technical users who understand the upstream API.

Complete schemas, response fields and status details are available in the tool reference.

How a delivery becomes real

  1. Estimate. A price check returns the current offer, distance and ETA without creating anything.
  2. Create. A claim is added to the account and moves through estimation. By default, no courier is ordered yet.
  3. Review. Read the latest claim status, price and version. A successful claim becomes ready for approval.
  4. Accept. Acceptance starts courier search. From this point, the delivery is ordered and can lead to a real charge.
  5. Track. Once a courier is assigned, the server can return the position, ETA, contact details and recipient link.

The priced offer usually expires about ten minutes after estimation. If auto_accept: true is passed when creating a claim, the separate review and acceptance step is skipped and the courier can be ordered automatically.

What changes in the account

The server exposes MCP annotations for reading, writing and destructive actions. The AI client decides when and how to ask for confirmation.

ActionResultChanges the account
Price estimateReturns the current price, distance and ETANo
Read, search and tracking toolsReturns claim, courier and cancellation informationNo
Create a claimAdds a real claim, but does not order a courier by defaultYes
Accept a claimStarts courier search and can lead to a chargeYes
Cancel a claimCancels the delivery; a cancellation fee may applyYes
raw_requestCalls another API method, including possible writesDepends on the method

Claim creation uses a unique request_id, so repeating it with the same id returns the same claim. Acceptance and cancellation are not automatically repeated after a network error or a 5xx response because the operation may already have succeeded. Read the current claim before trying again.

Getting access

  1. Register as a corporate Yango Delivery client and sign the delivery-service contract.
  2. Open the Integration tab in the delivery account.
  3. Select Get token.
  4. Add the token to the AI client as YANGO_DELIVERY_TOKEN.

The token is tied to the corporate account. It does not expire by itself, but changing the account password resets it.

The integration token is stored as plain text in the AI client's local configuration. Treat it like a password and never commit a configuration containing a real token.

Configuration

VariableRequiredDefaultDescription
YANGO_DELIVERY_TOKENyes—Bearer token from the delivery account
YANGO_DELIVERY_BASE_URLnohttps://b2b.taxi.yandex.netAPI root override
YANGO_DELIVERY_LANGnoenValue of the Accept-Language header
YANGO_DELIVERY_TIMEOUT_MSno60000Timeout for one request, in milliseconds
YANGO_DELIVERY_MAX_RETRIESno3Maximum retries for temporary failures; writes are not replayed unless they are idempotent
ASKADS_TELEMETRYnoenabled0, false, off or no disables anonymous telemetry

Data and telemetry

Requests to Yango Delivery

The server runs on your machine and sends claim data directly to b2b.taxi.yandex.net. The integration token is attached only to requests to the configured API host. Even raw_request accepts a relative path and blocks requests that resolve to another host.

Anonymous telemetry

By default, the server sends technical events to usage.gistrec.cloud: server start, called tool name and a fixed reason code when startup fails.

Events contain a random installation id, package version, AI client name and version, Node.js version and operating system. The integration token, claim data, tool arguments and prompts are not read or sent. For each tool call it also sends the outcome and, on failure, an excerpt of the error text with e-mails, addresses, tokens, numbers of 4+ digits and quoted text replaced by #; a value from your request can appear in it if the error text contains it. Telemetry has a two-second timeout and does not block a tool call.

To disable telemetry, add:

text
ASKADS_TELEMETRY=0

The implementation is in src/telemetry.ts.

Limits and background work

  • There is no documented sandbox. Treat claim creation and acceptance as production operations.
  • The offer is time-limited. The priced offer usually expires about ten minutes after estimation; read the current claim before acceptance.
  • Tracking requires an active claim. Position, ETA, contact details and tracking links may be unavailable until a courier is assigned or after the claim is completed.
  • Numeric API quotas are not published. When the API returns 429, the server follows Retry-After when present and retries up to YANGO_DELIVERY_MAX_RETRIES.
  • There is no background monitoring. The server works only when called from the AI app. If the app supports scheduled tasks, it can check an active claim periodically.
  • There is no automatic rollback. After an uncertain acceptance or cancellation result, read the claim before repeating the action.

Technical documentation

Support

Found a bug or missing a use case? Create an issue or message us on Telegram.


[Две Моны дают пять]

You made it to the end!

Source: README.md at commit 22a2478

Tools

13

check_price

Estimate delivery price

Preliminary delivery cost estimate WITHOUT creating a claim — the pricing method for countries outside Russia. Returns price (a decimal STRING, not a number!), currency_rules {code, sign, template}, distance_meters, eta (minutes) and zone_id. Route points take [longitude, latitude] coordinates and/or a full address string. Typical errors: 400 address_not_found (address not recognized), 409 estimating.cant_construct_route (no route between the points), 409 estimating.requirement_unavailable.

Parametersitemsrequiredrequirementsroute_pointsrequiredskip_door_to_door

create_claim

Create a delivery claim

Creates a delivery claim. IMPORTANT: the claim is NOT dispatched immediately — it goes through estimation (status: new → estimating → ready_for_approval) and must then be confirmed with accept_claim, or pass auto_accept=true. Returns id (claim_id), status, version, route_points, pricing, created_ts. Verify success via get_claim: estimation errors can arrive as an error_messages array inside a 200 response. request_id makes the call idempotent: a retry with the same request_id returns the same claim, not a duplicate.

Parametersdueitemsrequiredcommentskip_actrequest_idauto_acceptroute_pointsrequiredsame_day_dataoptional_returnemergency_contactshipping_documentskip_door_to_door+4 more

get_claim

Get claim info

Full claim information: status, version (needed for accept/cancel), items, route_points (with visit status), pricing {offer, final_price, currency}, performer_info (courier name, vehicle, transport type), eta, created_ts/updated_ts. Known statuses: new, estimating, estimating_failed, ready_for_approval, accepted, performer_lookup, performer_draft, performer_found, performer_not_found, pickup_arrived, ready_for_pickup_confirmation, pickuped, delivery_arrived, ready_for_delivery_confirmation, delivered, delivered_finish, pay_waiting, returning, return_arrived, ready_for_return_confirmation, returned, returned_finish, failed, cancelled, cancelled_with_payment, cancelled_by_taxi, cancelled_with_items_on_hands. CAUTION: estimation errors can arrive as an error_messages array [{code, message}] inside a successful 200 response — check both the HTTP error and this field.

Parametersclaim_idrequired

accept_claim

Accept a claim

Confirms a claim after successful estimation (status ready_for_approval) and starts the courier search — from this point the delivery is actually ordered. The priced offer inside a claim expires ~10 minutes after estimation, so accept promptly. version comes from get_claim. 409 errors: inappropriate_status (wrong claim status), old_version (stale version — re-read the claim), offer_expired (re-create the claim), state_mismatch.

Parametersversionrequiredclaim_idrequired

get_cancel_info

Get cancellation terms

Cancellation terms for a claim — call BEFORE cancel_claim. Returns cancel_state: free (free of charge), paid (a fee applies — price/price_with_vat and currency are returned) or unavailable (the claim can no longer be cancelled).

Parametersclaim_idrequired

cancel_claim

Cancel a claim

Cancels a claim (including an already accepted one). Get the terms with get_cancel_info first and pass its cancel_state: with paid the cancellation fee is charged. version comes from get_claim. 409 errors: old_version, inappropriate_status, free_cancel_is_unavailable.

Parametersversionrequiredclaim_idrequiredcancel_staterequired

search_claims

Search claims

Search claims by filters with pagination (sorted by creation date). Returns claims (each shaped like get_claim) and a cursor for the next page. Pagination: either offset/limit, or cursor-based — pass the cursor from the previous response (other filters are then not needed).

Parameterslimitphonestatecursordue_tooffsetstatusclaim_iddue_fromcreated_tocreated_fromexternal_order_id

get_performer_position

Get courier position

Current courier geoposition for an active claim: position {lat, lon, timestamp (unix), accuracy, speed (m/s), direction (0–360°, clockwise from north)} and route_points with sharing_link. Errors: 404 — claim or courier position not found, 409 — the claim is not active or no courier is assigned.

Parametersclaim_idrequired

get_points_eta

Get per-point ETAs

Expected arrival times per route point plus the current courier position. Works only while the claim is active and a courier is assigned. Returns route_points [{id, address, type, visit_order, visit_status (pending|arrived|visited|skipped), visited_at {expected, expected_waiting_time_sec, actual}}] and performer_position. Errors: 404 not_found; 409 — the claim is inactive, has no courier, or the courier position is unknown.

Parametersclaim_idrequired

get_courier_phone

Get courier phone

Temporary forwarded phone number to call the courier of an active claim: phone (e.g. "+79099999998"), ext (extension, e.g. "0163") and ttl_seconds (how long the number stays operational). Errors: 400 invalid_point_phone; 404 — claim or courier not found; 409 inappropriate_status (the order is already completed).

Parametersclaim_idrequiredpoint_id

get_confirmation_code

Get confirmation code

Pickup/delivery confirmation code for the current point of the claim (when a code applies). Returns code (string) and attempts (remaining code entry attempts). 404 — claim not found or issuing a confirmation code via the API is prohibited.

Parametersclaim_idrequired

raw_request

Raw Yango Delivery API call

Escape hatch: a direct call to any method of the Yango Delivery claims B2B API — for endpoints without a dedicated tool (tariffs, delivery-methods, claims/proof-of-delivery/info, claims/edit, claims/apply-changes, claims/return, claims/bulk_info, claims/journal, …). Paths are relative to the API root, e.g. "b2b/cargo/integration/v2/tariffs". query becomes the query string, body is sent as JSON. CAUTION: this tool can perform state-changing operations; 5xx/network errors are retried only for GETs.

Parametersbodypathrequiredquerymethod

Version history

3
  1. v1.2.1LatestOct 31, 2026
  2. v1.2.0Oct 31, 2026
  3. v1.1.0Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts