Хочу поделиться опытом решения задачи вайб-кодинга в чат-боте Ollama на примере "Infostart MCP серверов", и это должно работать с любыми MCP серверами. В пользу чат-бота ориентирует преимущество концентрации на промпт-инжениринге.
Данное рещение Infostart MCP серверы - не первое, которое я вижу, и нужно отметить, что удобство эксплуатации является его большим достоинством.
📦 Что потребуется
Системные требования
-
Windows 10/11 (или другая ОС с поддержкой Docker)
-
8+ ГБ RAM (рекомендуется 16 ГБ)
-
Ollama (установленная и настроенная)
-
Современные бесплатные новаторские модели ИИ MiniMax M2.5, GLM-5. Неважно, локальные или облачные - их можно использовать без ВПН, в том числе на сайте Оллама доступен клиент облачного ДипСик.
-
MCPHost (бинарник для Windows)
Компоненты для 1С
-
Приобретенное решение "MCP-сервера для программирования на 1С с LLM" с сайта Infostart
-
Docker-образы из поставки решения
-
Внешняя обработка
ВыгрузитьОписаниеСтруктурыКонфигурации.epf -
MCP-сервер для доступа к текстам модулей 1С: простая реализация на Node.js
🎨 Архитектура решения
Как это работает: краткое описание
-
1С Конфигуратор выгружает метаданные и модули в файлы
-
Docker-контейнеры обрабатывают эти данные:
-
Загрузчик (
loader) помещает метаданные в векторную БД Qdrant -
Серверы (
metadata,syntax-help,syntax-check) предоставляют API для доступа к данным
-
-
Qdrant хранит векторные представления метаданных для семантического поиска
-
Сервер модулей (Node.js) работает с файлами выгрузки, предоставляя доступ к коду
-
MCPHost координирует работу:
-
Получает запрос пользователя
-
Выбирает нужный инструмент
-
Вызывает соответствующий MCP-сервер
-
При необходимости обращается к Ollama для обработки естественного языка
-
-
Ollama с моделью
minimax-m2.5:cloudобеспечивает понимание запросов и поддержку function calling
| Компонент | Роль | Взаимодействие |
|---|---|---|
| MCPHost | Оркестратор | Получает запросы, вызывает инструменты |
| metadata-1c | Поиск по метаданным | Читает из Qdrant коллекцию 1c_rag |
| syntax-help-1c | Справка синтакс-помощника | Работает с собственной БД справки |
| syntax-check-1c | Проверка синтаксиса | Использует BSL Language Server |
| 1c-modules | Доступ к коду | Читает файлы из I:\ssl_cf |
| Qdrant | Векторная БД | Хранит эмбеддинги метаданных |
| Ollama | LLM | Понимает запросы, помогает выбирать инструменты |
🚀 Пошаговая инструкция
Теперь подробнее о настройке част-бота Ollama
🔹 ФАЗА 1: Инфраструктура (Docker + контейнеры)
🔹 ФАЗА 2: Модели (Ollama + minimax/glm)
🔹 ФАЗА 3: Данные (загрузка метаданных и модулей)
🔹 ФАЗА 4: Оркестрация (настройка MCPHost)
🔹 ФАЗА 5: Работа (запросы и диагностика)
Шаг 1: Установка Docker Desktop
-
Скачайте Docker Desktop с официального сайта
-
Установите, следуя инструкциям
-
Запустите Docker Desktop и дождитесь появления значка в трее (зеленый кит)
-
Проверьте работу в PowerShell:
powershell
docker --version docker-compose --version
Шаг 2: Подготовка файлов решения
Распакуйте приобретенное решение в удобную папку, например I:\mcp_v1.6.1\. Убедитесь, что там есть:
-
docker-compose.yml -
Папка
bsl-ls -
Папка
Примеры настроек -
Обработка
ВыгрузитьОписаниеСтруктурыКонфигурации.epf
Шаг 3: Запуск Docker-контейнеров
-
Откройте PowerShell в папке с
docker-compose.yml:powershell
cd I:\mcp_v1.6.1
-
Запустите контейнеры:
powershell
docker-compose up -d
-
Проверьте, что все контейнеры запустились:
powershell
docker ps
Вы должны увидеть примерно такой список:
metadata, bsl-checker, help, loader, metadata-loader, qdrant, embedding-service
Шаг 4: Установка Ollama
-
Скачайте Ollama с официального сайта
-
Установите и запустите
-
Убедитесь, что сервер работает:
powershell
ollama serve
(Оставьте это окно открытым)
-
Войдите в аккаунт для доступа к облачным моделям:
powershell
ollama signin
-
Проверьте доступные модели:
powershell
ollama list
Одно из ключевых преимуществ данной архитектуры — возможность использовать любую модель Ollama. Вы можете экспериментировать с разными моделями, переключаясь между ними.
Шаг 5: Установка MCPHost
-
Скачайте последнюю версию
mcphost_Windows_x86_64.zipсо страницы релизов -
Распакуйте в удобную папку, например
I:\mcphost\ -
Проверьте, что файл
mcphost.exeна месте
Бинарники и настройки находятся в одной папке. Это позволяет подбирать оптимальную модель под конкретную задачу: быстрый поиск по коду, глубокий анализ архитектуры или работу в офлайн-режиме. Конфигурационный файл хранится рядом с исполняемым файлом MCPHost, что делает всю систему переносимой — достаточно скопировать папку на другой компьютер, и все настройки сохранятся.
Шаг 6: Создание конфигурационного файла
В папке I:\mcphost\ создайте файл .mcphost.yml со следующим содержимым:
yaml
mcpServers:
# Сервер метаданных 1С
metadata-1c:
type: "remote"
url: "http://localhost:9001/mcp"
# Сервер справки
syntax-help-1c:
type: "remote"
url: "http://localhost:9002/mcp"
# Сервер проверки синтаксиса
syntax-check-1c:
type: "remote"
url: "http://localhost:9004/bsl/mcp"
model: "ollama:minimax-m2.5:cloud"
Примечание: Чтобы выбрать модель Ollama, нужно изменить одну строчку в конфигурационном файле .mcphost.yml, который находится в той же папке, что и программа MCPHost (в нашем примере I:\mcphost\). Порты могут отличаться в зависимости от вашей версии. Проверить реальные порты можно командой docker ps.
Шаг 7: Системный промпт. Как задействовать системные инструкции в MCPHost
MCPHost поддерживает системные промпты через специальный флаг --system-prompt . Это позволяет задать модели общий контекст, роль и правила поведения, которые будут действовать на протяжении всей сессии.
📝 Два способа передачи системных инструкций
Способ 1: Через JSON-файл (рекомендуется)
Создайте файл, например I:\mcphost\1c-system-prompt.json, со следующим содержимым, адаптированным из вашего agents.md:
json
{
"systemPrompt": "Ты — опытный разработчик 1С (уровень синьор, >10 лет практики). Отвечай кратко и по делу, давай готовый для вставки код и чёткие шаги. Предпочитай стандартные методы платформы вместо самописных решений. Всегда сверяйся с актуальными справочными данными и/или диагностикой через MCPR09;сервисы.\n\nТехнический контекст: Платформа 1С:Предприятие 8.3.21, язык BSL. Код должен быть совместим с указанной версией платформы.\n\nПравила работы с MCP-сервисами:\n1. При работе с метаданными всегда используй двухшаговый подход: сначала search_metadata, затем metadata_details_by_id для выбранного объекта.\n2. При необходимости подтвердить сигнатуру метода обращайся к help_search.\n3. После написания или исправления кода обязательно прогоняй диагностику через check_bsl_file и учитывай замечания линтера.\n\nСтандарты кода BSL:\n- Предпочитай стандартные методы платформы.\n- Не используй Попытка...Исключение для выборок из БД и записи данных.\n- Не используй ЗаписьЖурналаРегистрации() без явного указания в задаче.\n- Не используй Сообщить() для логирования без прямого запроса.\n- Ограничивай строки 130 символами.\n- Внутри блоков Если/Пока/Для/Процедура/Функция добавляй пустые строки до и после содержимого для читаемости.\n- Код в ответе должен быть готовым для вставки, без псевдокода."
}
Затем запустите MCPHost с этим файлом:
powershell
.\mcphost.exe --config .mcphost.yml -m ollama:minimax-m2.5:cloud --system-prompt I:\mcphost\1c-system-prompt.json
Способ 2: Прямая передача текста (для коротких инструкций)
powershell
.\mcphost.exe --config .mcphost.yml -m ollama:minimax-m2.5:cloud --system-prompt "Ты — опытный разработчик 1С. Отвечай кратко, давай готовый код."
🎨 Что это даёт
После установки системного промпта модель будет:
-
Придерживаться роли — отвечать как опытный разработчик 1С
-
Следовать правилам — не использовать неподходящие конструкции
-
Использовать MCP-инструменты в правильном порядке — сначала метаданные, потом детали
-
Проверять код — автоматически прогонять диагностику
-
Форматировать ответы — согласно стандартам
💡 Ещё более мощный вариант: Script Mode
MCPHost также поддерживает Script Mode , где можно создавать исполняемые YAML-скрипты с встроенными системными инструкциями. Это удобно для разных типов задач:
yaml
#!/usr/bin/env -S mcphost script
---
# Скрипт для работы с документами
mcpServers:
metadata-1c:
type: "remote"
url: "http://localhost:9001/mcp"
syntax-help-1c:
type: "remote"
url: "http://localhost:9002/mcp"
system_prompt: |
Ты — эксперт по документам 1С.
При анализе документа всегда сначала смотри его структуру через metadata_details_by_id,
потом проверяй код модуля через read_module_text, и только затем предлагай изменения.
model: "ollama:minimax-m2.5:cloud"
---
Проанализируй документ "РеализацияТоваров" и предложи оптимизацию его проведения.
Важное замечание
Не все модели одинаково хорошо следуют системным инструкциям. Из вашего опыта:
-
MiniMax M2.5 и GLM-5 хорошо поддерживают system prompts
-
При возникновении зацикливаний можно попробовать с ним бороться как я покажу сейчас, сменить модель или упростить инструкции
Проблема зацикливания (Loop) и методы борьбы с ней
В процессе эксплуатации системы я столкнулся с неприятным явлением: модели ИИ иногда зацикливаются, начиная бесконечно повторять один и тот же блок текста. Это проявляется по-разному:
text
В конфигурации найдено 10 документов: В конфигурации найдено 10 документов: В конфигурации найдено 10 документов: ...
Или с накоплением:
text
1. Поступление товаров 1. Поступление товаров 2. Реализация товаров 1. Поступление товаров 2. Реализация товаров 3. Перемещение товаров ...
🤔 Почему это происходит
Зацикливание (loop) возникает по нескольким причинам:
| Причина | Описание |
|---|---|
| Переполнение контекста | Модель "забывает", что уже выдала результат, и начинает повторяться |
| Слишком большой объём данных | При обработке 300+ результатов модель теряет фокус |
| Особенности архитектуры | Некоторые модели (MiniMax, GLM) более склонны к зацикливанию |
| Нечёткие инструкции | Модель не понимает, когда нужно остановиться |
🎯 Сравнение моделей по склонности к зацикливанию
| Модель | Склонность к зацикливанию | Примечание |
|---|---|---|
| MiniMax M2.5 | Высокая | Часто зацикливается при больших объёмах |
| GLM-5 | Средняя | Заметно лучше, но требует настройки |
💡 Антициклические промпты (Anti-Loop Prompts)
Главное открытие: зацикливание можно контролировать через системный промпт. Специальные инструкции заставляют модель остановиться после вывода результата.
Антициклический промпт
Создайте файл glm-anti-loop-prompt.json:
json
{
"systemPrompt": "Ты — разработчик 1С. Отвечай максимально кратко и строго по делу.\n\nЖЁСТКИЕ ПРАВИЛА:\n1. НИКАКИХ ПОВТОРОВ — каждый факт упоминается только один раз.\n2. НИКАКИХ ТАБЛИЦ — используй простые списки (1. 2. 3.).\n3. МАКСИМУМ 3 ПРЕДЛОЖЕНИЯ после вывода данных.\n4. Если данные уже были показаны — не дублируй их.\n5. Завершай ответ чётким итогом и предложением уточнить.\n\nПример правильного ответа:\nНайдено 10 документов:\n1. Поступление товаров\n2. Реализация товаров\n3. Перемещение товаров\n...\n\nЭто демо-конфигурация. Уточните, по какому документу нужны детали."
}
🚀 Как использовать антициклические промпты
Запуск MCPHost с антициклическим промптом:
Запуск в терминале
.\mcphost.exe --config .mcphost.yml -m ollama:glm-5:cloud --system-prompt I:\mcphost\glm-anti-loop-prompt.json
📊 Результаты применения
| До антициклического промпта | После антициклического промпта |
|---|---|
| Таблица с документами повторяется 10+ раз | Чистый список один раз |
| Модель "увязает" в повторениях | Ответ компактный и по делу |
| Приходится прерывать Ctrl+C | Работает без вмешательства |
🎯 Тактики предотвращения зацикливания
Помимо системных промптов, помогают следующие приёмы:
1. Ограничение объёма ответа
Плохо: "Найди все упоминания слова 'Версия'" Хорошо: "Найди 10 самых важных упоминаний слова 'Версия'"
2. Явное указание формата
перечисли документы простым списком, без повторений и без таблиц
3. Разбивка сложных запросов
Вместо одного запроса на всё, делайте несколько последовательных:
-
Сначала найдите объекты
-
Потом детали по конкретному объекту
4. Если зацикливание началось — Ctrl+C
Не надо ждать, пока модель остановится сама. Прерывайте (Ctrl+C) и формулируйте запрос точнее.
Антициклические промпты — это простой и эффективный способ сделать работу с моделями комфортной. Для GLM-5 они работают особенно хорошо, практически полностью устраняя проблему повторений.
Рекомендуемая связка для повседневной работы:
-
Модель: GLM-5
-
Промпт: антициклический
-
Тактика: конкретные запросы + Ctrl+C при необходимости
Теперь вы знаете, как бороться с зацикливанием и можете работать продуктивно!.
В процессе экспериментов я также тестировал облачную модель DeepSeek-V3.2 (deepseek-v3.2:cloud). Это мощная модель с отличными показателями в бенчмарках, однако при работе с MCPHost возникла неожиданная трудность.
Проблема: несовместимость форматов вызова инструментов
DeepSeek, как и многие современные модели, имеет собственный механизм function calling, который не совпадает со стандартом, ожидаемым MCPHost. MCPHost разработан для работы с универсальным JSON-RPC форматом, а DeepSeek при попытке вызвать инструмент отправляет свой специфический XML-подобный формат.
Вот как это выглядит на практике:
| Компонент | Ожидаемый формат | Что отправляет DeepSeek |
|---|---|---|
| MCPHost | JSON-RPC с tools | — |
| DeepSeek | <function_calls> |
<function_calls> Документ </function_calls> |
При попытке выполнить запрос перечисли какие документы есть в конфигурации я получил:
text
<function_calls> Document </function_calls>
Это означает, что DeepSeek пытается вызвать инструмент, но делает это в формате, который MCPHost не может интерпретировать. В результате инструмент не вызывается, и система не возвращает данные.
Почему это происходит
DeepSeek использует собственный протокол для вызова инструментов, который отличается от стандарта MCP. Хотя модель понимает, что нужно обратиться к инструменту, она "упаковывает" этот вызов в свой родной формат, а не в JSON-RPC, который ожидает MCPHost.
Решения и альтернативы
Несмотря на эту проблему, существуют способы использовать DeepSeek с MCP-серверами:
| Вариант | Требования | |
|---|---|---|
| Open WebUI как прокси | Open WebUI умеет конвертировать форматы вызовов между разными моделями и MCP-серверами | |
| Официальный API DeepSeek | Требуется API-ключ и оплата, но поддерживает OpenAI-совместимый формат | |
| Локальная модифицированная версия | MFDoom/deepseek-r1-tool-calling:8b — работает локально |
|
Вывод по DeepSeek
На данный момент использовать DeepSeek-V3.2 через Ollama с MCPHost напрямую не получится — модели не хватает совместимости по формату вызова инструментов. Однако это не повод отчаиваться:
-
Если вы хотите использовать именно DeepSeek, рассмотрите вариант с Open WebUI или официальным API.
-
Для локальной работы с MCPHost отлично подходят GLM-5 и MiniMax M2.5, которые показали стабильную совместимость.
-
Существует модифицированная локальная версия DeepSeek с поддержкой инструментов —
MFDoom/deepseek-r1-tool-calling:8b, которую можно попробовать.
Данная публикация не посвязена выбору модели. Много интересного на тему выбора модели ИИ сообщил ondysss в статье Выбор модели для разработки в 1С: сравниваем топов и open source
//infostart.ru/1c/articles/2613515/
Шаг 8: Загрузка метаданных 1С в векторную базу
Перед началом работы необходимо загрузить структуру вашей конфигурации:
-
В конфигураторе 1С откройте внешнюю обработку
ВыгрузитьОписаниеСтруктурыКонфигурации.epf -
Запустите обработку (F5). Она создаст ZIP-архив с описанием метаданных
-
Откройте браузер и перейдите на
http://localhost:8501(интерфейс загрузчика) -
Нажмите "Обзор", выберите созданный ZIP-файл и нажмите "Начать обработку"
-
Дождитесь завершения загрузки (может занять несколько минут)
Не стоит индексировать сразу очень большие конфигурации, начните, например, с Библиотеки стандартных подсистем.
В процессе настройки я столкнулся с проблемой, которая может возникнуть у многих. Описываю её решение подробно.
Проблема: коллекции не совпадают
После успешного запуска всех контейнеров и загрузки метаданных через интерфейс http://localhost:8501 поиск по метаданным не работал. Система выдавала ошибку:
Коллекция '1c_rag' не существует в Qdrant.
При этом в логах загрузчика было видно, что создалась коллекция 1c_metadata_rag:
Удаление существующей коллекции 1c_metadata_rag с 45 записями... Создание новой коллекции 1c_metadata_rag...
Причина: несоответствие имени коллекции
Оказалось, что:
-
Сервер метаданных (контейнер
metadataилиmcp-metadata) ожидает коллекцию с именем1c_rag -
Загрузчик (веб-интерфейс на порту 8501) по умолчанию создаёт коллекцию
1c_metadata_rag
Решение: явно указать правильное имя коллекции
При загрузке метаданных через веб-интерфейс http://localhost:8501 нужно вручную ввести правильное имя коллекции в соответствующее поле:
Имя коллекции Qdrant (метаданные): 1c_rag
После этого загрузка прошла успешно:
Создание новой коллекции 1c_rag с поддержкой dense и sparse векторов... Коллекция создана. Загружен CSV файл с 74 строками Обработка завершена! Всего загружено 74 записей в коллекцию 1c_rag
Результат
После исправления имени коллекции поиск по метаданным заработал идеально:
Запрос: Найди документы и покажи их реквизиты Результат: - Документ: _ДемоПоступлениеТоваров (Демо: Поступление товаров) - Документ: _ДемоПеремещениеТоваров (Демо: Перемещение товаров) - Документ: _ДемоРеализацияТоваров (Демо: Реализация товаров) - ... и другие Детали по документу _ДемоПеремещениеТоваров: - Реквизиты шапки: Организация, МестоХраненияИсточник, МестоХраненияПриемник, Ответственный, Комментарий
При загрузке метаданных всегда проверяйте имя коллекции — оно должно точно соответствовать тому, что ожидает сервер метаданных (обычно 1c_rag).
Шаг 9: Запуск MCPHost в Windows Terminal
Нажмите Win + R и выполните команду "wt"
В Windows Terminal (не PowerShell и не CMD ) выполните:
cd I:\mcphost .\mcphost.exe --config .mcphost.yml -m ollama:minimax-m2.5:cloud
Вы должны увидеть:
-
Загрузку модели
-
Сообщение
Loaded 7 tools from MCP servers -
Приглашение к вводу
Данный фронтэнд использует псевдографику, что делает очень неудобным его использование в других средах, кроме терминала.
В Windows 11 программа «Терминал» установлена по умолчанию, для Windows 10 её нужно скачать из Microsoft Store.
🐞 Диагностика при первом запуске
При первом запуске настоятельно рекомендуется использовать флаг --debug. Это позволит увидеть детальную информацию о подключении к серверам и диагностировать возможные проблемы на раннем этапе:
.\mcphost.exe --config .mcphost.yml -m ollama:minimax-m2.5:cloud --debug
Пример отладочного вывода:
[DEBUG] Loading MCP server configuration [DEBUG] Connecting to MCP server: metadata-1c [DEBUG] Transport type: streamable [DEBUG] URL: http://localhost:9001/mcp [POOL] Creating new connection for metadata-1c [POOL] Initialized MCP client [POOL] Created connection for metadata-1c [DEBUG] Connecting to MCP server: syntax-help-1c [DEBUG] Transport type: streamable [DEBUG] URL: http://localhost:9002/mcp [POOL] Created connection for syntax-help-1c [DEBUG] Connecting to MCP server: syntax-check-1c [DEBUG] Transport type: streamable [DEBUG] URL: http://localhost:9004/bsl/mcp [POOL] Created connection for syntax-check-1c Loaded 7 tools from MCP servers
Если какой-то сервер не подключается, в отладочном выводе будет видна причина — например, connection refused или 404 Not Found. Это значительно ускоряет поиск и устранение неполадок.
После успешной диагностики и убеждения, что все инструменты загружаются корректно, флаг --debug можно убрать для повседневной работы, чтобы интерфейс оставался чистым.
Шаг 10: Проверка работы
В открывшемся интерфейсе введите команду /tools — должны отобразиться 7 инструментов:
-
metadata-1c__search_metadata -
metadata-1c__metadata_details_by_id -
syntax-help-1c__help_search -
syntax-help-1c__help_details_by_id -
syntax-help-1c__property_details -
syntax-check-1c__check_bsl_file -
syntax-check-1c__check_bsl_code
Теперь можно задавать вопросы, например:
Найди в метаданных документ "РеализацияТоваров" и покажи его реквизиты
Расширение возможностей: доступ к текстам модулей 1С с помощью MCP-сервер для доступа к текстам модулей 1С: простая реализация на Node.js
Базовая конфигурация с тремя MCP-серверами (метаданные, справка, проверка синтаксиса) даёт хорошие возможности, но для полноценной разработки часто требуется доступ к реальному коду — текстам общих модулей, модулей объектов, форм и т.д.
Спасибо xamass за его рабочее решение MCP-сервер для доступа к текстам модулей 1С: простая реализация на Node.js
//infostart.ru/1c/tools/2458900/ - подключаем его тоже успешно!
MCP-сервер для доступа к текстам модулей 1С на Node.js позволяет AI "видеть" и анализировать код вашей конфигурации.
Что даёт сервер модулей
| Инструмент | Описание |
|---|---|
list_module_files |
Список файлов модулей по glob-шаблону |
read_module_text |
Чтение текста конкретного модуля |
grep_modules |
Поиск по содержимому модулей (с поддержкой regex) |
Установка сервера модулей
Шаг 11: Установка Node.js
Скачайте и установите Node.js версии 18 или выше с официального сайта.
Шаг 12: Создание папки для сервера и установка
powershell
mkdir I:\mcpcode cd I:\mcpcode
Распакуйте в эту папку содержимое архива разработки xamass
//infostart.ru/1c/tools/2458900/
Шаг 13: Создание файла сервера
Создайте файл server-esm.js со следующим содержимым:
Шаг 14: Установка зависимостей
powershell
npm install @modelcontextprotocol/sdk globby zod
Шаг 15: Выгрузка конфигурации 1С в файлы (Конфигурация - Выгрузить конфигурацию в файлы - Выбрать формат XML)
Для работы сервера необходима выгрузка конфигурации в файлы. Это можно сделать из конфигуратора:
cmd
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F "C:\путь\к\вашей\базе" /DumpConfigToFiles "I:\ssl_cf" /Out "I:\dump_log.txt"
Шаг 16:Добавление сервера в конфиг MCPHost
Отредактируйте файл I:\mcphost\.mcphost.yml, добавив новый сервер:
yaml
mcpServers:
metadata-1c:
type: "remote"
url: "http://localhost:9001/mcp"
syntax-help-1c:
type: "remote"
url: "http://localhost:9002/mcp"
syntax-check-1c:
type: "remote"
url: "http://localhost:9004/bsl/mcp"
# НОВЫЙ сервер для работы с кодом модулей
1c-modules:
type: "local"
command: ["C:/Program Files/nodejs/node.exe", "I:/mcpcode/server-esm.js"]
environment:
MODULES_DIR: "I:/ssl_cf"
model: "ollama:minimax-m2.5:cloud"
Переменная окружения MODULES_DIR
При работе с сервером модулей важно правильно настроить переменную окружения, указывающую на каталог с выгруженными файлами конфигурации.
Настройка переменной окружения MODULES_DIR
В конфиге MCPHost (рекомендуемый способ)
В файле .mcphost.yml мы уже указали переменную в секции environment:
yaml
1c-modules:
type: "local"
command: ["C:/Program Files/nodejs/node.exe", "I:/mcpcode/server-esm.js"]
environment:
MODULES_DIR: "I:/ssl_cf" # Здесь указывается путь к выгруженной конфигурации
MCPHost автоматически передаст эту переменную в процесс сервера модулей.
Шаг 17. Проверка работы
После запуска MCPHost команда /tools покажет 10 инструментов (добавились 3 новых):
-
1c-modules__list_module_files -
1c-modules__read_module_text -
1c-modules__grep_modules
Примеры запросов с использованием кода модулей
Поиск по коду:
найди "ВерсияКонфигурации" в модулях обновления
Результат поиска:
Найдено 41 упоминание в 10 модулях: - ОбновлениеИнформационнойБазыСлужебный (12 упоминаний) - ОбновлениеИнформационнойБазыБСП (5 упоминаний) - ОбновлениеИнформационнойБазыБИП (5 упоминаний) - ОбновлениеИнформационнойБазыБСД (5 упоминаний) - ОбновлениеИнформационнойБазыБТС (5 упоминаний) - ОбновлениеКонфигурации (4 упоминания)
Чтение конкретного модуля:
покажи полный код модуля ОбновлениеИнформационнойБазыСлужебный
Поиск с уточнением:
найди все вызовы функции ВерсияКонфигурацииБезНомераСборки в модулях обновления
Важные замечания
-
Возможно зацикливание! Если результат поиска окажется слишком велик (например 300 результатов) то программа зацикливается, выдает одно и то же слишком много раз.
-
Обновление выгрузки: После изменений в конфигурации необходимо повторно выгружать файлы, чтобы сервер видел актуальный код.
-
Производительность: Поиск по большому количеству файлов может занимать время. Рекомендуется уточнять область поиска через параметр
glob. -
Безопасность: Сервер проверяет, что запрашиваемые файлы находятся внутри директории
MODULES_DIR, что предотвращает выход за пределы разрешённой области. -
Кодировка: Убедитесь, что выгруженные файлы имеют кодировку UTF-8 (современные версии 1С выгружают в UTF-8 по умолчанию).
Расширение функциональности
При желании сервер можно доработать, добавив:
-
Поиск с учётом регистра
-
Ограничение количества результатов
-
Фильтрацию по типу модулей
-
Контекстный вывод (несколько строк до и после найденного)
🔧 Возможные проблемы и их решение
1. При подключении MCP-сервера для доступа к текстам модулей 1С: простая реализация на Node.js у меня возникла ошибка:
Warning: Failed to load MCP server '1c-modules': conv mcp tool input schema fail...
Это связано с особенностями валидации в Zod. В приведённом выше коде проблема уже устранена — параметр maxBytes объявлен как z.number().int().optional() без использования positive(), что исключает конфликт.
2. Контейнеры не запускаются
Решение: Проверьте, запущен ли Docker Desktop. Выполните docker ps — если ошибка, перезапустите Docker.
3. MCPHost не видит серверы (Loaded 0 tools)
Решение:
-
Проверьте порты в конфиге (должны совпадать с
docker ps) -
Попробуйте добавить в конфиг
transport: "sse"илиtransport: "streamable" -
Запустите с флагом
--debugдля диагностики
4. Ошибка "коллекция '1c_rag' не существует"
Решение: Не загружены метаданные. Выполните шаг 7.
5. ANSI-символы вместо красивого интерфейса
Решение: Используйте Windows Terminal вместо классической cmd или PowerShell.
6. Ошибка "missing required environment variables for anthropic"
Решение: В конфиге явно укажите model: "ollama:minimax-m2.5:cloud" (как в примере).
🎯 Таким образом
Теперь у вас работает полностью локальная система для AI-разработки на 1С:
Вы (в терминале) ↔ MCPHost ↔ MCP-серверы 1С (Docker) ↔ Ollama (облачная модель)
Все компоненты работают без доступа к зарубежным API и не требуют иностранных карт или SMS.
🎯 Как теперь работает полностью настроенная система
После решения всех проблем финальная архитектура выглядит так:
Компоненты и их состояние
| Компонент | Что делает | Статус |
|---|---|---|
| Docker-контейнеры | Запущены и работают | ОК |
- metadata (порт 9001) |
Сервер метаданных 1С | ОК |
- syntax-help (порт 9002) |
Сервер справки | ОК |
- syntax-check (порт 9004) |
Сервер проверки синтаксиса | ОК |
- loader (порт 8501) |
Веб-интерфейс загрузчика | ОК |
- qdrant (порт 6333) |
Векторная база данных | ОК |
- embedding-service (порт 5000) |
Сервис эмбеддингов | ОК |
| Qdrant коллекции | ||
- 1c_rag |
Метаданные конфигурации (74 записи) | ОК |
| Ollama | Сервер для моделей | ОК |
| MCPHost | LLM-агент с 7 инструментами | ОК |
| Модель | minimax-m2.5:cloud |
ОК |
Доступные инструменты
После запуска MCPHost команда /tools показывает 10 инструментов:
| Инструмент | Назначение |
|---|---|
metadata-1c__search_metadata |
Поиск объектов метаданных |
metadata-1c__metadata_details_by_id |
Детали объекта метаданных по ID |
syntax-help-1c__help_search |
Поиск в справке |
syntax-help-1c__help_details_by_id |
Детали справки по ID |
syntax-help-1c__property_details |
Детали свойств |
syntax-check-1c__check_bsl_file |
Проверка синтаксиса файлов BSL |
syntax-check-1c__check_bsl_code |
Проверка синтаксиса кода BSL |
list_module_files |
Список файлов модулей по glob-шаблону |
read_module_text |
Чтение текста конкретного модуля |
grep_modules |
Поиск по содержимому модулей (с поддержкой regex) |
Примеры работающих запросов
Поиск документов:
Найди документы и покажи их реквизиты
→ Возвращает список всех документов с реквизитами шапки и табличных частей
Детали по конкретному документу:
Покажи структуру документа "РеализацияТоваров"
→ Возвращает полный список реквизитов и табличных частей
Поиск в справке:
Как правильно использовать функцию Найти() в 1С?
→ Возвращает справку из синтакс-помощника
Преимущества готового решения
- Полностью локальное — не требует доступа к зарубежным API
- Безопасное — все данные остаются на вашем компьютере
- Мало затратное после приобретения MCP-серверов (только трафик на облачную модель)
- Масштабируемое — можно загружать любые конфигурации 1С
- Удобное — работает через обычный терминал
Приложения
Схематично принцип действия.
Искомый процесс решения задачи вайб-кодинга в чат - боте Ollama можно представить в виде схемы.
Последовательность настройки в виде схемы.
📚 Полезные ссылки
-
Ollama ollama.com
-
MCPHost на GitHub github.com/mark3labs/mcphost
- Infostart: MCP-сервера для 1С
Зачем это и почему так?
В точке рождения кода в процессе разработки мы превращаем хаос в порядок.
Ключевое преимущество инструмента чат-бота это прецизионное управление контекстным окном.
Здесь можно спорить со мнением, что чат-бот проигрывает специализированным AI-средам (вроде Cursor или плагинов для VS Code), так как не имеет автоматического доступа ко всей кодовой базе. Однако в контексте разработки на 1С ручное управление контекстом через MCP-серверы превращается из ограничения в инструмент высокоточного проектирования.
В разные моменты времени при программировании модели ИИ ведут себя по-разному. Иногда они удивительно чётко понимают и решают задачу, выдают идеальный код и точно выбирают нужные инструменты. А иногда... удивительно тупят, упрямятся, игнорируют очевидное, зацикливаются или выдают откровенно нерабочий код. Удивительно, поразительно и досадно. Почему? Это поведение зависит от множества факторов и требует изучения, почему одни подходы работают, а другие — нет:
-
Формулировки запроса
-
Контекста предыдущих сообщений
-
Текущего состояния модели на сервере
-
Даже времени суток и загруженности, хочу тут продолжить...
1. Детерминизм против «черного ящика» автоматизации
В отличие от IDE-плагинов, которые самостоятельно индексируют проект и часто «засоряют» контекстное окно нерелевантными фрагментами кода, работа через MCPHost позволяет разработчику выступать в роли оркестратора контекста.
Вы четко контролируете, что именно попадает в RAM нейросети:
Структура (Метаданные): Высокоуровневое описание объектов.
Справка (Синтаксис): Официальная документация платформы.
Реализация (Код): Конкретные модули или даже отдельные процедуры.
2. Когнитивная архитектура: Системный подход и Закон Миллера
Эффективность связки «Человек — AI» опирается на фундаментальные принципы когнитивной психологии и системного анализа:
Принцип системного иерархизма: Сложную задачу в 1С не всегда возможно решить «в лоб». Мы используем MCP-серверы для декомпозиции: сначала анализируем систему как целое (через метаданные), затем переходим к компонентам (конкретным модулям).
Закон Миллера (7±2) и Чанкинг: Контекстное окно модели — ресурс ограниченный. Подавая информацию «чанками» (логическими блоками), мы предотвращаем эффект «размытия внимания» (attention loss). Когда в контексте находятся только 3-5 релевантных инструментов и 2-3 модуля, модель демонстрирует максимальную точность (Reasoning), не отвлекаясь на шум.
3. Синергия: Метаданные + Код
Уникальность разработки на 1С — в жесткой связи кода с метаданными. MCP-серверы реализуют двухуровневый доступ:
Semantic Layer (Метаданные): Дает модели понимание типов данных, структуры табличных частей и связей объектов. Это «скелет» задачи.
Implementation Layer (Код): Дает понимание алгоритмов. Это «мышцы».
Без метаданных AI часто галлюцинирует, придумывая несуществующие реквизиты. С MCP-серверами модель сначала «осматривает» структуру, а затем пишет код, строго соответствующий вашей конфигурации.
4. Практические стратегии управления контекстом
Для достижения наилучших результатов рекомендуется придерживаться итеративной модели диалога:
Этап 1: Исследование (Discovery). Поиск по метаданным и списку файлов. Цель — определить границы задачи.
Этап 2: Изоляция (Isolation). Чтение конкретных модулей (read_module_text) с ограничением объема. Мы загружаем только те процедуры, которые участвуют в бизнес-логике.
Этап 3: Точечный рефакторинг. Использование результатов поиска (grep_modules) для внесения изменений по всей конфигурации, основываясь на выявленных паттернах.
5. Предотвращение деградации ответов
При переполнении контекстного окна (Context Overflow) любая модель начинает зацикливаться или игнорировать системные инструкции. Работа в терминале с MCPHost позволяет вовремя заметить избыточность данных и «очистить» мысль нейросети, фокусируя её на точке рождения кода.
Резюме: Чат-бот с MCP-инструментарием — это не просто «окно для вопросов», а полноценный пульт управления вниманием ИИ. Вы не просто просите «сделай что-нибудь», вы конструируете рабочее пространство модели, обеспечивая хирургическую точность её ответов.
Таким образом, поскольку фундаментальные принципы системного мышления и когнитивной психологии довлеют не только над разработчиком, считаю, в отношении нейросетей они применимы, поэтому данный инструмент актуален и поэтому он имеет право на жизнь, поскольку позволяет повысить эффективность работы с AI-ассистентом.
Принцип системного подхода: сложную систему нельзя создать с нуля.
Системный подход — это направление методологии научного познания, в основе которого лежит рассмотрение объектов как систем . Одно из ключевых правил системного подхода гласит:
Правило 1-е: Не компоненты сами по себе составляют суть целого (системы), а наоборот, целое как первичное порождает при своем членении или формировании компоненты системы.
Это означает, что при создании сложной системы (каковой является наш AI-ассистент для 1С) мы не можем собирать её "с нуля" из отдельных деталей, не понимая общей картины. Сначала нужно осмыслить систему как целое, её цели и место в более крупной системе, и только потом переходить к компонентам.
В нашем случае:
-
Целое — это процесс разработки на 1С с использованием AI
-
Надсистема — это экосистема разработки (1С, Docker, Ollama, MCPHost)
-
Компоненты — отдельные MCP-серверы (метаданные, справка, синтаксис, модули)
Мы не стали сразу давать доступ нейросети к коду, начали с базовой конфигурации из трёх серверов, а уже потом добавили усложнение (логическое следствие над простой системой) сервер модулей — мы усложняли, двигались от целого к частям, следуя системному подходу.
В конкретной точке рождения кода мы можем задействовать все возможные MCP-серверы не сразу а по необходимости. Мы можем манипулировать и выбирать ровно столько, сколько нужно для последовательного решения задач разработчика:
-
В один момент поиск по метаданным (структура)
-
В другой момент поиск в справке (документация)
-
Доступ к модулям (реализация)
-
Проверка синтаксиса
Другое важное правило системного подхода:
Правило 2-е: Количество компонентов системы, определяющих ее размер, должно быть минимальным, но достаточным для реализации целей системы.
🔢 Закон Миллера: человек может оперировать ограниченным числом объектов
Второй фундаментальный принцип связан с когнитивными возможностями человека. Американский психолог Джордж Миллер в своём знаменитом исследовании 1956 года «Магическое число семь, плюс-минус два» установил, что:
Среднестатистический человек одновременно может удерживать в кратковременной памяти только 7 ± 2 элементов, т. е. от 5 до 9 объектов.
Этот принцип, известный как «закон Миллера» или «магическое число Миллера», объясняет, почему интерфейсы должны быть простыми, а задачи — декомпозированными.
🧩 Чанкинг (Chunking) — ключ к преодолению ограничений
Миллер также открыл явление «чанкинга» (chunking) — объединения единиц информации в более крупные блоки («куски») . Человек запоминает не отдельные буквы, а слова; не отдельные цифры, а годы; не отдельные задачи, а их смысловые группы.
Например, номер телефона мы запоминаем не как последовательность из 11 цифр, а как группы: 912-345-67-89 . Это и есть чанкинг.
🎯 Эти принципы нашли применение в данной системе
Наш подход к работе с AI-ассистентом полностью соответствует закону Миллера и использует чанкинг.
🔄 Синтез: системный подход + когнитивные ограничения
Объединяя эти две теории, мы получаем методологически обоснованный подход:
-
Системный подход говорит нам: сложную систему надо создавать, двигаясь от целого к частям, и минимизировать количество компонентов .
-
Закон Миллера объясняет, почему это важно: человек (разработчик) физически не может удерживать в сознании больше 7-9 элементов одновременно .
-
Чанкинг даёт нам инструмент преодоления этого ограничения: группировка инструментов по серверам.
Когда разработчик пишет код в диалоге с нейросетью, они вместе создают сложную систему. И здесь работает фундаментальное правило системного подхода:
Правило 1-е: Не компоненты сами по себе составляют суть целого (системы), а наоборот, целое как первичное порождает при своем членении или формировании компоненты системы .
В контексте разработки с AI это означает: нельзя начинать с кода. Сначала нужно осмыслить систему как целое:
| Уровень | Что это значит в разработке |
|---|---|
| Целое | Бизнес-задача, которую решает программа |
| Надсистема | Экосистема, в которой будет работать программа (1С, интеграции, пользователи) |
| Компоненты | Отдельные модули, функции, процедуры |
Как это выглядит на практике:
Ошибка новичка: "Напиши мне процедуру расчёта зарплаты" — и сразу получает код, который потом не встраивается в общую логику.
Системный подход: Сначала описываем задачу целиком, потом декомпозируем:
1. Мы создаём документ "Начисление зарплаты" в 1С:УПП. 2. Он должен проводиться с движениями по регистрам "Взаиморасчеты" и "Затраты". 3. При проведении нужно учитывать настройки учётной политики. 4. Давай спроектируем структуру документа и только потом перейдём к процедуре проведения.
Другое важное правило системного подхода:
Правило 2-е: Количество компонентов системы, определяющих ее размер, должно быть минимальным, но достаточным для реализации целей системы .
В диалоге с AI это означает: не пытайтесь решить всё сразу. Разбивайте задачу на минимальные, но законченные куски:
"Сделай мне отчёт по продажам со всеми возможными разрезами"
"Сначала сделай простой отчёт по продажам за период. Потом добавим группировку по менеджерам. Затем — по номенклатуре."
📊 Норма управляемости
Интересно, что эти же числа (7±2) встречаются и в теории менеджмента как «норма управляемости» — оптимальное количество подчинённых у одного руководителя. В системном анализе это также учитывается:
Количество подчиненных верхнему уровню компонентов в зависимости от сложности решаемых задач должно находиться в пределах от 6 до 10. Превышение этого количества подчиненных субъекту управления компонентов снижает управляемость системы .
В нашем случае MCPHost выступает как «руководитель», а MCP-серверы — как «подчинённые». И мы уложились в норму управляемости: 4 сервера — это вполне комфортно.
В разработке с AI это работает так:
Плохо (информационная перегрузка):
Вот полный код документа "РеализацияТоваров" (2000 строк). Проанализируй его и найди все потенциальные проблемы.
Хорошо (используем чанкинг):
1. Посмотри структуру документа "РеализацияТоваров" в метаданных. 2. Теперь покажи модуль объекта. 3. Сфокусируйся на процедуре "ОбработкаПроведения". 4. Есть ли в ней избыточные запросы к базе? 5. А теперь давай посмотрим на движения по регистрам.
Каждый шаг загружает в контекст ровно один «чанк» — логически завершённый блок информации.
🎯 Как эти принципы работают вместе
| Принцип | В чём суть | Как применяем в диалоге с AI |
|---|---|---|
| Системный подход | Целое первично | Сначала описываем задачу, потом код |
| Минимальная достаточность | Компонентов ровно столько, сколько нужно | Разбиваем задачу на шаги |
| Закон Миллера | Не более 9 элементов одновременно | Работаем с небольшими фрагментами |
| Чанкинг | Группируем информацию в блоки | Сначала метаданные, потом код, потом детали |
💡 Пример из реальной разработки
Допустим, нам нужно добавить новый отчёт в конфигурацию.
Без учёта принципов:
Напиши новый отчёт по продажам.
С учётом принципов (системный подход + чанкинг):
Шаг 1 (целое): Мы добавляем отчёт "Анализ продаж" в подсистему "Маркетинг". Он должен показывать продажи в разрезе номенклатуры и контрагентов. Шаг 2 (метаданные): Создай новый отчёт в конфигурации с нужными реквизитами. Шаг 3 (макет): Теперь сделай макет для вывода результата. Шаг 4 (запрос): Сформируй запрос к регистру накопления "Продажи". Шаг 5 (детали): В запросе нужно добавить отбор по периоду и условие на статус документа.
В этом диалоге каждый шаг — отдельный чанк, который легко обработать и разработчику, и модели.
🏆 Вывод
Эффективная работа с AI-ассистентом — это не просто умение задавать вопросы, а осознанное применение системного подхода и учёт когнитивных ограничений. Когда вы:
-
Начинаете с целого (бизнес-задачи), а не с кода
-
Декомпозируете задачу на минимальные, но законченные шаги
-
Работаете с небольшими фрагментами кода, а не с монолитными модулями
-
Группируете информацию в логические блоки (чанки)
...тогда AI становится не просто генератором кода, а настоящим помощником, который понимает контекст и выдаёт осмысленные решения.
Именно этому подходу мы учились, настраивая нашу систему с MCP-серверами — она даёт нам инструменты для работы и с метаданными (общая картина), и с кодом (детали), позволяя соблюдать все описанные принципы.
📝 Промпт-инжиниринг — ключевой навык
Качество ответа напрямую зависит от качества запроса. Один и тот же вопрос, заданный по-разному, может дать совершенно разные результаты:
Плохо: "Найди документы"
Хорошо: "Найди все документы типа 'РеализацияТоваров' и покажи их реквизиты, сгруппированные по табличным частям"
Плохо: "Ищи в коде"
Хорошо: "Найди в общих модулях, связанных с обновлением, все упоминания функции 'ВерсияКонфигурацииБезНомераСборки' и покажи контекст вызова"
📚 Метаданные + код = синергия
Наличие метаданных кроме первичного кода кардинально повышает качество работы. Когда модель понимает не только синтаксис, но и структуру конфигурации, её ответы становятся осмысленнее:
-
Только код: модель видит отдельные процедуры, но не понимает, как они связаны с объектами метаданных
-
Только метаданные: модель знает структуру, но не видит реализацию
-
Вместе: модель может сказать не только "что есть", но и "как это работает"
🔍 Что важно на практике
-
Конкретизируйте запросы — чем точнее, тем лучше результат
-
Уточняйте область поиска — ищите не по всем модулям, а по конкретным группам
-
Анализируйте результаты — модель может ошибаться, проверяйте
-
Экспериментируйте с формулировками — иногда достаточно перефразировать
-
Используйте метаданные как контекст — перед поиском кода уточните структуру
кардинально влияет на качество ответов.
🎯 Фокусировка: даёшь конкретный код — получаешь точный анализ.
Подводя итог, чат бот имеет точку, конкретную осязаемую точку места рождения кода разработки, и в данной точке позволяет управлять мыслью нейросети, управлять контекстом разработки.
Когда вы просто спрашиваете "как улучшить этот код?", модель видит только то, что вы ей отправили.
Но когда вы целенаправленно загружаете в контекст конкретные модули, происходит магия:
ПЛОХО: Размытый запрос: "Расскажи про обновление конфигурации" ХОРОШО: Сфокусированный запрос с контекстом: "Вот код модуля ОбновлениеИнформационнойБазыСлужебный. Проанализируй процедуру ПриЗавершенииПереходаСДругойПрограммы. Как она использует параметр ПредыдущаяВерсияКонфигурации? Есть ли в этом коде потенциальные проблемы?"
Во втором случае модель сконцентрирована на конкретном фрагменте и выдаёт гораздо более глубокий анализ.
📦 Контекстное окно — это ресурс, которым нужно управлять
Для меня важна конкретная точка (момент и место) рождения системы, в которой я прорабатываю, вытачиваю конкретную деталь, чтобы положить ее как кирпич в фундамент системы, сказать "Готово" и забыть - пускай теперь оно само работает дальше без меня. И у каждой модели ИИ есть ограничение на размер контекста (токенов). Этот ресурс надо использовать разумно:
| Модель | Размер контекста | Что помещается |
|---|---|---|
| MiniMax M2.5 | 204 800 токенов | ~150-200 страниц кода |
| GLM-5 | 128 000+ токенов | ~100-150 страниц кода |
💡 Тактики эффективного использования контекста
1. Выборочная загрузка
Не надо скидывать всю конфигурацию сразу. Используйте list_module_files и read_module_text, чтобы загрузить только нужные модули:
Сначала: "Покажи список общих модулей, связанных с обновлением" Затем: "Загрузи модуль ОбновлениеИнформационнойБазыСлужебный для анализа"
2. Циклический диалог
Используйте историю обсуждения как расширенный контекст:
Вы: "Покажи процедуру Проведения в документе Реализация" Модель: [показывает код] Вы: "А теперь оптимизируй этот цикл, вот конкретное место" Модель: помнит предыдущий код и даёт точечные правки
3. Приземление после поиска
После grep-поиска модель возвращает JSON с десятками результатов. Не надо просить "проанализируй всё" — выберите конкретные строки для обсуждения:
Найдено 41 упоминание. Проанализируй строку 3531 из модуля ОбновлениеИнформационнойБазыСлужебный: "ПредыдущаяВерсияКонфигурации = РезультатЗапроса.Версия;" Почему здесь используется РезультатЗапроса, а не прямой запрос к метаданным?
🎓 Пример из практики: рефакторинг с фокусом
Ситуация: Нужно понять, как работает механизм обновления версий.
Плохой подход:
расскажи про обновление версий в 1С
→ Модель выдаст общие слова из документации.
Хороший подход:
1. Найди в модулях обновления все вызовы "ВерсияКонфигурации" 2. Покажи текст модуля ОбновлениеИнформационнойБазыСлужебный 3. Сфокусируйся на процедуре ПриЗавершенииПереходаСДругойПрограммы 4. Объясни логику работы с версиями в этой процедуре 5. Теперь сравни с аналогичной процедурой в ОбновлениеИнформационнойБазыБСП
Каждый шаг добавляет ровно столько контекста, сколько нужно, и не перегружает модель лишней информацией.
🔍 Метаданные как фильтр контекста
Наличие метаданных позволяет ещё точнее фокусироваться:
Сначала найди в метаданных документ "РеализацияТоваров" и покажи его реквизиты. Теперь, зная структуру, найди в модулях этого документа все процедуры, которые работают с реквизитом "Организация".
Модель получает двухуровневый контекст: структуру (из метаданных) и реализацию (из кода). Это даёт глубочайшее понимание.
Осторожно: переполнение контекста
Если загрузить слишком много, модель начинает "забывать" начало диалога или зацикливаться. Признаки переполнения:
-
Модель повторяет одно и то же
-
Начинает отвечать не на тот вопрос
-
Теряет нить рассуждения
Решение:
-
Начинайте новый диалог для новой темы
-
Используйте
read_module_textс параметромmaxBytes, чтобы обрезать очень большие модули -
После глубокого анализа конкретного модуля возвращайтесь к общему контексту командой
/clear(если поддерживается)
Управление контекстом — это искусство баланса. Вы должны дать модели достаточно информации для понимания, но не перегрузить её. Хороший разработчик с AI-ассистентом похож на хирурга: точные движения, правильные инструменты, никакой лишней ткани.
Чат-бот с MCPHost даёт вам полный контроль над этим процессом — вы сами решаете, что попадает в контекст, а что остаётся за кадром. И это, пожалуй, главное преимущество перед простым веб-интерфейсом любой модели.
Система Ollama и MCPHost — не магическая таблетка, а инструмент. Как любой инструмент, она требует навыков и понимания. Но когда вы находите правильный подход, когда модель выдаёт именно то, что нужно — это настоящее удовольствие. Используйте чат-бот для точной фокусировки на решаемой проблеме!
Официальные названия двух моделей, с которыми я здесь работал:
🤖 MiniMax M2.5
Точное название для команды: minimax-m2.5:cloud
Модель MiniMax-M2.5 — это высокоэффективная языковая модель, созданная специально для задач программирования и агентных сценариев (Agentic workflows) . В письме от Ollama её называют "open-source frontier coding and agentic model", которая обеспечивает хороший баланс между качеством и скоростью.
Ключевые особенности:
-
10 миллиардов активных параметров (230 миллиардов всего)
-
Оптимизирована для многофайлового редактирования, циклов "кодирование-запуск-исправление"
-
Отличные показатели в бенчмарках на работу с инструментами
🧠 GLM-5
Точное название для команды: glm-5:cloud
GLM-5 от Z.ai — это мощная модель на архитектуре смеси экспертов (MoE) с 744 миллиардами общих параметров (40 миллиардов активных) . Она позиционируется как универсальная open-source модель, которая хороша в рассуждениях, креативном письме, программировании и агентных задачах .
Ключевые особенности:
-
Использует DeepSeek Sparse Attention (DSA) для снижения стоимости развертывания
-
Поддерживает контекст до 128K+ токенов
-
Выдающиеся результаты: 92.7% на AIME 2026 I, 86.0% на GPQA-Diamond, 77.8% на SWE-bench Verified
Данная публикация не посвящена выбору модели ИИ. Появляются новые интересные модели ИИ, как показал ondysss в статье Выбор модели для разработки в 1С: сравниваем топов и open source, которые наверняка получится применить c MCPHost с бОльшим успехом. В данной теме пока рано ставить точку.
🔍 Альтернативные варианты:
Вариант 1: Cerebras + GLM-4.7 (бесплатно, до 1 млн токенов)
Из свежей статьи (06.02.2026) мы видим рабочий вариант :
Cerebras — сервис с огромными лимитами (до 1 млн токенов в день) БЕСПЛАТНО. Используется модель GLM-4.7 Air, которая:
Отлично работает с MCP-серверами
Имеет огромные бесплатные лимиты
Не требует VPN и зарубежных карт
Как подключить к MCPHost:
yaml
# В .mcphost.yml model: "openai:glm-4.7-air" provider-url: "https://api.cerebras.ai/v1" provider-api-key: "ВАШ_КЛЮЧ_CEREBRAS"
Регистрация: Cerebras даёт бесплатный доступ без сложной верификации.
Вариант 2: OpenRouter как агрегатор бесплатных моделей
OpenRouter даёт доступ к десяткам моделей через единый API:
| Бесплатные модели на OpenRouter | Особенности |
|---|---|
| Llama 4 Scout/Maverick | Лучшие среди открытых моделей |
| Qwen 3-32B | Хороша для 1С-кода |
| Gemma-3-27B | Лёгкая, быстрая |
| Grok-code-fast-1 | Специализированная для кода |
Настройка для MCPHost:
yaml
model: "openai:grok-code-fast-1" provider-url: "https://openrouter.ai/api/v1" provider-api-key: "..."
1. Cerebras + GLM-4.7 (наилучший вариант)
yaml
# .mcphost.yml model: "openai:glm-4.7-air" provider-url: "https://api.cerebras.ai/v1" provider-api-key: "ваш_ключ_cerebras" # Системный промпт (антициклический) system-prompt: "I:/mcphost/glm-anti-loop-prompt.json"
Регистрация:
-
Зайдите на console.cerebras.ai
-
Получите бесплатный API-ключ
-
Лимит — 1 млн токенов в день
2. OpenRouter с Grok-code-fast-1
yaml
model: "openai:grok-code-fast-1" provider-url: "https://openrouter.ai/api/v1" provider-api-key: "sk-or-v1-..."
Нюанс: может потребоваться VPN при регистрации.
3. Усиленный антициклический промпт для любых моделей
json
{
"systemPrompt": "Ты — разработчик 1С. Отвечай максимально кратко.\n\nЖЁСТКИЕ ПРАВИЛА:\n1. НИКАКИХ ПОВТОРОВ — один факт один раз.\n2. НИКАКИХ ТАБЛИЦ — только списки (1. 2. 3.).\n3. МАКСИМУМ 3 ПРЕДЛОЖЕНИЯ после данных.\n4. Если данные уже показаны — не дублируй.\n5. Используй MCP-серверы для проверки синтаксиса и метаданных."
}
Веб-альтернативы для работы с MCP-серверами 1С
Существуют полноценные веб-решения, позволяющие взаимодействовать с MCP-серверами через браузер. Рассмотрим три наиболее перспективных варианта.
🖥 Open WebUI — универсальная веб-платформа
Что это такое
Open WebUI — это самое популярное саморазмещаемое веб-решение с открытым исходным кодом для взаимодействия с языковыми моделями . Оно предоставляет современный интерфейс, похожий на ChatGPT, но работает полностью локально и поддерживает интеграцию с MCP-серверами.
Архитектура и принцип работы
Open WebUI "из коробки" не поддерживает прямой вызов MCP-серверов, поскольку ожидает общение по протоколу HTTP/OpenAPI, а многие MCP-серверы работают через STDIO . Для решения этой проблемы используется специальный прокси-компонент — mcpo (MCP-OpenAPI-Proxy) .
text
Open WebUI (HTTP/OpenAPI) → mcpo (прокси-переводчик) → MCP-серверы 1С (STDIO/HTTP)
Компоненты стека :
| Компонент | Роль |
|---|---|
| Open WebUI | Веб-интерфейс для пользователей, управление чатами и моделями |
| Ollama | Запуск локальных моделей (опционально) |
| LiteLLM | Прокси для унификации API различных моделей |
| mcpo | Конвертирует MCP-вызовы в OpenAPI-совместимые эндпоинты |
| MCP Gateway | Реестр и федерация MCP-серверов (опционально) |
Развёртывание Open WebUI с поддержкой MCP
Базовый запуск через Docker Compose :
yaml
version: '3.8'
services:
ollama:
image: ollama/ollama:latest
ports:
- "11434:11434"
volumes:
- ./ollama:/root/.ollama
openwebui:
image: ghcr.io/open-webui/open-webui:main
environment:
- OLLAMA_BASE_URL=http://ollama:11434
ports:
- "3000:8080"
depends_on:
- ollama
mcpo:
image: ghcr.io/modelcontextprotocol/mcpo:latest
environment:
- MCP_SERVER_NAME=1c-metadata
- MCP_SERVER_CMD=npx
- MCP_SERVER_ARGS=-y @modelcontextprotocol/server-filesystem I:/ssl_cf
ports:
- "8000:8000"
Подключение MCP-серверов 1С :
-
Запустите ваш MCP-сервер (например, metadata-1c на порту 9001)
-
Настройте mcpo для проксирования к этому серверу
-
В интерфейсе Open WebUI перейдите в Settings → Tools
-
Добавьте новый инструмент с URL вашего mcpo-эндпоинта (например,
http://localhost:8000) -
В чате активируйте нужные инструменты через кнопку e33;
Важное замечание: При работе Open WebUI в Docker для доступа к серверам на хосте используйте http://host.docker.internal:порт вместо localhost .
Плюсы и минусы Open WebUI
| Преимущества | Недостатки |
|---|---|
| Полноценный веб-интерфейс как у ChatGPT | Требует дополнительного прокси (mcpo) |
| Многопользовательский режим | Более сложная настройка |
| Поддержка мобильных устройств | Нужно запускать несколько контейнеров |
| Сохранение истории диалогов | |
| Развитая система управления инструментами |
🔌 Open MCP Client — простой веб-чат для MCP
Что это такое
Open MCP Client — это проект от команды CopilotKit, представляющий собой саморазмещаемый веб-клиент с открытым исходным кодом для общения с MCP-серверами . Он создан специально для тех, кто хочет быстро получить веб-интерфейс без сложной инфраструктуры.
Архитектура и принцип работы
Open MCP Client использует LangChain ReAct-агент (всего 40 строк кода!) для обработки MCP-вызовов . Он интегрируется с сервисом Composio, который предоставляет доступ к MCP-серверам через URL.
text
Пользователь (браузер) → Open MCP Client → Composio → MCP-серверы
Ключевая особенность: CopilotKit оборачивает всё приложение, давая агенту контекст как чата, так и пользовательского интерфейса для выполнения действий .
Развёртывание и использование
Быстрый старт :
bash
# Клонирование репозитория git clone https://github.com/CopilotKit/open-mcp-client.git cd open-mcp-client # Установка зависимостей npm install # Запуск npm run dev
Подключение MCP-серверов:
-
Получите URL вашего MCP-сервера через Composio
-
Вставьте URL в интерфейс клиента
-
Начните чат с подключёнными инструментами
Пример использования
Разработчики приводят отличный пример:
"Запланируй встречу на завтра в 15:00, но только если не будет дождя"
Агент скоординирует работу между MCP-серверами календаря и погоды, проверит прогноз, найдёт свободный слот и создаст событие — всё через единый чат-интерфейс.
Плюсы и минусы Open MCP Client
| Преимущества | Недостатки |
|---|---|
| Минималистичный, создан специально для MCP | Требует Composio для подключения серверов |
| Простая установка | Менее функционален, чем Open WebUI |
| Интеграция с UI приложения | Относительно новый проект (апрель 2025) |
| Легковесное решение |
🔗 MCP Links — мост между MCP-серверами
Что это такое
MCP Link (пакет mcp-link) — это не веб-интерфейс сам по себе, а мост (bridge), позволяющий соединять MCP-серверы с различными клиентами, включая веб-приложения . Он доступен как CLI-утилита и как SDK для разработчиков.
Ключевая функциональность
MCP Link умеет соединять любые комбинации транспортных протоколов :
| Режим сервера | Режим клиента | Описание |
|---|---|---|
| stdio | stdio, sse, streamable, stdio-container | Локальный процесс → куда угодно |
| sse | stdio, sse, streamable, stdio-container | HTTP-сервер → куда угодно |
| streamable | stdio, sse, streamable, stdio-container | Streamable HTTP → куда угодно |
Особенность: режим stdio-container автоматически запускает эфемерный Docker-контейнер для каждой MCP-сессии и удаляет его по окончании .
Использование как прокси для веб-интерфейса
MCP Link может выступать в роли прослойки между вашими MCP-серверами 1С и любым веб-клиентом:
bash
# Установка npm install -g mcp-link # Запуск моста для сервера метаданных 1С mcplink --serverMode=stdio --clientMode=sse --port=8080 --command="node I:/mcpcode/server-metadata.js" # Теперь ваш MCP-сервер доступен через SSE на порту 8080 # Любой веб-клиент может подключиться к http://localhost:8080
SDK для разработчиков
MCP Link предоставляет SDK для создания собственных решений с возможностью обработки сообщений :
javascript
import { startBridge } from 'mcp-link';
const bridge = await startBridge({
serverMode: 'stdio',
clientMode: 'sse',
port: 8080,
command: 'node I:/mcpcode/server-metadata.js',
messageProcessor: {
forwardMessageToServer: async (message) => {
console.log('→', message);
return message;
},
returnMessageToClient: async (message) => {
console.log('←', message);
return message;
}
}
});
Плюсы и минусы MCP Links
| Преимущества | Недостатки |
|---|---|
| Гибкое bridging между любыми протоколами | Не является готовым веб-интерфейсом |
| Поддержка Docker-контейнеров | Требует дополнительной настройки |
| Есть SDK для кастомизации | Меньше готовых решений "из коробки" |
| Возможность логирования и трансформации сообщений |
Спасибо за внимание.
Вступайте в нашу телеграмм-группу Инфостарт
