MCP server for CDEK — delivery, tariffs, tracking, order management (Russia)
SaferSkills independently audited cdek-mcp (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Если вы искали, как подключить доставку СДЭК к Claude или другому ИИ-агенту, — этот сервер закрывает весь цикл отправления через CDEK API v2: расчёт тарифов и сроков, создание и отмена заказов, трекинг по накладной, поиск городов и пунктов выдачи, вызов курьера, штрихкоды и квитанции, вебхуки. Спрашиваете «сколько стоит и как долго везти 2 кг из Москвы в Казань» — получаете сравнение тарифов таблицей, а не форму на сайте. Работает и на тестовом контуре СДЭК, и на боевом.
| Инструмент | Описание |
|---|---|
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 |
~/.config/claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"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/mcp.json или .windsurf/mcp.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"
}
}
}
}.vscode/mcp.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"
}
}
}
}Для веб-развёртываний используйте флаг --http или переменную HTTP_PORT:
HTTP_PORT=3000 npx @theyahia/cdek-mcp --httpЭндпоинты:
POST /mcp — MCP JSON-RPCGET /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.
СДЭК публикует общий тестовый аккаунт для интеграционных проверок:
EMscd6r9JnFiQ3bLoyjJY6eM78JrJceIPjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kh⚠️ СДЭК время от времени меняет этот общий тестовый аккаунт. Если вы получили OAuth token error (HTTP 401) … invalid_client, публичная пара уже сменилась — запросите собственные ключи песочницы в кабинете интеграции (lk.cdek.ru → Интеграция → Ключи API).OAuth 2.0, поток Client Credentials, реализован в OAuthStrategy из @theyahia/mcp-core:
Соберите полный ИИ-стек для интернет-магазина вместе с другими серверами WWmcp:
| Сервер | Назначение |
|---|---|
| cdek-mcp | Доставка и логистика |
| dadata-mcp | Проверка адресов, поиск компаний |
Часть серии WWmcp.
Использует get_cities для поиска кодов городов, затем calculate_tariff_list для сравнения всех доступных тарифов.
Использует get_cities, чтобы получить city_code Москвы, затем list_delivery_points с latitude: 55.7539, longitude: 37.6208, radius_km: 5 — результаты фильтруются по радиусу и сортируются по расстоянию (у каждого есть поля координаты и расстояние_км).
Использует create_order, затем create_courier_pickup для забора груза и print_receipt для накладной.
git clone https://github.com/theYahia/cdek-mcp.git
cd cdek-mcp
npm install
npm run lint # ESLint (flat config)
npm run typecheck # tsc --noEmit
npm run build # сборка в dist/
npm test # юнит-тесты (vitest)
npm run test:e2e # e2e smoke-тест (перечисляет инструменты, без реальных ключей)Запуск сервера локально против песочницы СДЭК (api.edu.cdek.ru) — с общей тестовой парой из раздела Режим песочницы или со своими ключами:
CDEK_SANDBOX=true \
CDEK_CLIENT_ID=<YOUR_SANDBOX_CLIENT_ID> \
CDEK_CLIENT_SECRET=<YOUR_SANDBOX_CLIENT_SECRET> \
npm run devЗаметки о релизах — в CHANGELOG.md.
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.