chestnyznak-mcp について
chestnyznak-mcpは、Честный ЗНАК APIを通じて商品マーキングコードを確認するMCPツールを提供します。公開コードの確認にトークンは不要ですが、GTINによる商品検索とCIS照会にはTrue APIトークンが必要です。
主な機能
- 01認証なしでマーキングコードを検証
- 02コードから商品詳細を取得
- 03最大50件のコードを一括確認
- 04トークンを使ってGTINで商品検索
- 05トークンを使ってCISデータを照会
活用シーン
- 01商品のマーキングコードを検証
- 02商品と所有者の情報を確認
- 03マーキング済み商品を一括確認
- 04True APIでGTINまたはCISデータを取得
MCP 対応
MCPクライアントに5つのツールを公開します。認証不要のコード・商品確認が3つ、CHESTNYZNAK_TOKENが必要なTrue API照会が2つです。stdioとStreamable HTTPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| code | string | はい | 商品マーキングコード(DataMatrix、バーコードなど) |
README(原文)English
プロジェクトの README よりこの README の日本語訳はまだありません。以下は英語の原文です。日本語の紹介はページ上部をご覧ください。
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_code | code, codeType? | Проверка подлинности по коду маркировки |
get_product_info | code, codeType? | Подробная информация: название, группа, производитель, владелец |
check_batch | codes[], codeType? | Пакетная проверка до 50 кодов (параллелизм ограничен) |
codeType — datamatrix (по умолчанию), qr или ean13.
Авторизованные (CHESTNYZNAK_TOKEN)
| Инструмент | Аргументы | Описание |
|---|---|---|
search_products | query (GTIN) | Информация о товаре по GTIN из True API |
get_cis_info | cis | Информация о 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 (ГИС МТ) нет статичного «вечного» токена. Токен получают по схеме «запрос-подпись» сертификатом УКЭП (ГОСТ):
GET /api/v3/true-api/auth/key→{ uuid, data }- Подписать
dataсертификатом УКЭП (CAdES-BES, base64). POST /api/v3/true-api/auth/simpleSignIn{ uuid, data: <подпись> }→ токен.- Срок жизни токена — не более ~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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。