Резюме, рассказанное не списком, а историей

То, что начиналось как вайб-кодинг, теперь — продуманная система

История собрана из фактов, вех и цифр: от первых инструментов, кочевавших с проекта на проект, до единого MCP-сервера на 43 инструмента и браузерного расширения для дебатов четырёх ИИ-сервисов.

01 / начало

Первый проект вайб-кодинга

Один и тот же код менял обёртку и имя — а со временем и язык.

Инструменты кочевали с проекта на проект. Один и тот же код менял обёртку и имя — а со временем и язык.

Хронология имён

первая итерация

tools_lm_studio

Старт: инструменты для работы с локальными моделями через LM Studio.

он же

depkoder agent

Тот же набор инструментов в новой обёртке — агентный сценарий.

он же

tools_llama_cpp

Переход на llama.cpp через LlamaServerLauncher.exe — быстрее, чем LM Studio, и с возможностью подключить unified-mcp к чату в llama-ui. Финальное имя проекта, из которого позже вырос единый MCP-сервер на 43 инструмента.

Смена языка

.py .js

tools_lm_studio и depkoder agent писались на .py, а tools_llama_cpp перерос в .js.

Python Node.js переиспользование кода смена обёртки
02 / проект tools_llama_cpp

Единый MCP-сервер: 43 инструмента в одном эндпоинте

Единый сервер для Model Context Protocol (MCP), который объединяет категории инструментов вместо россыпи отдельных скриптов.

Файловая система tools/filesystem.js

list_allowed_directories read_text_file read_multiple_files read_media_file write_file edit_file replace_lines append_to_file create_directory delete_file move_file find_in_file check_syntax list_directory list_directory_with_sizes directory_tree explore_directory search_files get_file_info
один HTTP-эндпоинт http://localhost:8001/sse

Почему SearXNG, а не Google или Яндекс

Первый заход — подключить LLM к поиску через DuckDuckGo. Но у него стоит anti-bot protection: под нагрузкой сервер отвечает 403 Forbidden. Модель видит задачу, а до выдачи не добирается. Обход приходилось подбирать заново каждый раз — работает неделю, DuckDuckGo что-то меняет в фильтрах, и снова 403. Полноценные Google Custom Search и Яндекс.XML требуют платного API-ключа и жёстких лимитов. Решение нашлось в SearXNG — открытый мета-поисковик, который агрегирует Google, Bing, DuckDuckGo, Brave и ещё десяток движков и отдаёт JSON без ключей и anti-bot: работает локально, банов и блокировок со стороны поисковика нет. Поднимается в Docker, в связке с MCP-сервером даёт один инструмент web_search.

Подключение к llama-ui одной строкой

unified-mcp — SSE-сервер на http://localhost:8001/sse. В настройках MCP llama-ui достаточно указать имя сервера и этот URL — никаких SDK, npm-пакетов и пересборки. После перезапуска UI 43 инструмента появляются в интерфейсе и модель может их вызывать. Совместим с любым MCP-клиентом: Claude Desktop, Cursor, собственный llama-ui.

PowerShell — npm start
================================================================
  Unified MCP Server v6.1.0 (SSE Transport)
  Port:
  URL:  http://localhost:/sse
================================================================
✅ MCP Server v6.3.1 (SSE Transport) started
🌐 URL: http://localhost:8001/sse
🔗 Также доступно: http://127.0.0.1:8001/sse
📦 Tools: 51
📂 Workspace (дефолт для сохранения): C:\Users\Mindgrid\Documents\tools_llama_cpp\workspace
🛡 CORS origins: http://localhost:8080, http://127.0.0.1:8080, http://localhost:3000, http://127.0.0.1:3000, null

SSE connected: ec6fd836-984d-4bd8-abe0-9b3d69308c5c
📁 mcp/
│
├── 📄 server.js              # 🧠 Мозг: основной Express-сервер, обработчик запросов MCP, CORS
├── 📄 package.json           # 📋 Паспорт: версия, зависимости, скрипты запуска и проверки
├── 📄 docker-compose.yml     # 🐳 Контейнер: конфигурация для запуска вместе с SearXNG
├── 📄 Dockerfile             # 📦 Рецепт: как собрать Docker-образ
├── 📄 README.md              # 📚 Документация: полная инструкция для пользователя
│
├── 📁 tools/                 # 🧰 Контейнер с инструментами (самая важная часть)
│   ├── index.js              # 📥 Регистр: объединяет все инструменты в единый список
│   ├── filesystem.js         # 📁 Файлы: 19 инструментов для работы с файловой системой
│   ├── browser.js            # 🌐 Браузер: 20 инструментов для управления Chrome
│   ├── terminal.js           # ⚙️ Терминал: 3 инструмента для выполнения команд
│   └── searxng.js            # 🔍 Поиск: 1 инструмент для веб-поиска
│
├── 📁 script/                # 🛠 Кейс для инструментов разработчика
│   ├── check-project.js      # 🕵️ Проверка: скрипт для аудита структуры проекта
│   ├── fix-project.js        # 🛠 Исправление: авто-исправление проблем
│   ├── check_project_js.md     # 📝 Заметка: документация к валидатору
│   ├── документация/         # 📖 Подсказки: документация по созданию скриптов
│   ├── create_icons/           # 🎨 Иконки: генерация иконок 16/48/128 из изображения
│   ├── downloader_video/       # 🎬 Загрузка: yt-dlp — CLI-скрипт + веб-интерфейс на Vite (:3000)
│   ├── inspector/              # 🧭 Инспектор: DOM-панель поверх HTML, селектор → в чат
│   ├── list-dir/               # 📂 Проводник: list-dir.js — просмотр содержимого папок
│   ├── script_convert/         # 🖼 Конвертер: PNG/JPG → WebP на Pillow, результат в webp_output
│   └── transcriber/            # 🎙 Транскрипция: faster-whisper — видео в текст и субтитры
│
└── 📁 searxng-config/        # 📂 Конфиг: настройки SearXNG — settings.yml + limiter.toml

Проект обрастал скриптами: от первого CLI-проводника до валидатора и папки с утилитами.

check-project.js

Валидатор «готов ли проект к запуску»: папки, модули, зависимости, права. 20 проверок · 0 ошибок.

inspect.py

DOM Inspector v2.1: наведи мышь → получи CSS-селектор → вставь в чат. Панель 340 px, 6 уровней.

downloader.py

yt-dlp: YouTube / VK / Rutube. CLI + веб-мастер на Vite (:3000), генерация .bat / .sh.

list-dir.js

Интерактивный CLI-проводник: содержимое пути и дерево до 3 уровней.

convert.py

PNG / JPG → WebP на Pillow, quality=95. Пакетно, локально, −64% вес.

transcriber.py

faster-whisper: видео → текст / SRT / VTT. 5 моделей, CUDA на RTX 3060, всё локально.

03 / наблюдение → проект

todo_list_mcp: список задач как MCP-сервер

Используя Qwen CLI, заметил, что он использует инструмент todo_list — так появился отдельный проект.

todo_list_mcp/
├── package.json      — ESM, скрипты start/inspect, deps: @modelcontextprotocol/server, zod
├── mcp-config.json   — шаблон подключения: node src/index.mjs
├── todos.json        — хранилище задач (сейчас [])
├── README.md         — инструкция по установке/запуску
├── node_modules/     — зависимости
└── src/
    └── index.mjs     — точка входа: McpServer + 5 инструментов + serveStdio
5 инструментов serveStdio todos.json stdio JSON-RPC ESM zod

todo_list_mcp можно использовать без запуска сервера npm start.

Связи

MCP-клиент (Claude Desktop, Inspector…)
serveStdio → McpServer (buildServer)
loadTodos / saveTodos ⇄ todos.json
04 / расширение Chrome (MV3)

moi_PolyMind: круглый стол четырёх ИИ-сервисов

PolyMind автоматически сажает за «круглый стол» веб-чат-боты DeepSeek, Alice (Яндекс), Qwen и Z.ai: одна тема → раунды (позиция → спор → вердикт), ответы собираются через автоматизацию их веб-интерфейсов.

moi_PolyMind — sidepanel.html
PolyMind Alpha
PolyMind работает через ваши сессии в четырёх сервисах. Убедитесь, что вы вошли в DeepSeek, Alice, Qwen и Z.ai — вкладки откроются автоматически.

Mode

Агенты спорят: ищут слабые места и защищают свои тезисы.

Your Question

0 / 2000
Ctrl ↵ to send

AI Debaters

DS
DeepSeek
DeepSeek Chat
standby
A
Alice
Yandex Alice AI
standby
Q
Qwen
Qwen 3.7 Plus
standby
Z
Z.ai
GLM-5.3 Flash
standby
Round 0 / 3
Waiting for AI…

🎉 Debate complete — want to continue?

Recent Questions (this session)

No debates in this session yet.

Debate Transcript

Ready — type a question to begin.

Реальная разметка боковой панели расширения (moi_PolyMind/sidepanel.html): стили изолированы в .pm-app; логика панели (sidepanel.js + background.js) работает внутри расширения.

Под капотом: Chrome MV3

PolyMind — не userscript и не букмарклет, а полноценное расширение Chrome на Manifest V3. Sidepanel API держит интерфейс на экране рядом с чатами, service worker в background.js оркестрирует раунды, а контент-скрипты работают с DOM четырёх сервисов. Всё в одном расширении: без прокси, без своего сервера, без сторонних посредников — данные идут напрямую в DeepSeek, Alice, Qwen и Z.ai через ваши аккаунты в этих сервисах.

05 / слияние

Strata 125B + MiniMax Studio V6: движок и оболочка

125-миллиардная модель пишет промпт, ComfyUI рендерит видео — в одном окне, с жёстким управлением VRAM.

🧠 Strata 125B
204K контекст · OpenAI API :8080 · server.py + strata.exe
🎬 MiniMax Studio V6
ComfyUI · VRAM 12 ГБ · llm-runner.ts · vram-arbiter.ts
✅ Одно окно
Модель пишет → кнопка «Генерировать» → VRAM освобождена → ComfyUI рендерит

Движок

Третий бэкенд 'strata' в llm-runner.ts. Студия запускает server.py из папки Strata и общается по OpenAI-совместимому API на порту 8080. Контекст 204K токенов — модель игнорирует ползунки UI.

125B параметров 204K контекст :8080 OpenAI API

VRAM: Hard Kill

Strata — два процесса (Python + strata.exe). Обычное закрытие не освобождало память. В vram-arbiter.ts переписана логика: перед генерацией видео Студия принудительно убивает всё дерево процессов через taskkill /F /T — 12 ГБ VRAM свободно, висяков нет.

taskkill /F /T 12 ГБ VRAM 0 висяков

Режим Режиссёра

Раньше «Улучшить» молча переписывала промпт на английский. Теперь — двухшаговый протокол: ассистент анализирует референсы и пишет предложения на русском. Английский промпт генерируется только после явного «Согласен».

русский → английский 2 шага без конфликтов в системном промпте
MiniMax Studio V6 — запуск слияния
✅ Strata backend registered: 'strata'
🌐 OpenAI-compatible API → http://localhost:8080
🛡 vram-arbiter: taskkill /F /T → 12 ГБ VRAM free
🎬 ComfyUI ready · context: 204 800 tokens
════════════════════════════════════════════════════════
🎉 Проект успешно слит и готов к работе!
125B 204K токенов 3–4× быстрее Bonsai 27B ComfyUI MiniMax Studio V6 llm-runner.ts vram-arbiter.ts D:\Minimax_Studio_V6

Strata 125B + MiniMax Studio V6: генерация видео с 125B-ассистентом

06 / связь

Тут не про идеальный код с первой строки

А про то, как из хаоса рождается работающее решение. Если твой стиль — сначала сделать, потом отрефакторить, и при этом не потерять вайб — ты по адресу. Заходи!

Диалог в Yandex Chat

Чат открывается по одной ссылке: заходи и пиши сразу по делу, без «представьтесь и расскажите всё с начала».

Yandex Chat открыт для вопросов контекст истории уже в диалоге
Открыть чат откроется в новой вкладке
https://yandex.ru/chat/p/5a746d32-2621-47f5-ae1b-4205b96f447c?utm_source=invite

Видеовстреча в Телемосте

Если удобнее голосом или с показом экрана — заходи в Телемост. Ссылка та же, вести переговоры о встрече отдельно не нужно.

Telemost видеовстреча голос · экран · чат
Открыть Телемост откроется в новой вкладке
https://telemost.yandex.ru/p/5a746d32-2621-47f5-ae1b-4205b96f447c?utm_source=invite