cdek-mcp について
cdek-mcp は、CDEK API v2 の配送機能を AI エージェントに提供し、料金・日数の計算、注文管理、追跡、地域検索に対応します。集荷依頼、バーコードや領収書の生成、ステータス通知用 Webhook も扱います。
主な機能
- 01配送料金と所要日数の計算
- 02注文の作成・照会・取消
- 03送り状番号による荷物追跡
- 04都市・地域・受取拠点の検索
- 05クーリエ集荷の手配
- 06バーコード・領収書・Webhook の生成
活用シーン
- 01配送ルートごとの料金比較
- 02荷物追跡と注文状況の確認
- 03注文に対する集荷の手配
- 04近くの受取拠点やロッカーの検索
MCP 対応
MCP クライアントが CDEK API v2 を通じて配送業務を管理するための 16 個のツールを提供します。標準入出力と Streamable HTTP に対応し、テスト環境にも設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
14掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| packages | array | はい | 荷物のリスト(最低 1 個) |
| tariff_code | number | はい | СДЭК の тариф コード(例:136=倉庫から倉庫、137=倉庫から玄関、138=玄関から倉庫、139=玄関から玄関) |
| to_location | object | はい | 届け先(code または postal_code が必須) |
| to_location.code | number | いいえ | СДЭК の受取人の都市コード |
| to_location.address | string | いいえ | 受取人の住所 |
| to_location.postal_code | string | いいえ | 受取人の郵便番号 |
| from_location | object | はい | 発送元(code または postal_code が必須) |
| from_location.code | number | いいえ | СДЭК の差出人の都市コード |
| from_location.address | string | いいえ | 差出人の住所 |
| from_location.postal_code | string | いいえ | 差出人の郵便番号 |
README(原文)English
プロジェクトの README よりこの README の日本語訳はまだありません。以下は英語の原文です。日本語の紹介はページ上部をご覧ください。
MCP-сервер для СДЭК API — 16 инструментов для ИИ-агента: тарифы, заказы, трекинг
Если вы искали, как подключить доставку СДЭК к Claude или другому ИИ-агенту, — этот сервер закрывает весь цикл отправления через CDEK API v2: расчёт тарифов и сроков, создание и отмена заказов, трекинг по накладной, поиск городов и пунктов выдачи, вызов курьера, штрихкоды и квитанции, вебхуки. Спрашиваете «сколько стоит и как долго везти 2 кг из Москвы в Казань» — получаете сравнение тарифов таблицей, а не форму на сайте. Работает и на тестовом контуре СДЭК, и на боевом.
Инструменты (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):
{
"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:
{
"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:
{
"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:
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.
СДЭК публикует общий тестовый аккаунт для интеграционных проверок:
- 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.
Демо-промпты
-
«Сколько стоит отправить посылку 2 кг из Москвы в Санкт-Петербург?» Использует
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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。