mcpField
C
cdek-mcp

cdek-mcp

ローカル
github.com地図・旅行18 週間前に更新

cdek-mcp について

cdek-mcp は、CDEK API v2 の配送機能を AI エージェントに提供し、料金・日数の計算、注文管理、追跡、地域検索に対応します。集荷依頼、バーコードや領収書の生成、ステータス通知用 Webhook も扱います。

主な機能

  1. 01配送料金と所要日数の計算
  2. 02注文の作成・照会・取消
  3. 03送り状番号による荷物追跡
  4. 04都市・地域・受取拠点の検索
  5. 05クーリエ集荷の手配
  6. 06バーコード・領収書・Webhook の生成

活用シーン

  1. 01配送ルートごとの料金比較
  2. 02荷物追跡と注文状況の確認
  3. 03注文に対する集荷の手配
  4. 04近くの受取拠点やロッカーの検索

MCP 対応

MCP クライアントが CDEK API v2 を通じて配送業務を管理するための 16 個のツールを提供します。標準入出力と Streamable HTTP に対応し、テスト環境にも設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"theyahia-cdek": {
"command": "npx",
"args": [
"-y",
"@theyahia/cdek-mcp"
]
}
}
}
起動コマンドnpx -y @theyahia/cdek-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@theyahia/cdek-mcp2.0.2

ツール

14

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
packagesarrayはい荷物のリスト(最低 1 個)
tariff_codenumberはいСДЭК の тариф コード(例:136=倉庫から倉庫、137=倉庫から玄関、138=玄関から倉庫、139=玄関から玄関)
to_locationobjectはい届け先(code または postal_code が必須)
to_location.codenumberいいえСДЭК の受取人の都市コード
to_location.addressstringいいえ受取人の住所
to_location.postal_codestringいいえ受取人の郵便番号
from_locationobjectはい発送元(code または postal_code が必須)
from_location.codenumberいいえСДЭК の差出人の都市コード
from_location.addressstringいいえ差出人の住所
from_location.postal_codestringいいえ差出人の郵便番号

README(原文)English

プロジェクトの README より

この 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):

{
  "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-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 для накладной.

Разработка

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


Часть WWmcp · Telegram: @vhodvai

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。