КейсМайстерня електроніки й прототипів
Майстерня: складська програма з AI-агентами, пошуком за змістом і MCP-сервером
Наша власна програма для майстерні електроніки й прототипів: залишки, внутрішні коди, документи й фото до кожної деталі, пошук за змістом, чат з агентом усередині та MCP-сервер для зовнішніх агентів. Проєкт непублічний, тому показуємо його на скриншотах.
- 30інструментів MCP-сервера
- 538векторів для пошуку за змістом
- 86змін від агентів за 7 днів
- 877автотестів
Деталей дедалі більше, а пам’ять одна
У майстерні збирають прототипи: плати, датчики, мотори, акумулятори, 3D-друк, пайка. Щоб почати новий виріб, треба знати, що вже лежить на полиці, скільки цього, де даташит і чи потягне роботу наявне обладнання. Раніше все це трималося в голові й на полицях: щоб дізнатися, чи є потрібна плата, доводилося йти й шукати.
Першу систему задумали надто масштабно: 17 моделей, 18 таблиць, а до інтерфейсу складу справа так і не дійшла, бо нею ніхто не користувався. Тому почали заново й за іншим методом: найменша робоча версія, проба в справі, висновки, розвиток.
Заносити руками довго. Якщо кожну плату треба описувати у формі, записи відстають від полиці, і склад перестає бути правдою.
Назва не підказує задачу. Шукаєш «чим керувати сервоприводами», а в таблиці лежить PCA9685. Пошук за словами такого не знайде.
Знання розкидані. Даташит, фото плати, межі обладнання й відео процесу мають бути при записі, а не в закладках браузера.
Агентам потрібні межі. Вони мають читати й змінювати склад, але без зайвих прав і без вигадок про те, чого ніхто не перевіряв.
Що ми зробили
Застосунок на Laravel і React із власним MCP-сервером: людина, чат і зовнішні агенти працюють з одними й тими самими даними та інструментами.
Склад, де в кожної деталі є код, документи й фото
Кожна деталь отримує внутрішній код на зразок PRT-000141: за ним її знаходить і людина, і агент. Кількість ведеться з одиницями, статус іде за нею, а тип, області й теги беруться зі словників, які не дають завести дубль: LEDs і LED — один термін, а ESP32-S2 і ESP32-S3 — різні.
До деталі кріпляться фото, даташити, посилання й нотатки. Обладнання описує, що вміє майстерня і де її межі. Проєкт збирає деталі, обладнання, відео й 3D-моделі, які крутяться прямо на сторінці. Відео до 5 ГБ лежать на Google Drive й грають у застосунку без публічного посилання.
Пошук за змістом, а не за назвою
Описуєш задачу своїми словами, і програма знаходить потрібне. Запит «protect a lithium battery» піднімає плати захисту BMS, а за ними — комірки й зарядні модулі. Колонка Match показує, наскільки результат близький до запиту. Опис може бути однією мовою, а запит іншою.
Під капотом — text-embedding-3-large на 1536 вимірів і pgvector усередині PostgreSQL. У вектор входять назва, партномер, тип, області, теги й опис, а також документи й AI-описи фото, тож влучання в даташит піднімає деталь, якій він належить. Код, статус і кількість навмисно лишаються поза вектором: зміна залишку нічого не перераховує. Раз на 10 хвилин програма звіряє SHA-256 тексту й оновлює лише те, що змінилося.
Голосова нотатка стає деталлю на складі
Формами склад не заповнити, тому все летить у вхідні: голос, фото, файл, посилання, нотатка чи відео. Мова стає текстом із підказками зі словника майстерні, AI описує кожне фото, а агент забирає заявку, блокує її на 30 хвилин і заводить записи.
Реальний приклад. 28 жовтня о 15:57 — голосова на 26 секунд про плату ШІМ із проханням знайти даташит. О 16:07 заявка закрита: є деталь PRT-000141, кількість агент зрозумів із фото, офіційний даташит NXP на 52 сторінки прикріплено, характеристики в описі. Окремим абзацем агент чесно написав, чого не перевірив: плати не вмикали, а чип на платі без бренду може бути клоном.
Чат усередині й MCP-сервер для зовнішніх агентів
У чаті можна спитати: «хочу керувати 16 сервоприводами від однієї ESP32, що є на складі?». Агент сам робить кілька пошуків, відкриває картки й відповідає таблицею з кодами: що взяти, чого бракує, на що зважити в живленні. Кожен виклик інструмента видно у відповіді. Перед першим повідомленням обираєш режим — лише читання чи читання й запис. Видаляти в чаті не можна.
Те саме доступне ззовні: власний MCP-сервер на 30 інструментів, Streamable HTTP, OAuth 2.1 з PKCE й динамічною реєстрацією клієнтів. Права на читання, запис і видалення вибирає власник на екрані згоди, а інструменти поза цими правами агент навіть не бачить. Перевірено з Claude Code і конектором claude.ai.
На чому зроблено
Laravel і React без конструкторів. Вектори живуть у тій самій базі, що й дані, а чат і MCP-сервер користуються одними класами інструментів.
- Laravel
- PHP
- Inertia.js
- React
- TypeScript
- PostgreSQL
- pgvector
- OpenAI API
- MCP
- Google Drive
Що вийшло
Числа з дашборда програми на 2 листопада 2026 року. Проєкт наш, ми користуємося ним самі, і він продовжує рости.
-
141 деталь і 7 одиниць обладнання
Склад заповнений: у кожної деталі є код і статус, 140 зараз у наявності. Усе обладнання робоче, і видно, на що здатна майстерня.
-
42 заявки розібрано
Голос, фото й файли стали записами на складі. Активних заявок зараз немає: нічого не чекає в черзі.
-
235 фото описано AI
Усі 235 із 235. Описи потрапляють у вектор, тому фото теж працюють на пошук.
-
86 змін від агентів за 7 днів
Агенти справді працюють із даними. Фонові задачі за цей час не дали жодного збою.
-
877 автотестів і PHPStan рівня 7
22 864 рядки PHP у застосунку й 16 484 рядки тестів. Від першого коміту до поточної версії — 38 днів і 126 комітів.
Потрібна така система для вашого бізнесу?
Склад запчастин, сервісний центр, виробництво чи база знань із документами: розкажіть, як у вас влаштована робота, і ми підкажемо, з якої частини варто почати. Без зобов’язань і без тиску.









