cdek-mcp

io.github.theYahiaPublished by GitHub account theYahiav2.0.2Updated Oct 24, 2026

MCP server for CDEK — delivery, tariffs, tracking, order management (Russia)

Overview

AI-generated overview

MCP server for the CDEK delivery service (Russia) that lets an assistant calculate shipping tariffs, create and track orders, find pickup points and manage cou-

What you can do
Calculate delivery cost and time for a route, including a comparison of all available tariffs and city/region lookup by name, postal code or country. Create, inspect, list and cancel delivery orders with sender, recipient and places. Track shipments by CDEK waybill number. Find pickup points and parcel lockers by city or GPS coordinates. Generate barcodes and labels, and produce PDF receipts or waybills. Book and check courier pickups, and register or delete webhook subscriptions for order status changes.
When to use it
Useful when an assistant needs to answer shipping questions for CDEK, compare tariffs, place or cancel delivery orders, track parcels, locate pickup points, or arrange courier pickup, especially for Russian e-commerce and logistics workflows.
Requirements
Runs locally via npx as the npm package @theyahia/cdek-mcp (Node.js). Requires CDEK API credentials from the CDEK account: CDEK_CLIENT_ID and CDEK_CLIENT_SECRET. Optional CDEK_SANDBOX=true uses the test environment; HTTP_PORT enables an HTTP transport. Network access to the CDEK API is needed.
Before you install
The server creates, cancels and modifies real delivery orders, courier pickups and webhooks when pointed at the production environment; use CDEK_SANDBOX=true while testing. It needs CDEK_CLIENT_ID and CDEK_CLIENT_SECRET, which grant access to the CDEK account. The README publishes a shared public sandbox key pair that CDEK rotates periodically; do not rely on it for anything beyond testing.

Installation

In SourceWeft

  1. Open cdek-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

MCP-сервер для СДЭК API — 16 инструментов для ИИ-агента: тарифы, заказы, трекинг

Если вы искали, как подключить доставку СДЭК к Claude или другому ИИ-агенту, — этот сервер закрывает весь цикл отправления через CDEK API v2: расчёт тарифов и сроков, создание и отмена заказов, трекинг по накладной, поиск городов и пунктов выдачи, вызов курьера, штрихкоды и квитанции, вебхуки. Спрашиваете «сколько стоит и как долго везти 2 кг из Москвы в Казань» — получаете сравнение тарифов таблицей, а не форму на сайте. Работает и на тестовом контуре СДЭК, и на боевом.

[npm] [CI] [License: MIT]

[Демонстрация: вопрос «сколько стоит и как долго везти 2 кг из Москвы в Казань» — агент вызывает calculate_tariff_list и отвечает таблицей тарифов]

Инструменты (16)

Тарифы

ИнструментОписание
calculate_tariffРассчитать стоимость и срок доставки по конкретному тарифу
calculate_tariff_listВсе доступные тарифы с ценами по маршруту

Заказы

ИнструментОписание
create_orderСоздать заказ на доставку с отправителем, получателем и местами
get_orderДетали и статус заказа по UUID
delete_orderОтменить или удалить заказ по UUID
list_ordersПоиск и фильтрация заказов по периоду, номеру ИМ или накладной СДЭК

Трекинг

ИнструментОписание
track_shipmentОтследить отправление по номеру накладной СДЭК

География

ИнструментОписание
get_citiesПоиск по справочнику городов — по названию, индексу или стране
get_regionsПоиск по справочнику регионов — по стране или названию
list_delivery_pointsНайти пункты выдачи и постаматы по городу или GPS-координатам

Штрихкоды и печать

ИнструментОписание
generate_barcodeСформировать штрихкод или этикетку для заказа
print_receiptСформировать PDF квитанции или накладной по заказу

Вызов курьера

ИнструментОписание
create_courier_pickupЗаказать забор груза курьером по заказу
get_courier_pickupПроверить статус заявки на вызов курьера

Вебхуки

ИнструментОписание
create_webhookЗарегистрировать вебхук на смену статуса заказа или фото доставки
delete_webhookУдалить подписку на вебхук по UUID

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

Claude Desktop

~/.config/claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "cdek": {      "command": "npx",      "args": ["-y", "@theyahia/cdek-mcp"],      "env": {        "CDEK_CLIENT_ID": "<YOUR_CLIENT_ID>",        "CDEK_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",        "CDEK_SANDBOX": "true"      }    }  }}

Cursor / Windsurf

.cursor/mcp.json или .windsurf/mcp.json:

json
{  "mcpServers": {    "cdek": {      "command": "npx",      "args": ["-y", "@theyahia/cdek-mcp"],      "env": {        "CDEK_CLIENT_ID": "<YOUR_CLIENT_ID>",        "CDEK_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",        "CDEK_SANDBOX": "true"      }    }  }}

VS Code (Copilot)

.vscode/mcp.json:

json
{  "servers": {    "cdek": {      "command": "npx",      "args": ["-y", "@theyahia/cdek-mcp"],      "env": {        "CDEK_CLIENT_ID": "<YOUR_CLIENT_ID>",        "CDEK_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",        "CDEK_SANDBOX": "true"      }    }  }}

Транспорт Streamable HTTP

Для веб-развёртываний используйте флаг --http или переменную HTTP_PORT:

bash
HTTP_PORT=3000 npx @theyahia/cdek-mcp --http

Эндпоинты:

  • POST /mcp — MCP JSON-RPC
  • GET /mcp — SSE-поток
  • DELETE /mcp — завершение сессии
  • GET /health — проверка состояния

Переменные окружения

ПеременнаяОбяз.Описание
CDEK_CLIENT_IDдаClient ID из личного кабинета СДЭК
CDEK_CLIENT_SECRETдаClient Secret из личного кабинета СДЭК
CDEK_SANDBOXнетtrue — работать в песочнице (api.edu.cdek.ru)
HTTP_PORTнетПорт HTTP-транспорта (включает HTTP-режим)

Где взять ключи API: личный кабинет СДЭК → Интеграция → Ключи API.

Режим песочницы

Задайте CDEK_SANDBOX=true, чтобы работать с тестовым контуром СДЭК (api.edu.cdek.ru). Боевой контур — api.cdek.ru.

СДЭК публикует общий тестовый аккаунт для интеграционных проверок:

  • Client ID: EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI
  • Client Secret: PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kh

⚠️ СДЭК время от времени меняет этот общий тестовый аккаунт. Если вы получили OAuth token error (HTTP 401) … invalid_client, публичная пара уже сменилась — запросите собственные ключи песочницы в кабинете интеграции (lk.cdek.ru → Интеграция → Ключи API).

Авторизация

OAuth 2.0, поток Client Credentials, реализован в OAuthStrategy из @theyahia/mcp-core:

  • Токен запрашивается автоматически при первом обращении
  • Кэширование токена с упреждающим обновлением незадолго до истечения
  • Дедупликация параллельных запросов (одно обновление токена делится между всеми)
  • Автоматический повтор на 401 со сбросом токена

E-commerce-стек

Соберите полный ИИ-стек для интернет-магазина вместе с другими серверами WWmcp:

СерверНазначение
cdek-mcpДоставка и логистика
dadata-mcpПроверка адресов, поиск компаний

Часть серии WWmcp.

Демо-промпты

  1. «Сколько стоит отправить посылку 2 кг из Москвы в Санкт-Петербург?» Использует get_cities для поиска кодов городов, затем calculate_tariff_list для сравнения всех доступных тарифов.

  2. «Найди ближайший пункт выдачи СДЭК к Красной площади» Использует get_cities, чтобы получить city_code Москвы, затем list_delivery_points с latitude: 55.7539, longitude: 37.6208, radius_km: 5 — результаты фильтруются по радиусу и сортируются по расстоянию (у каждого есть поля координаты и расстояние_км).

  3. «Создай заказ на отправку книги из Казани в Новосибирск, вызови курьера и распечатай квитанцию» Использует create_order, затем create_courier_pickup для забора груза и print_receipt для накладной.

Разработка

bash
git clone https://github.com/theYahia/cdek-mcp.gitcd cdek-mcpnpm install
npm run lint        # ESLint (flat config)npm run typecheck   # tsc --noEmitnpm run build       # сборка в dist/npm test            # юнит-тесты (vitest)npm run test:e2e    # e2e smoke-тест (перечисляет инструменты, без реальных ключей)

Запуск сервера локально против песочницы СДЭК (api.edu.cdek.ru) — с общей тестовой парой из раздела Режим песочницы или со своими ключами:

bash
CDEK_SANDBOX=true \CDEK_CLIENT_ID=<YOUR_SANDBOX_CLIENT_ID> \CDEK_CLIENT_SECRET=<YOUR_SANDBOX_CLIENT_SECRET> \npm run dev

Заметки о релизах — в CHANGELOG.md.

Лицензия

MIT


Часть WWmcp · Telegram: @vhodvai

Source: README.md at commit ce17a7f

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v2.0.2LatestSep 16, 2026

Score

50% 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

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • 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 listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts