CDEK MCP and CLI: orders and tracking
mcp-server-cdek
An MCP server, CLI tool and Pydantic models for the CDEK v2 API: creating orders, barcodes, labels, waybills, pickup point search and a local goods catalog
High risk
We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.
Why this level
- It can create real delivery orders and waybills under live CDEK keys
- The Client ID and Secret give full access to the business account
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/mcp-server-cdekDetects the agents on your machine, checks the risk and pins the version.
Other ways to install
This entry is high risk, so there is no one-click install. Review the code and add the config by hand.
Run in a terminal
claude mcp add --transport stdio --env 'CDEK_CLIENT=<your CDEK_CLIENT>' --env 'CDEK_SECRET=<your CDEK_SECRET>' cdek -- uvx mcp-server-cdek==0.6.0Or add to the file .mcp.json, in the project
{
"mcpServers": {
"cdek": {
"command": "uvx",
"args": [
"mcp-server-cdek==0.6.0"
],
"env": {
"CDEK_CLIENT": "<your CDEK_CLIENT>",
"CDEK_SECRET": "<your CDEK_SECRET>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file ~/.cursor/mcp.json, for all projects
{
"mcpServers": {
"cdek": {
"command": "uvx",
"args": [
"mcp-server-cdek==0.6.0"
],
"env": {
"CDEK_CLIENT": "<your CDEK_CLIENT>",
"CDEK_SECRET": "<your CDEK_SECRET>"
}
}
}
}If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Run in a terminal
code --add-mcp '{"name":"cdek","type":"stdio","command":"uvx","args":["mcp-server-cdek==0.6.0"],"env":{"CDEK_CLIENT":"<your CDEK_CLIENT>","CDEK_SECRET":"<your CDEK_SECRET>"}}'Or add to the file .vscode/mcp.json, in the project
{
"servers": {
"cdek": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-cdek==0.6.0"
],
"env": {
"CDEK_CLIENT": "<your CDEK_CLIENT>",
"CDEK_SECRET": "<your CDEK_SECRET>"
}
}
}
}If the file already exists, add the server inside the servers key.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Run in a terminal
codex mcp add cdek --env 'CDEK_CLIENT=<your CDEK_CLIENT>' --env 'CDEK_SECRET=<your CDEK_SECRET>' -- uvx mcp-server-cdek==0.6.0Or add to the file ~/.codex/config.toml, for all projects
[mcp_servers.cdek]
command = "uvx"
args = ["mcp-server-cdek==0.6.0"]
env = { CDEK_CLIENT = "<your CDEK_CLIENT>", CDEK_SECRET = "<your CDEK_SECRET>" }If the file already exists, append the block to the end.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Run in a terminal
gemini mcp add -s user -e 'CDEK_CLIENT=<your CDEK_CLIENT>' -e 'CDEK_SECRET=<your CDEK_SECRET>' cdek uvx mcp-server-cdek==0.6.0Or add to the file ~/.gemini/settings.json, for all projects
{
"mcpServers": {
"cdek": {
"command": "uvx",
"args": [
"mcp-server-cdek==0.6.0"
],
"env": {
"CDEK_CLIENT": "<your CDEK_CLIENT>",
"CDEK_SECRET": "<your CDEK_SECRET>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file ~/.config/devin/mcp_config.json, for all projects
{
"mcpServers": {
"cdek": {
"command": "uvx",
"args": [
"mcp-server-cdek==0.6.0"
],
"env": {
"CDEK_CLIENT": "<your CDEK_CLIENT>",
"CDEK_SECRET": "<your CDEK_SECRET>"
}
}
}
}If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Formerly Windsurf.
Add to the file cline_mcp_settings.json, for all projects
{
"mcpServers": {
"cdek": {
"command": "uvx",
"args": [
"mcp-server-cdek==0.6.0"
],
"env": {
"CDEK_CLIENT": "<your CDEK_CLIENT>",
"CDEK_SECRET": "<your CDEK_SECRET>"
}
}
}
}If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file .roo/mcp.json, in the project
{
"mcpServers": {
"cdek": {
"command": "uvx",
"args": [
"mcp-server-cdek==0.6.0"
],
"env": {
"CDEK_CLIENT": "<your CDEK_CLIENT>",
"CDEK_SECRET": "<your CDEK_SECRET>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
A fork of Roo Code, same .roo folders.
Add to the file opencode.json, in the project
{
"mcp": {
"cdek": {
"type": "local",
"command": [
"uvx",
"mcp-server-cdek==0.6.0"
],
"environment": {
"CDEK_CLIENT": "<your CDEK_CLIENT>",
"CDEK_SECRET": "<your CDEK_SECRET>"
}
}
}
}If the file already exists, add the server inside the mcp key.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file ~/.config/zed/settings.json, for all projects
{
"context_servers": {
"cdek": {
"command": "uvx",
"args": [
"mcp-server-cdek==0.6.0"
],
"env": {
"CDEK_CLIENT": "<your CDEK_CLIENT>",
"CDEK_SECRET": "<your CDEK_SECRET>"
}
}
}
}If the file already exists, add the server inside the context_servers key.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file .codeassistant/mcp.json, in the project
{
"mcpServers": {
"cdek": {
"command": "uvx",
"args": [
"mcp-server-cdek==0.6.0"
],
"env": {
"CDEK_CLIENT": "<your CDEK_CLIENT>",
"CDEK_SECRET": "<your CDEK_SECRET>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
CDEK_CLIENTsecret, requiredCDEK_SECRETsecret, requiredCDEK_SENDER_COMPANYoptional- Sender company name (can also be set via config_set tool)
CDEK_SENDER_NAMEoptional- Sender short name (can also be set via config_set tool)
CDEK_SENDER_FULL_NAMEoptional- Sender full name (can also be set via config_set tool)
CDEK_SENDER_EMAILoptional- Sender email (can also be set via config_set tool)
CDEK_SENDER_PHONEoptional- Sender phone (can also be set via config_set tool)
CDEK_MY_PVZoptional- My PVZ code for returns (can also be set via config_set tool)
CDEK_TIMEOUToptional- HTTP request timeout in seconds (default 30)
CDEK_FILE_TIMEOUToptional- File download timeout in seconds (default 60)
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Get a Client ID and Client Secret in the CDEK dashboard (Settings, Integration), then add the server with claude mcp add cdek -e CDEK_CLIENT=... -e CDEK_SECRET=... -- uvx mcp-server-cdek.
Other ways from the author
claude mcp add cdek -e CDEK_CLIENT=ваш_client_id -e CDEK_SECRET=ваш_client_secret -- uvx mcp-server-cdekNo package install needed, requires uv.
This is third-party code. Review the repository files before installing.
What it does
The package offers three ways to work with the CDEK v2 API from one codebase: an MCP server for Claude Code and Desktop, a CLI tool for the terminal and scripts, and typed Pydantic models for your own Python programs. Its tools create a delivery order (from or to the sender, to a pickup point or the door), track it by number, download a PDF barcode, label and waybill, and search CDEK pickup points and cities. A local goods catalog lets you describe an item once (weight, dimensions, price) so you do not repeat those parameters on every order. All keys and data stay on the user's machine.
Who it is for. For sellers and small warehouses who want to create and track CDEK orders directly from a chat with an agent or from their own scripts.
Good fit when
- You need to create a delivery order and immediately get a label or waybill
- You need a local catalog of frequently shipped items so you do not re-enter dimensions
- You need a CLI tool for scripted automation, not just conversational use
Not a fit when
- You have no CDEK business account with a Client ID and Client Secret
- You need multi-carrier integration: this server covers only CDEK
Example request
Ship a package to Ivanov at the nearest CDEK pickup point in Moscow and download the labelLimitations
You need your own CDEK business account with integration keys; the service is not available to individuals without a contract. Sender settings and the goods catalog are stored locally in ~/.config/mcp-server-cdek. Full test coverage is claimed, but real order work needs live or test CDEK keys.
How to disable. Remove the server with claude mcp remove cdek and clear ~/.config/mcp-server-cdek with local settings.
MCP
- Transport
- stdio
- Authentication
- API key
| Environment variables | |
|---|---|
| CDEK_CLIENT required, secret | Client ID from the CDEK business account dashboard |
| CDEK_SECRET required, secret | Client Secret from the CDEK business account dashboard |
| CDEK_SENDER_COMPANY | Default sender company name |
Security check
- It can create real delivery orders and waybills under live CDEK keys
- The Client ID and Secret give full access to the business account
README in short
The README gives a detailed table of contents across three usage modes (MCP, CLI, Pydantic models), tool tables for delivery, the local goods catalog and settings, steps to connect to Claude Code and Claude Desktop via uvx or pip, CLI command examples, and a full environment variable table including default sender settings.
FAQ
Can I use it without installing the package?
Yes, via uvx mcp-server-cdek the server runs with no separate install, you only need uv.
Does it work as a regular command line tool?
Yes, with no arguments it runs the MCP server, and with a command it runs as a CLI, all commands output JSON.
Related
An MCP server with n8n node and template knowledge: the agent picks nodes, validates configs and, with API access, creates workflows in your n8n
Zapier's official MCP plugin: the agent gets actions across thousands of apps through your Zapier account
Awesome Claude Skills by Composio
Awesome Claude Skills
A curated list of Claude skills and plugins, plus Composio's own automation skills for 78 SaaS apps
A plugin and CLI catalog for agents: generates command-line interfaces for GUI apps like GIMP and Blender and installs ready ones via CLI-Hub