{
  "markdown": "# MCP-сервер для СДЭК API — 16 инструментов для ИИ-агента: тарифы, заказы, трекинг\n\nЕсли вы искали, как подключить доставку СДЭК к Claude или другому ИИ-агенту, — этот сервер закрывает весь цикл отправления через CDEK API v2: расчёт тарифов и сроков, создание и отмена заказов, трекинг по накладной, поиск городов и пунктов выдачи, вызов курьера, штрихкоды и квитанции, вебхуки. Спрашиваете «сколько стоит и как долго везти 2 кг из Москвы в Казань» — получаете сравнение тарифов таблицей, а не форму на сайте. Работает и на тестовом контуре СДЭК, и на боевом.\n\n[![npm](https://img.shields.io/npm/v/@theyahia/cdek-mcp)](https://www.npmjs.com/package/@theyahia/cdek-mcp)\n[![CI](https://github.com/theYahia/cdek-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/theYahia/cdek-mcp/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n![Демонстрация: вопрос «сколько стоит и как долго везти 2 кг из Москвы в Казань» — агент вызывает calculate_tariff_list и отвечает таблицей тарифов](https://raw.githubusercontent.com/theYahia/WWmcp/main/servers/cdek/assets/demo.svg)\n\n## Инструменты (16)\n\n### Тарифы\n| Инструмент | Описание |\n|------|-------------|\n| `calculate_tariff` | Рассчитать стоимость и срок доставки по конкретному тарифу |\n| `calculate_tariff_list` | Все доступные тарифы с ценами по маршруту |\n\n### Заказы\n| Инструмент | Описание |\n|------|-------------|\n| `create_order` | Создать заказ на доставку с отправителем, получателем и местами |\n| `get_order` | Детали и статус заказа по UUID |\n| `delete_order` | Отменить или удалить заказ по UUID |\n| `list_orders` | Поиск и фильтрация заказов по периоду, номеру ИМ или накладной СДЭК |\n\n### Трекинг\n| Инструмент | Описание |\n|------|-------------|\n| `track_shipment` | Отследить отправление по номеру накладной СДЭК |\n\n### География\n| Инструмент | Описание |\n|------|-------------|\n| `get_cities` | Поиск по справочнику городов — по названию, индексу или стране |\n| `get_regions` | Поиск по справочнику регионов — по стране или названию |\n| `list_delivery_points` | Найти пункты выдачи и постаматы по городу или GPS-координатам |\n\n### Штрихкоды и печать\n| Инструмент | Описание |\n|------|-------------|\n| `generate_barcode` | Сформировать штрихкод или этикетку для заказа |\n| `print_receipt` | Сформировать PDF квитанции или накладной по заказу |\n\n### Вызов курьера\n| Инструмент | Описание |\n|------|-------------|\n| `create_courier_pickup` | Заказать забор груза курьером по заказу |\n| `get_courier_pickup` | Проверить статус заявки на вызов курьера |\n\n### Вебхуки\n| Инструмент | Описание |\n|------|-------------|\n| `create_webhook` | Зарегистрировать вебхук на смену статуса заказа или фото доставки |\n| `delete_webhook` | Удалить подписку на вебхук по UUID |\n\n## Быстрый старт\n\n### Claude Desktop\n\n`~/.config/claude/claude_desktop_config.json` (macOS) или `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"cdek\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@theyahia/cdek-mcp\"],\n      \"env\": {\n        \"CDEK_CLIENT_ID\": \"<YOUR_CLIENT_ID>\",\n        \"CDEK_CLIENT_SECRET\": \"<YOUR_CLIENT_SECRET>\",\n        \"CDEK_SANDBOX\": \"true\"\n      }\n    }\n  }\n}\n```\n\n### Cursor / Windsurf\n\n`.cursor/mcp.json` или `.windsurf/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"cdek\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@theyahia/cdek-mcp\"],\n      \"env\": {\n        \"CDEK_CLIENT_ID\": \"<YOUR_CLIENT_ID>\",\n        \"CDEK_CLIENT_SECRET\": \"<YOUR_CLIENT_SECRET>\",\n        \"CDEK_SANDBOX\": \"true\"\n      }\n    }\n  }\n}\n```\n\n### VS Code (Copilot)\n\n`.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"cdek\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@theyahia/cdek-mcp\"],\n      \"env\": {\n        \"CDEK_CLIENT_ID\": \"<YOUR_CLIENT_ID>\",\n        \"CDEK_CLIENT_SECRET\": \"<YOUR_CLIENT_SECRET>\",\n        \"CDEK_SANDBOX\": \"true\"\n      }\n    }\n  }\n}\n```\n\n### Транспорт Streamable HTTP\n\nДля веб-развёртываний используйте флаг `--http` или переменную `HTTP_PORT`:\n\n```bash\nHTTP_PORT=3000 npx @theyahia/cdek-mcp --http\n```\n\nЭндпоинты:\n- `POST /mcp` — MCP JSON-RPC\n- `GET /mcp` — SSE-поток\n- `DELETE /mcp` — завершение сессии\n- `GET /health` — проверка состояния\n\n## Переменные окружения\n\n| Переменная | Обяз. | Описание |\n|----------|----------|-------------|\n| `CDEK_CLIENT_ID` | да | Client ID из личного кабинета СДЭК |\n| `CDEK_CLIENT_SECRET` | да | Client Secret из личного кабинета СДЭК |\n| `CDEK_SANDBOX` | нет | `true` — работать в песочнице (api.edu.cdek.ru) |\n| `HTTP_PORT` | нет | Порт HTTP-транспорта (включает HTTP-режим) |\n\nГде взять ключи API: [личный кабинет СДЭК](https://lk.cdek.ru) → Интеграция → Ключи API.\n\n## Режим песочницы\n\nЗадайте `CDEK_SANDBOX=true`, чтобы работать с тестовым контуром СДЭК (`api.edu.cdek.ru`). Боевой контур — `api.cdek.ru`.\n\nСДЭК публикует общий тестовый аккаунт для интеграционных проверок:\n- Client ID: `EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI`\n- Client Secret: `PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kh`\n\n> ⚠️ СДЭК время от времени меняет этот общий тестовый аккаунт. Если вы получили `OAuth token error (HTTP 401) … invalid_client`, публичная пара уже сменилась — запросите собственные ключи песочницы в кабинете интеграции ([lk.cdek.ru](https://lk.cdek.ru) → Интеграция → Ключи API).\n\n## Авторизация\n\nOAuth 2.0, поток Client Credentials, реализован в `OAuthStrategy` из [`@theyahia/mcp-core`](https://www.npmjs.com/package/@theyahia/mcp-core):\n- Токен запрашивается автоматически при первом обращении\n- Кэширование токена с упреждающим обновлением незадолго до истечения\n- Дедупликация параллельных запросов (одно обновление токена делится между всеми)\n- Автоматический повтор на 401 со сбросом токена\n\n## E-commerce-стек\n\nСоберите полный ИИ-стек для интернет-магазина вместе с другими серверами WWmcp:\n\n| Сервер | Назначение |\n|--------|-------------|\n| **cdek-mcp** | Доставка и логистика |\n| [dadata-mcp](https://github.com/theYahia/dadata-mcp) | Проверка адресов, поиск компаний |\n\nЧасть серии [WWmcp](https://github.com/theYahia/WWmcp).\n\n## Демо-промпты\n\n1. **«Сколько стоит отправить посылку 2 кг из Москвы в Санкт-Петербург?»**\n   Использует `get_cities` для поиска кодов городов, затем `calculate_tariff_list` для сравнения всех доступных тарифов.\n\n2. **«Найди ближайший пункт выдачи СДЭК к Красной площади»**\n   Использует `get_cities`, чтобы получить `city_code` Москвы, затем `list_delivery_points` с `latitude: 55.7539`, `longitude: 37.6208`, `radius_km: 5` — результаты фильтруются по радиусу и сортируются по расстоянию (у каждого есть поля `координаты` и `расстояние_км`).\n\n3. **«Создай заказ на отправку книги из Казани в Новосибирск, вызови курьера и распечатай квитанцию»**\n   Использует `create_order`, затем `create_courier_pickup` для забора груза и `print_receipt` для накладной.\n\n## Разработка\n\n```bash\ngit clone https://github.com/theYahia/cdek-mcp.git\ncd cdek-mcp\nnpm install\n\nnpm run lint        # ESLint (flat config)\nnpm run typecheck   # tsc --noEmit\nnpm run build       # сборка в dist/\nnpm test            # юнит-тесты (vitest)\nnpm run test:e2e    # e2e smoke-тест (перечисляет инструменты, без реальных ключей)\n```\n\nЗапуск сервера локально против песочницы СДЭК (`api.edu.cdek.ru`) — с общей тестовой парой из раздела [Режим песочницы](#режим-песочницы) или со своими ключами:\n\n```bash\nCDEK_SANDBOX=true \\\nCDEK_CLIENT_ID=<YOUR_SANDBOX_CLIENT_ID> \\\nCDEK_CLIENT_SECRET=<YOUR_SANDBOX_CLIENT_SECRET> \\\nnpm run dev\n```\n\nЗаметки о релизах — в [CHANGELOG.md](./CHANGELOG.md).\n\n## Лицензия\n\nMIT\n\n---\n\nЧасть [WWmcp](https://github.com/theYahia/WWmcp) · Telegram: [@vhodvai](https://t.me/vhodvai)\n",
  "bytes": 7611,
  "sha": "fafa022df292d2fb55374d7b2680faaf0985477c2490f8a3a06d6ac9f20d396a",
  "repo_slug": "theyahia/cdek-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_theyahia_cdek_mcp_0118b4f2/readme"
}