moysklad-mcp

io.github.theYahiaPublished by GitHub account theYahiav3.0.1Updated Oct 24, 2026

MCP server for MoySklad — warehouse, inventory, orders, reports (Russia)

Overview

AI-generated overview

MCP server for MoySklad (Russian inventory/ERP) that lets an assistant search products, manage stock, orders, documents, payments and reports.

What you can do
  • Search and create products, services, variants, bundles and price types, and update prices
  • Read current stock overall and per warehouse
  • Find and create counterparties (customers and suppliers)
  • Create and track customer and purchase orders, shipments, supplies and returns
  • Create warehouse documents: moves, entries, write-offs and inventory counts
  • Create payments, cash orders and invoices, and pull profit, sales, turnover, money and dashboard reports
When to use it
Useful when an assistant should answer questions about stock levels, margins or turnover in a MoySklad account, or carry out routine trading and warehouse paperwork such as orders, shipments and payments without exporting to spreadsheets.
Requirements
Runs locally via npx (Node 18 or newer; tests need Node 20). Needs a MoySklad account and either a bearer token in MOYSKLAD_TOKEN or MOYSKLAD_LOGIN plus MOYSKLAD_PASSWORD. The user or token must have view or edit rights on the entities used; webhooks and some reports require a paid MoySklad plan. Network access to the MoySklad JSON API 1.2.
Before you install
The server acts with the full rights of the supplied MoySklad token or login, so many tools create and change real business documents (orders, shipments, payments, write-offs, webhooks) and can delete webhooks. Generating a new token revokes the previous one. The optional HTTP transport runs on behalf of your token, so enabling MOYSKLAD_HTTP_CORS_ORIGIN exposes it to browser origins. Business data is sent to MoySklad's API.

Installation

In SourceWeft

  1. Open moysklad-mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

MCP-сервер для МойСклад — 60 инструментов для ИИ-агента: товары, склад, заказы, финансы

Если вы искали, как подключить МойСклад к Claude или другому ИИ-агенту, — этот сервер закрывает весь торгово-складской цикл через JSON API 1.2: каталог и цены, остатки по складам, контрагенты, заказы покупателей и поставщикам, отгрузки, приёмки, перемещения, инвентаризации, списания, возвраты, счета, платежи и касса, отчёты по прибыли и оборотам, аудит и вебхуки. Спрашиваете «сколько футболок свободно к продаже» или «какая маржа по каждому товару за август» — получаете таблицу с цифрами, а не выгрузку в Excel. Цены во всех инструментах в рублях (перевод в копейки, которых требует API МойСклад, сервер делает сам), лимит запросов соблюдается автоматически.

[npm] [license]

[Демонстрация: вопрос «сколько футболок на складе и сколько из них в резерве» — агент вызывает get_stock и отвечает таблицей остатков и резервов]

Часть WWmcp — набора MCP-серверов для развивающихся рынков.

Быстрый старт

Claude Desktop

Добавьте в claude_desktop_config.json:

json
{  "mcpServers": {    "moysklad": {      "command": "npx",      "args": ["-y", "@theyahia/moysklad-mcp"],      "env": {        "MOYSKLAD_TOKEN": "your-bearer-token"      }    }  }}

Чтобы использовать логин и пароль вместо токена, замените блок env на:

json
"env": { "MOYSKLAD_LOGIN": "[email protected]", "MOYSKLAD_PASSWORD": "your-password" }

Claude Code

bash
claude mcp add moysklad --env MOYSKLAD_TOKEN=your-bearer-token -- npx -y @theyahia/moysklad-mcp

Cursor / Windsurf

Добавьте в настройки MCP:

json
{  "moysklad": {    "command": "npx",    "args": ["-y", "@theyahia/moysklad-mcp"],    "env": { "MOYSKLAD_TOKEN": "your-bearer-token" }  }}

Авторизация

ПеременнаяОписание
MOYSKLAD_TOKENBearer-токен (предпочтительно)
MOYSKLAD_LOGIN + MOYSKLAD_PASSWORDHTTP Basic-авторизация

Токен выдаётся в МоёмСкладе: Настройки → Пользователи → Токены доступа (также работает POST /security/token с Basic-авторизацией). Генерация нового токена отзывает предыдущий.

Нужные права: у пользователя или токена должен быть доступ к тем сущностям, с которыми вы работаете. Читающим инструментам нужны права просмотра, создающим и изменяющим — права редактирования соответствующего типа документов. Вебхуки и часть отчётов требуют платного тарифа МойСклад.

Цены

API МойСклад хранит деньги в копейках (1 рубль = 100 копеек). Сервер конвертирует автоматически:

  • На вход: передавайте цены и суммы в рублях (например, 1500.50)
  • На выход: цены и суммы возвращаются в рублях
  • (Отчёт get_dashboard проксируется как есть, поэтому денежные значения в нём остаются в копейках.)

Если у товара есть цена продажи, МойСклад требует тип цены. Сервер сам подставляет тип цены по умолчанию из вашего аккаунта (берёт из list_price_types); чтобы выбрать конкретный, передайте price_type_href.

Инструменты (60)

Товары и каталог

ИнструментОписание
search_productsПоиск товаров по названию или артикулу
get_productТовар по UUID (raw — полный объект)
create_productСоздать товар (тип цены подставляется автоматически)
update_pricesОбновить цены продажи, закупки и минимальную
search_assortmentСквозной поиск по товарам, модификациям, услугам и комплектам
list_price_typesТипы цен (первый — по умолчанию)
search_variants / search_bundles / search_servicesПоиск модификаций / комплектов / услуг
create_serviceСоздать услугу

Остатки

ИнструментОписание
get_stockТекущие остатки (количество, резерв, в пути)
get_stock_by_storeОстатки в разрезе складов
get_stock_currentБыстрый срез текущих остатков

Контрагенты

ИнструментОписание
get_counterpartiesПоиск по названию, ИНН или телефону
get_counterpartyПолная карточка (raw — полный объект)
create_counterpartyСоздать покупателя или поставщика

Заказы и отгрузки

ИнструментОписание
create_customer_order / get_orders / get_customer_order / update_customer_order_statusЖизненный цикл заказа покупателя
create_purchase_order / get_purchase_ordersЗаказы поставщикам
create_demandОтгрузка, привязанная к заказу и складу
create_supplyПриёмка (поступление от поставщика)
create_sales_return / create_purchase_returnВозвраты от покупателей и поставщикам

Складские документы

ИнструментОписание
create_move / get_movesПеремещение между складами
create_enter / get_entersОприходование
create_loss / get_lossesСписание
create_inventory / get_inventoriesИнвентаризация

Финансы

ИнструментОписание
create_payment_in / create_payment_outВходящие и исходящие банковские платежи
create_cash_in / create_cash_outПриходные и расходные кассовые ордера
create_invoice_out / create_invoice_in / get_invoices_outСчета покупателям и от поставщиков

Отчёты

ИнструментОписание
get_profit_reportПрибыль по товарам (выручка, себестоимость, маржа)
get_sales_reportПродажи по товарам (количество, выручка)
get_dashboardПоказатели дашборда за день, неделю, месяц
get_turnoverОборачиваемость товаров за период
get_money_reportТекущие остатки денег по счетам и кассам

Справочники и аудит

ИнструментОписание
list_stores / list_organizationsСклады и юрлица
list_employees / list_currencies / list_product_foldersСправочные данные
get_metadataМетаданные сущностей (статусы, атрибуты) — здесь берутся href статусов заказа
get_audit / get_entity_auditЖурнал событий аккаунта и история одной сущности

Вебхуки и универсальные инструменты

ИнструментОписание
list_webhooks / create_webhook / update_webhook / delete_webhookУправление вебхуками (CREATE/UPDATE/DELETE/PROCESSED)
get_documents / get_documentУниверсальные список и получение для любого типа сущностей, не покрытого выше

HTTP-транспорт

bash
HTTP_PORT=3000 npx @theyahia/moysklad-mcp# илиnpx @theyahia/moysklad-mcp --http 3000

Эндпоинты: POST /mcp (JSON-RPC), GET /health (статус). CORS выключен по умолчанию — HTTP-эндпоинт действует от имени вашего токена МойСклад, поэтому задавайте MOYSKLAD_HTTP_CORS_ORIGIN только если доверенному браузерному origin это действительно нужно.

Конфигурация (переменные окружения)

ПеременнаяПо умолчаниюОписание
MOYSKLAD_TOKEN—Bearer-токен
MOYSKLAD_LOGIN / MOYSKLAD_PASSWORD—Basic-авторизация
MOYSKLAD_RATE_BUCKET20Сколько запросов разрешено в трёхсекундном окне
MOYSKLAD_MAX_CONCURRENT5Максимум параллельных запросов (МойСклад допускает 5 на пользователя)
MOYSKLAD_HTTP_CORS_ORIGIN—Разрешённый CORS-origin для HTTP-транспорта
HTTP_PORT—Запустить транспорт Streamable HTTP на этом порту

Ограничение частоты запросов

МойСклад считает «вес за 3 секунды» (≈45 единиц для токена решения, меньше для логина с паролем; отчёты get_stock и get_stock_by_store стоят по 5 единиц каждый). Встроенный лимитер — token bucket, который списывается по весу запроса, и по умолчанию он консервативен (MOYSKLAD_RATE_BUCKET=20), потому что API может временно отключить доступ после серии 429. Повторы на 429/5xx идут с задержкой и учитывают заголовок X-Lognex-Retry-After. С токеном решения корзину можно поднять ближе к 45.

Решение проблем

СимптомПричина и что делать
Auth not configuredЗадайте MOYSKLAD_TOKEN (или MOYSKLAD_LOGIN + MOYSKLAD_PASSWORD).
auth error 401/403Токен недействителен или истёк, либо у пользователя нет прав на сущность. Новый токен отзывает старые.
MoySklad HTTP 412 …Не хватает обязательного поля (например, исходящему платежу может требоваться статья расходов — передайте expense_item_href). Параметр указан в тексте ошибки.
Много 429 / медленноСнизьте объём запросов или положитесь на встроенный лимитер; поднимайте MOYSKLAD_RATE_BUCKET только с токеном решения.
HTTP 415Среда выполнения не отправляет gzip — используйте Node ≥18 (его fetch делает gzip автоматически).
Вебхуки и часть отчётов не работаютТребуют платного тарифа МойСклад.

E-commerce-стек

СервисMCP-серверЧто делает
МойСклад@theyahia/moysklad-mcpСклад, товары, заказы
СДЭК@theyahia/cdek-mcpДоставка, трекинг
DaData@theyahia/dadata-mcpПроверка адресов
ЮKassa@theyahia/yookassa-mcpПлатежи

Демо-промпты

«Покажи все товары с низким остатком (меньше 10 штук) и их текущие цены»

«Создай заказ покупателя для контрагента „ООО Рога и Копыта“ на 50 штук „Widget Pro“ по 1500 рублей, потом сделай отгрузку с основного склада»

«Перемести 20 штук SKU LP15 с основного склада в магазин, затем подними отчёт по прибыли за этот месяц»

Разработка

bash
npm install        # зависимости + git-хуки (husky)npm run build      # tsc -> dist/npm run lint       # eslintnpm run typecheck  # tsc --noEmitnpm test           # vitest (требуется Node >=20)npm run coverage   # vitest с покрытием

Опубликованный рантайм поддерживает Node ≥18; тестовая оснастка требует Node ≥20.

Справочник API

Основан на JSON API 1.2 МойСклад.

Лицензия

MIT


Часть WWmcp · Telegram: @vhodvai

Source: README.md at commit d4e8202

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v3.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts