io.github.theYahia/chestnyznak-mcp

السجل الرسمي الأمن

MCP server for Chestniy ZNAK (Честный ЗНАК) API — product marking verification. No auth needed for

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package @theyahia/chestnyznak-mcp
Claude Code
claude mcp add chestnyznak-mcp -e 'API_KEY=<your api_key>' -- npx -y @theyahia/chestnyznak-mcp@1.0.0
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "chestnyznak-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@theyahia/chestnyznak-mcp@1.0.0"
            ],
            "env": {
                "API_KEY": "<your api_key>"
            }
        }
    }
}

متغيرات البيئة

  • API_KEY إلزامي سري API key for the service

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. MCP-сервер для Честного Знака — проверка маркировки товаров через ИИ
  2. Установка
  3. Переменные окружения
  4. Инструменты (5)
  5. Формат ответа
  6. Примеры
  7. Авторизация (True API)
  8. Skills
  9. Troubleshooting
  10. API
  11. Разработка
  12. Лицензия

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

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

Часть серии 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

الأسئلة الشائعة

ما هو io.github.theYahia/chestnyznak-mcp؟

MCP server for Chestniy ZNAK (Честный ЗНАК) API — product marking verification. No auth needed for

كيف أثبّت io.github.theYahia/chestnyznak-mcp؟

يعمل على جهازك. في Claude Code: claude mcp add chestnyznak-mcp -e 'API_KEY=<your api_key>' -- npx -y @theyahia/chestnyznak-mcp@1.0.0. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج io.github.theYahia/chestnyznak-mcp إلى مفتاح API؟

نعم. يتطلب API_KEY، وتضبطها في إعداداته.

هل io.github.theYahia/chestnyznak-mcp مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون io.github.theYahia/chestnyznak-mcp؟

ينشره theYahia. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.