moysklad-mcp

io.github.theYahia由 GitHub 账号 theYahia 发布v3.0.1更新于 Oct 24, 2026

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

概览

AI 生成的概览

面向俄罗斯 MoySklad(库存/ERP)的 MCP 服务器,让助手查询商品、库存、订单、单据、收付款与报表。

可以做什么
  • 搜索并创建商品、服务、变体、套装与价格类型,更新价格
  • 查询整体库存与分仓库库存
  • 查找并创建往来单位(客户与供应商)
  • 创建并跟踪客户订单、供应商订单、发货、收货与退货
  • 创建调拨、入库、核销与盘点等仓库单据
  • 创建收付款、现金单据与发票,并获取利润、销售、周转、资金与仪表盘报表
适用场景
适合让助手直接回答 MoySklad 账户中的库存数量、毛利或周转问题,或代为完成订单、发货、收付款等日常贸易与仓库单据操作,而无需导出到表格。
运行要求
通过 npx 在本地运行(Node 18 及以上;测试需 Node 20)。需要 MoySklad 账户,并在 MOYSKLAD_TOKEN 中提供 bearer 令牌,或提供 MOYSKLAD_LOGIN 与 MOYSKLAD_PASSWORD。用户或令牌需对所用实体具有查看或编辑权限;webhook 与部分报表需要付费套餐。需能访问 MoySklad JSON API 1.2。
安装前请注意
服务器以所提供令牌或登录账号的完整权限行事,许多工具会创建和修改真实业务单据(订单、发货、收付款、核销、webhook),并可删除 webhook。生成新令牌会使旧令牌失效。可选的 HTTP 传输以你的令牌身份运行,启用 MOYSKLAD_HTTP_CORS_ORIGIN 会将其暴露给浏览器来源。业务数据会发送至 MoySklad 的 API。

安装

在 SourceWeft 中

  1. 打开 控制台中的 moysklad-mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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

来源:README.md,提交 d4e8202

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v3.0.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分