English: a command-line wizard that sets up a working folder for a Ukrainian online store,
so that Claude, the ChatGPT desktop app, Cursor or any other MCP client understands the shop
from the first message. It scans the storefront without any credentials — platform, language,
analytics tags, product feed, robots and sitemap — then writes a briefing for the agent, MCP
configs in three different formats, and one access note per system explaining where in the
vendor's panel each key comes from. No credentials are asked for, collected or stored: configs
carry ${PLACEHOLDERS}, and the agent fills .env later, when the owner asks it to. Run it
with npx -y ecomkit. llms-install.md lets an AI agent do the whole thing for you.
MIT licensed. Documentation below is in Ukrainian.
Пояснення для власника магазину, без технічних деталей — ecomkit.com.ua/instrumenty.
Одна команда, після якої на вашому комп'ютері з'являється папка. Відкриваєте її в застосунку зі ШІ — і помічник одразу знає, про який магазин ідеться, які у вас системи і що з ними можна робити.
npx -y ecomkit
Далі він питає адресу вашого магазину, дивиться на неї — і показує, що побачив:
Платформа магазину — Хорошоп.
Сайт зустрічає перевіркою браузера — я її пройшов і читав уже сам магазин.
Мова сторінки — «uk».
Веб-аналітики на головній сторінці не бачу — а без неї реклама рахується наосліп.
Піксель Meta на головній є: 292671852873663.
Карта сайту на місці.
- Node.js 20 або новіший.
- Адреса вашого магазину. Більше нічого.
Доступи не потрібні й не збираються. Сканується рівно одна сторінка — головна; сторінки товарів не обходяться.
README.md— що знайшло сканування і з чого почати.AGENTS.md— бриф для помічника: магазин, ваші системи, як заповнювати доступи і чого не робити без вашого дозволу.CLAUDE.md— один рядок, що веде наAGENTS.md.dostupy/<система>.md— по файлу на систему: що це відкриє, де взяти доступ, чим ризикуєте.zavdannia/perevirka-fida.md— перевірка товарного фіда: працює без доступів.katalog/,zvity/— куди класти вивантаження.ecomkit.json— що знайшло сканування. Секретів там немає й бути не може..env,.env.example,.gitignoreі файли налаштувань — див. нижче.
npx -y ecomkit <адреса> почати одразу зі сканування
--url <адреса> те саме
--dir <тека> куди створити папку (типово — назва домену)
--yes нічого не питати
--force перезаписати те, що вже налаштоване
--version --help
Якщо запуск не інтерактивний, а адреси немає, команда одразу каже про це й виходить — замість того, щоб мовчки чекати відповіді, якої не буде.
Один список серверів розкладається у три різні формати — вони справді різні, а не той самий JSON під трьома назвами:
mcpServersу JSON —.mcp.json(Claude Code),.cursor/mcp.json,.agents/mcp_config.json(Antigravity).serversу JSON, з окремим"type": "stdio"—.vscode/mcp.json.[mcp_servers.<name>]у TOML —.codex/config.toml(Codex CLI, застосунок ChatGPT).
Усе пишеться тільки всередині створеної папки. Нічого в домашній теці не змінюється. У конфізі Claude Desktop лежать живі ключі інших ваших серверів, і автоматично переписувати такий файл — надто дорога помилка. README створеної папки друкує потрібний блок і точний шлях, куди його вставити.
Якщо файл уже існує, сервер додається в наявний об'єкт, а чужі сервери не чіпаються.
Свій сервер, який там уже є, лишається як був — перезаписати його можна тільки --force.
Файл, який не вдалося прочитати, не переписується взагалі: поруч кладеться .ecomkit-копія.
Ця версія їх не збирає. У конфігах стоять ${ЗМІННІ}, .env порожній, а поряд лежить
dostupy/<система>.md із точним шляхом у кабінеті вендора. Заповнює .env сам помічник,
коли ви його про це попросите: AGENTS.md каже йому спитати значення в чаті, записати
у файл і жодного разу не друкувати назад.
Це і є продукт; візард лише проводить по ньому. Кожен запис має або MCP-сервер, або письмову інструкцію — інакше тест не пропускає збірку.
У цій версії конфіг емітується тільки для серверів, які ставляться як npx -y <пакет>
і перевірені в реєстрі npm: horoshop-mcp (свій), google-tag-manager-mcp-server (Stape),
mcp-server-gsc, @shopana/novaposhta-mcp-server. Веб-аналітика, Google Ads, Meta
і товарний фід ідуть інструкцією — там або сервера немає, або він вимагає кроку, який не
можна чесно назвати однією командою.
Два записи навмисно лишились без сервера, і це варто знати окремо:
- пакет
google-ads-mcpу npm опублікований не Google, а стороннім автором, а репозиторійgoogle-marketing-solutions/google_ads_mcp_serverзаархівований; - офіційний сервер GA4 — не npm, а Python, і йому потрібен файл службового акаунта Google Cloud.
Значна частина магазинів на Хорошопі віддає першим запитом кількасот байтів скрипта, який ставить кукі й перезавантажує сторінку. Сканер розпізнає це, читає значення кукі просто з тексту відповіді й повторює запит один раз.
Код зі сканованої сторінки ніколи не виконується — ні eval, ні node:vm. Сьогодні
значення лежить літералом, тож досить регулярного виразу. Якщо колись воно стане
обчислюваним, чесна відповідь — сказати, що сторінку прочитати не вдалося, а не запускати
чужий код у вас на комп'ютері.
npm install
npm test
Тести працюють проти локального мок-сервера на випадковому порту — мережа не потрібна.
test/support/fixtures/ містить справжню сторінку Bloomery Home, справжню перевірку
браузера і challenge-computed.html, який існує рівно для того, щоб довести: код ми
не виконуємо.
Шлюз реєстру живе в src/registry/check.ts і викликається з test/registry.test.mjs.
Він вимагає в кожного запису або mcp, або manual, вимагає застереження там, де воно
обов'язкове, і ловить російські літери та латиницю всередині українських слів. У тестах
лежить навмисно зіпсований запис — щоб шлюз не був декорацією.
MIT.
No data is collected. ecomkit runs entirely on your machine.
- What it reads: the homepage,
robots.txtandsitemap.xmlof the address you give it, over ordinary HTTPS requests with an identifiable user agent. - Credentials: none are requested, collected, printed or written. Generated configs
contain
${PLACEHOLDER}values only. - Where your data goes: nowhere. Nothing is sent anywhere; everything is written to the folder you named.
- Third parties: none. The only runtime dependency is a prompt library.
- Retention: nothing is retained — there is no server.
- Contact: [email protected]
Сергій Троїцький · ecomkit.com.ua