mcpField
C
cdek

cdek

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

cdek について

cdekは、CDEK v2 APIを扱うMCPサーバー、CLI、PydanticモデルのPythonパッケージです。配送注文の作成や追跡、受取拠点の検索、CDEK業務の自動化を行う開発者やユーザー向けです。

主な機能

  1. 01配送注文の作成と追跡
  2. 02バーコード・ラベル・送り状の取得
  3. 03都市と受取拠点の検索
  4. 04ローカル商品カタログの管理
  5. 05CLIと型付きPydanticモデル

活用シーン

  1. 01受取拠点またはドア配送の注文作成
  2. 02荷物の追跡と関連書類の取得
  3. 03都市内のCDEK受取拠点の検索
  4. 04Pythonプログラムで型付きAPIモデルを利用

MCP 対応

MCPサーバーは、注文、追跡、配送書類、都市、受取拠点の検索に使うCDEK v2 APIツールを公開し、ローカルの商品・設定ツールも提供します。API認証情報は環境変数で渡します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"dontsovcmc-cdek": {
"command": "uvx",
"args": [
"mcp-server-cdek"
],
"env": {
"CDEK_CLIENT": "<CDEK_CLIENT>",
"CDEK_SECRET": "<CDEK_SECRET>",
"CDEK_SENDER_COMPANY": "<CDEK_SENDER_COMPANY>",
"CDEK_SENDER_NAME": "<CDEK_SENDER_NAME>",
"CDEK_SENDER_FULL_NAME": "<CDEK_SENDER_FULL_NAME>",
"CDEK_SENDER_EMAIL": "<CDEK_SENDER_EMAIL>",
"CDEK_SENDER_PHONE": "<CDEK_SENDER_PHONE>",
"CDEK_MY_PVZ": "<CDEK_MY_PVZ>",
"CDEK_TIMEOUT": "<CDEK_TIMEOUT>",
"CDEK_FILE_TIMEOUT": "<CDEK_FILE_TIMEOUT>"
}
}
}
}
起動コマンドuvx mcp-server-cdek
設定が必要な環境変数
CDEK_CLIENTシークレット
CDEK_SECRETシークレット
CDEK_SENDER_COMPANYSender company name (can also be set via config_set tool)
CDEK_SENDER_NAMESender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMESender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILSender email (can also be set via config_set tool)
CDEK_SENDER_PHONESender phone (can also be set via config_set tool)
CDEK_MY_PVZMy PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUTHTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUTFile download timeout in seconds (default 60)

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

パッケージ
pypimcp-server-cdek0.6.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-server-cdek

Version

СДЭК v2 API用のMCPサーバー、CLIユーティリティ、Pydanticモデルライブラリです。

  • MCPサーバー — Claude Code、Claude Desktop、その他のMCPクライアントとの連携
  • CLIユーティリティ — ターミナルからのAPI操作、スクリプト、オートメーション
  • Pydanticモデル — Pythonプログラムで使用するための、型付けされたAPIモデル

すべてのデータはお使いのコンピューターに保存され、キーが外部に送信されることはありません。

目次

機能

配送
ツールCLI説明
cdek_create_ordercreate-order配送注文を作成します(自分から/自分宛て、受取拠点/ドアまで)
cdek_tracktrackСДЭКの番号で注文を追跡します
cdek_barcodebarcode注文のバーコードPDFをダウンロードします
cdek_labellabelラベルをダウンロードします(A4/A5/A6/A7、既定はA6、約70x120мм)
cdek_waybillwaybill注文の送り状PDFをダウンロードします
cdek_delivery_pointsdelivery-points市内の受取拠点を検索します
cdek_citiescities名称でСДЭКの都市を検索します
ローカル商品カタログ
ツールCLI説明
goods_listgoods listすべての商品を一覧表示します
goods_addgoods add商品を追加します(名称、重量、寸法、価格)
goods_removegoods remove名称で商品を削除します

商品はローカルの~/.config/mcp-server-cdek/goods.jsonに保存されます。注文の作成時、明示的に指定されていない場合は、カタログからパラメーターが取得されます。

設定
ツールCLI説明
config_show—現在の設定を表示します(発送元、受取拠点、商品の既定値)
config_set—設定値を指定します

設定は~/.config/mcp-server-cdek/config.jsonに保存されます。Claudeを通じて設定できます:「発送元の会社をООО Рогаに設定して」。


MCPサーバー

インストール
ステップ1. СДЭК APIキーを取得する
  1. СДЭКの個人アカウントに登録します
  2. 設定 → 連携に移動します
  3. Client IDとClient Secretをコピーします
ステップ2. MCPサーバーを接続する
Claude Codeへの接続

方法1:uvxを使う場合(パッケージのインストールは不要です)

uvが必要です。インストールされていない場合:

curl -LsSf https://astral.sh/uv/install.sh | sh
claude mcp add cdek \
  -e CDEK_CLIENT=ваш_client_id \
  -e CDEK_SECRET=ваш_client_secret \
  -- uvx mcp-server-cdek

方法2:pipを使う場合

pip install mcp-server-cdek

claude mcp add cdek \
  -e CDEK_CLIENT=ваш_client_id \
  -e CDEK_SECRET=ваш_client_secret \
  -- python -m mcp_server_cdek

発送元情報はClaudeを通じて設定します:「発送元を設定して:ООО Компания、Иванов И.И.、...」 → config_set。また、env varsで渡すこともできます(下記参照)。

削除するには:

claude mcp remove cdek
Подключение к Claude Desktop

Добавьте в конфигурационный файл:

КлиентОСПуть к файлу
Claude Codeвсе~/.claude/settings.json (секция mcpServers)
Claude DesktopmacOS~/Library/Application Support/Claude/claude_desktop_config.json
Claude DesktopWindows%APPDATA%\Claude\claude_desktop_config.json
Claude DesktopLinux~/.config/Claude/claude_desktop_config.json

Через uvx:

{
  "mcpServers": {
    "cdek": {
      "command": "uvx",
      "args": ["mcp-server-cdek"],
      "env": {
        "CDEK_CLIENT": "ваш_client_id",
        "CDEK_SECRET": "ваш_client_secret"
      }
    }
  }
}

Через pip (после pip install mcp-server-cdek):

{
  "mcpServers": {
    "cdek": {
      "command": "python",
      "args": ["-m", "mcp_server_cdek"],
      "env": {
        "CDEK_CLIENT": "ваш_client_id",
        "CDEK_SECRET": "ваш_client_secret"
      }
    }
  }
}

Остальные настройки (отправитель, ПВЗ, дефолты товара) задаются через config_set или env vars (см. таблицу ниже).

Подключение через --mcp-config

Подключает сервер только на время одной сессии Claude, не сохраняя в настройки. Токен хранится в отдельном .env.mcp файле, а не в конфиге Claude.

Из JSON-строки:

claude --mcp-config '{"cdek":{"command":"bash","args":["-c","source ~/.env.mcp && exec uvx mcp-server-cdek"]}}'

Из файла:

claude --mcp-config ~/mcp-servers.json

Пример ~/mcp-servers.json:

{
  "cdek": {
    "command": "bash",
    "args": ["-c", "source ~/.env.mcp && exec uvx mcp-server-cdek"]
  }
}

Пример ~/.env.mcp:

CDEK_CLIENT=ваш_client_id
CDEK_SECRET=ваш_client_secret
Шаг 3. Проверить

Попросите Claude: «найди ПВЗ СДЭК в Москве на Тверской» — он вызовет cdek_delivery_points.

Примеры (MCP)
  • «отправь посылку Иванову на ПВЗ MSK005, телефон +79001234567» → cdek_create_order
  • «отправь посылку до двери: Москва, Тверская 1, Петрову +79007654321» → cdek_create_order
  • «создай возвратный заказ от Сидорова, адрес: Самара, Ленина 10» → cdek_create_order (to_me)
  • «отследи посылку СДЭК 1234567890» → cdek_track
  • «скачай штрихкод для заказа 1234567890» → cdek_barcode
  • «скачай этикетку для заказа 1234567890» → cdek_label
  • «скачай этикетку A4 для заказа 1234567890» → cdek_label (format=A4)
  • «скачай накладную для заказа 1234567890» → cdek_waybill
  • «найди ПВЗ в Новосибирске» → cdek_delivery_points
  • «какие города СДЭК есть на "Новосиб"?» → cdek_cities
  • «добавь товар: Wi-Fi модем, 0.17 кг, 8x7x10 см» → goods_add
  • «список товаров» → goods_list

CLI-утилита

Установка (CLI)
pip install mcp-server-cdek

Переменные окружения CDEK_CLIENT и CDEK_SECRET обязательны:

export CDEK_CLIENT=ваш_client_id
export CDEK_SECRET=ваш_client_secret

Или через файл:

mcp-server-cdek --env /path/to/.env <command>

Формат файла — KEY=VALUE, по одной переменной на строку, #-комментарии.

Данные отправителя берутся из ~/.config/mcp-server-cdek/config.json или переменных окружения.

Использование (CLI)

Без аргументов запускается MCP-сервер, с командой — CLI. Все команды выводят JSON.

# Версия
mcp-server-cdek --version

# Справка
mcp-server-cdek --help
mcp-server-cdek <command> --help
Примеры команд
# Создать заказ (от меня на ПВЗ)
mcp-server-cdek create-order --direction from_me --name "Петров Пётр" --phone "+79007654321" --pvz MSK005

# Создать заказ (от меня до двери)
mcp-server-cdek create-order --direction from_me --name "Петров Пётр" --phone "+79007654321" --address "Москва, Тверская 1"

# Создать возвратный заказ (ко мне)
mcp-server-cdek create-order --direction to_me --name "Сидоров" --phone "+79009876543" --address "Самара, Ленина 10"

# Отследить заказ
mcp-server-cdek track 1234567890

# Скачать штрихкод
mcp-server-cdek barcode 1234567890 --output /tmp/barcode.pdf

# Скачать этикетку (по умолчанию A6 ~70x120мм)
mcp-server-cdek label 1234567890 --output /tmp/label.pdf
mcp-server-cdek label 1234567890 --output /tmp/label_a4.pdf --format A4

# Скачать накладную
mcp-server-cdek waybill 1234567890 --output /tmp/waybill.pdf

# Поиск ПВЗ
mcp-server-cdek delivery-points Москва --search Тверская

# Поиск городов
mcp-server-cdek cities Новосиб

# Справочник товаров
mcp-server-cdek goods list
mcp-server-cdek goods add --name "Wi-Fi модем" --weight 0.17 --height 8 --width 7 --length 10
mcp-server-cdek goods remove --name "Wi-Fi модем"

Pydantic-модели

Пакет содержит типизированные Pydantic-модели всех объектов API СДЭК v2. Модели можно использовать в своих Python-программах для валидации данных и автодополнения в IDE.

Установка (библиотеки)
pip install mcp-server-cdek
Использование в своих программах
from mcp_server_cdek.models import OrderRequest, TariffRequest, Location, Package, Item

# Валидация данных из API
data = {"tariff_code": 136, "from_location": {"code": 44}, "to_location": {"code": 137}}
req = TariffRequest.model_validate(data)
print(req.tariff_code)  # type-safe доступ к полям

# Создание объекта
item = Item(name="Товар", ware_key="ART001", weight=170, cost=1000, amount=1, payment={"value": 0})
print(item.model_dump_json())

Все модели используют extra="allow" для forward compatibility — неизвестные поля API не вызывают ошибок.

Полный список моделей: models.py


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

ПеременнаяОбязательнаяПо умолчаниюОписание
CDEK_CLIENTда—Client ID из личного кабинета СДЭК
CDEK_SECRETда—Client Secret из личного кабинета СДЭК
CDEK_SENDER_COMPANYнет—Название компании отправителя
CDEK_SENDER_NAMEнет—Краткое имя отправителя
CDEK_SENDER_FULL_NAMEнет—Полное ФИО отправителя
CDEK_SENDER_EMAILнет—Email отправителя
CDEK_SENDER_PHONEнет—Телефон отправителя
CDEK_MY_PVZнет—Код вашего ПВЗ (для приёма посылок "ко мне")
CDEK_DEFAULT_PRODUCT_NAMEнетТоварНазвание товара по умолчанию
CDEK_DEFAULT_WEIGHTнет0.17Вес по умолчанию в кг
CDEK_DEFAULT_HEIGHTнет8Высота по умолчанию в см
CDEK_DEFAULT_WIDTHнет7Ширина по умолчанию в см
CDEK_DEFAULT_LENGTHнет10Длина по умолчанию в см
CDEK_TIMEOUTнет30Таймаут HTTP-запросов к API (секунды)
CDEK_FILE_TIMEOUTнет60Таймаут скачивания файлов (секунды)

Настройки отправителя можно также задать через config_set — env vars имеют приоритет над конфиг-файлом.

Разработка

pip install -e ".[test]"
ruff check src/ tests/
pytest tests/ -v

Лицензия

MIT

コメント

MCP は初めてですか?

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

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