MCP-сервер для магазина «Ярче!»: поиск товаров, цены, состав и КБЖУ (Томск)
Overview
Сервер Model Context Protocol для интернет-магазина «Ярче!» (yarcheplus.ru). Даёт LLM доступ к каталогу: поиск товаров, цены, состав и КБЖУ. Регион по умолчанию — Томск. Сервер использует неофициальный GraphQL API сайта, который может измениться без предупреждения. Проект не связан с «Ярче!». Доступ только на чтение: корзина и заказы не затрагиваются. Аккаунт и API-ключи не нужны, сервер сам получает анонимный гостевой токен. - search_products — поиск товаров по тексту. - query (string, обязательный): поисковый запрос - page (integer, необязательный): номер страницы, с 1 (по умолчанию 1) - limit (integer, необязательный): товаров на странице, максимум 48 (по умолчанию 20) - get_product — карточка товара: цена, наличие, рейтинг, состав, КБЖУ на 100 г, срок хранения и другие свойства. - product_id (integer, обязательный): id товара из поиска или каталога - list_categories — дерево категорий каталога. У подкатегорий заполнен parent_tree_id.
README
Yarche MCP Server
Сервер Model Context Protocol для интернет-магазина «Ярче!» (yarcheplus.ru). Даёт LLM доступ к каталогу: поиск товаров, цены, состав и КБЖУ. Регион по умолчанию — Томск.
[!NOTE] Сервер использует неофициальный GraphQL API сайта, который может измениться без предупреждения. Проект не связан с «Ярче!». Доступ только на чтение: корзина и заказы не затрагиваются. Аккаунт и API-ключи не нужны, сервер сам получает анонимный гостевой токен.
Доступные инструменты
-
search_products— поиск товаров по тексту.query(string, обязательный): поисковый запросpage(integer, необязательный): номер страницы, с 1 (по умолчанию 1)limit(integer, необязательный): товаров на странице, максимум 48 (по умолчанию 20)
-
get_product— карточка товара: цена, наличие, рейтинг, состав, КБЖУ на 100 г, срок хранения и другие свойства.product_id(integer, обязательный): id товара из поиска или каталога
-
list_categories— дерево категорий каталога. У подкатегорий заполненparent_tree_id. -
get_category_products— товары категории.category_id(integer, обязательный): id категории изlist_categoriespage(integer, необязательный): номер страницы, с 1 (по умолчанию 1)limit(integer, необязательный): товаров на странице, максимум 48 (по умолчанию 20)
Состав и КБЖУ возвращаются, только если магазин заполнил их в карточке.
Установка
Требуется Python 3.10 или новее.
git clone https://github.com/shndo1337/yarche-mcp.git
cd yarche-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
На Windows используйте .venv\Scripts\ вместо .venv/bin/.
Проверить запуск можно командой .venv/bin/python server.py. Сервер работает через stdio и ждёт запросов клиента.
Конфигурация
Во всех примерах укажите абсолютные пути к python из .venv и к server.py.
Claude Code
claude mcp add yarche -- /путь/к/yarche-mcp/.venv/bin/python /путь/к/yarche-mcp/server.py
Claude Desktop
Добавьте в claude_desktop_config.json и перезапустите приложение.
{
"mcpServers": {
"yarche": {
"command": "/путь/к/yarche-mcp/.venv/bin/python",
"args": ["/путь/к/yarche-mcp/server.py"]
}
}
}
Cursor, Cline и другие клиенты
Подойдёт тот же блок mcpServers.
Примеры запросов
- «Найди в Ярче гречку и покажи самую дешёвую»
- «Какой состав и сколько калорий в сгущённом молоке Волоконовское?»
- «Что есть в категории Овощи?»
Как это работает
Сайт обращается к GraphQL API api.yarcheplus.ru. Гостевой токен выдаёт GET /api/auth/token?shop_code=yarche; при ответе 401 сервер запрашивает новый токен. Каталог привязан к региону по умолчанию (Томск).
Ограничения
- Нет сортировки на стороне магазина.
- Нельзя выбрать другой адрес доставки.
Лицензия
MIT, см. LICENSE.
Install
This server does not publish a one-line install command.
Open the repository installation guideConfiguration
{
"mcpServers": {
"yarche": {
"command": "/путь/к/yarche-mcp/.venv/bin/python",
"args": ["/путь/к/yarche-mcp/server.py"]
}
}
}