mcpField
C
chestnyznak-mcp

chestnyznak-mcp

Local
github.com/theYahiaBusiness & Marketing5Updated 8w ago

About chestnyznak-mcp

chestnyznak-mcp provides MCP tools for checking product marking codes through the Chestniy ZNAK APIs. Public code checks need no token, while product searches by GTIN and CIS lookups require a True API token.

Key features

  1. 01Validate marking codes without auth
  2. 02Retrieve product details from a code
  3. 03Check up to 50 codes in a batch
  4. 04Search products by GTIN with a token
  5. 05Look up CIS data with a token

Use cases

  1. 01Verify a product’s marking code
  2. 02Review product and owner details
  3. 03Check a batch of marked products
  4. 04Retrieve GTIN or CIS data with True API access

MCP support

Exposes five tools to MCP clients: three public marking-code and product checks, plus two True API lookups that require CHESTNYZNAK_TOKEN. Supports stdio and Streamable HTTP transports.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"theyahia-chestnyznak": {
"command": "npx",
"args": [
"-y",
"@theyahia/chestnyznak-mcp"
],
"env": {
"API_KEY": "<API_KEY>"
}
}
}
}
Run commandnpx -y @theyahia/chestnyznak-mcp
Environment variables to set
API_KEYSecretAPI key for the service

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@theyahia/chestnyznak-mcp1.0.0

Tools

2

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
codestringYesProduct marking code (DataMatrix, barcode, etc.)

Details

From the project README

MCP-сервер для Честного Знака — проверка маркировки товаров через ИИ

Если вы искали, как проверить код маркировки Честного Знака не заходя в личный кабинет, подключить True API ЦРПТ к нейросети или узнать статус товара прямо в чате — это оно. 5 инструментов: публичные проверки кодов работают сразу, без регистрации и токена; данные True API — по токену. Присылаете код DataMatrix — получаете статус, владельца и историю вместо вкладки с формой.

npm License: MIT

Часть серии WWmcp (46 серверов) by @theYahia.

Установка

Claude Desktop
{
  "mcpServers": {
    "chestnyznak": {
      "command": "npx",
      "args": ["-y", "@theyahia/chestnyznak-mcp"]
    }
  }
}
Claude Desktop (с авторизацией)
{
  "mcpServers": {
    "chestnyznak": {
      "command": "npx",
      "args": ["-y", "@theyahia/chestnyznak-mcp"],
      "env": {
        "CHESTNYZNAK_TOKEN": "ваш-токен"
      }
    }
  }
}
Claude Code
claude mcp add chestnyznak -- npx -y @theyahia/chestnyznak-mcp

# С авторизацией
CHESTNYZNAK_TOKEN=ваш-токен claude mcp add chestnyznak -- npx -y @theyahia/chestnyznak-mcp
Streamable HTTP
npx @theyahia/chestnyznak-mcp --http --port=3000
# Endpoint: POST http://127.0.0.1:3000/mcp
# Health:   GET  http://127.0.0.1:3000/health

По умолчанию HTTP-сервер слушает только 127.0.0.1 и проверяет заголовок Host (защита от DNS-rebinding). Чтобы открыть наружу — --host=0.0.0.0 (на свой риск, аутентификации на /mcp нет).

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

ПеременнаяОбязательнаОписание
CHESTNYZNAK_TOKENНетТокен True API для инструментов search_products, get_cis_info. См. «Авторизация».
CHESTNYZNAK_BASE_URLНетOrigin авторизованного API (по умолчанию https://markirovka.crpt.ru). Допускаются только https хосты *.crpt.ru / *.crptech.ru.
CHESTNYZNAK_PUBLIC_BASE_URLНетБазовый URL публичного API (по умолчанию https://mobile.api.crpt.ru/mobile). Удобно для моков в тестах.

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

Публичные (без авторизации)
ИнструментАргументыОписание
check_marking_codecode, codeType?Проверка подлинности по коду маркировки
get_product_infocode, codeType?Подробная информация: название, группа, производитель, владелец
check_batchcodes[], codeType?Пакетная проверка до 50 кодов (параллелизм ограничен)

codeType — datamatrix (по умолчанию), qr или ean13.

Авторизованные (CHESTNYZNAK_TOKEN)
ИнструментАргументыОписание
search_productsquery (GTIN)Информация о товаре по GTIN из True API
get_cis_infocisИнформация о CIS (коде идентификации) из True API

Поиск по названию/бренду — это Национальный каталог (nk.crpt.ru), отдельный API; здесь не поддерживается. search_products работает по GTIN.

Формат ответа

check_marking_code:

{ "code": "0104600702028445", "found": true, "valid": true, "status": "INTRODUCED" }

get_product_info (поля producer/owner/status берутся из вложенного объекта группы товара, при отсутствии — null):

{
  "code": "0104600702028445",
  "found": true,
  "valid": true,
  "status": "INTRODUCED",
  "productName": "Молоко 3.2%",
  "category": "milk",
  "producerName": "АО \"Данон Россия\"",
  "ownerName": "ООО Магнит",
  "ownerInn": "2309085638"
}

status — строковый enum: EMITTED / APPLIED / INTRODUCED / RETIRED / WRITTEN_OFF / DISAGGREGATION и др.

Каждый инструмент дополнительно возвращает structuredContent (типизированный объект по outputSchema), помимо текстового JSON.

Примеры

Проверь код маркировки 0104600702028445
Расскажи подробнее о товаре с кодом 010460070202844521
Проверь пачку кодов: 0104600702028445, 0104600702028446
Информация о товаре с GTIN 04600702028445
Информация о CIS 0104600702028445

Авторизация (True API)

⚠️ Важно: у True API (ГИС МТ) нет статичного «вечного» токена. Токен получают по схеме «запрос-подпись» сертификатом УКЭП (ГОСТ):

  1. GET /api/v3/true-api/auth/key → { uuid, data }
  2. Подписать data сертификатом УКЭП (CAdES-BES, base64).
  3. POST /api/v3/true-api/auth/simpleSignIn { uuid, data: <подпись> } → токен.
  4. Срок жизни токена — не более ~10 часов, далее повторная авторизация.

Этот сервер использует CHESTNYZNAK_TOKEN как уже полученный таким образом токен (он отправляется как Authorization: Bearer). Подпись УКЭП выполняется вне сервера (например, через КриптоПро) — встроенного ГОСТ-подписания здесь нет. Регистрация доступна юрлицам/ИП на markirovka.crpt.ru.

Эндпоинты/методы авторизованной части (пути, тело запроса) выверены по официальной документации и открытым клиентам, но не проверены против живого токена из-за требования УКЭП. Если ЦРПТ изменит контракт — поправьте через CHESTNYZNAK_BASE_URL.

Skills

SkillТриггер
skill-check-product«Проверь маркировку товара по коду»
skill-search«Найди товар по GTIN»

Troubleshooting

СимптомПричина / решение
CHESTNYZNAK_TOKEN не заданИнструменты search_products/get_cis_info требуют токен (см. «Авторизация»).
таймаут запроса / все попытки исчерпаныСеть/недоступность API; сервер делает до 3 попыток с backoff. Публичный API может не отвечать с не-РФ IP.
HTTP 401 / HTTP 403Токен невалиден или истёк (~10ч) — получите заново.
HTTP 429Рейт-лимит; сервер повторяет автоматически. Для batch уменьшите размер пачки.
CHESTNYZNAK_BASE_URL отклонёнOverride должен быть https и хостом *.crpt.ru/*.crptech.ru.

API

  • Публичный (без авторизации): GET https://mobile.api.crpt.ru/mobile/check?code=<код>&codeType=<тип> — недокументированный эндпоинт мобильного приложения.
  • Авторизованный (Bearer): https://markirovka.crpt.ru/api/v3/true-api/... — True API (ГИС МТ).

Разработка

npm ci
npm run typecheck   # tsc --noEmit (src + tests)
npm test            # vitest
npm run build       # tsc -> dist/
npm run dev         # tsx watch (stdio)
npm run dev:http    # tsx watch (HTTP)

Лицензия

MIT


Часть WWmcp · Telegram: @vhodvai

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.