Как подключить локальные MCP-серверы 1С к Ollama через MCPHost: пошаговое руководство

16.02.26

Интеграция - Нейросети

Ollama позволяет работать с разными облачными и локальными нейросетями бесплатно в виде чат-бота. Настроим полноценную среду для AI-ассистированной разработки на 1С, используя: Docker-контейнеры с MCP-серверами для 1С (метаданные, справка, проверка синтаксиса). Ollama работает с облачной моделью (поддерживающей function calling) MCPHost в качестве LLM-агента. Весь стек работает полностью локально без зарубежных платежей и номеров телефонов. Не требует VPN.

Хочу поделиться опытом решения  задачи вайб-кодинга в чат-боте Ollama на примере "Infostart MCP серверов", и это должно работать с любыми MCP серверами. В пользу чат-бота ориентирует преимущество концентрации на промпт-инжениринге.

Данное рещение Infostart MCP серверы - не первое, которое я вижу, и нужно отметить, что удобство эксплуатации является его большим достоинством.

 

📦 Что потребуется

Системные требования

  • Windows 10/11 (или другая ОС с поддержкой Docker)

  • 8+ ГБ RAM (рекомендуется 16 ГБ)

  • Docker Desktop

  • Ollama (установленная и настроенная)

  • Современные бесплатные новаторские модели ИИ MiniMax M2.5, GLM-5. Неважно, локальные или облачные - их можно использовать без ВПН, в том числе на сайте Оллама доступен клиент  облачного ДипСик.

  • MCPHost (бинарник для Windows) 

Компоненты для 1С

  • Приобретенное решение "MCP-сервера для программирования на 1С с LLM" с сайта Infostart

  • Docker-образы из поставки решения

  • Внешняя обработка ВыгрузитьОписаниеСтруктурыКонфигурации.epf

  • MCP-сервер для доступа к текстам модулей 1С: простая реализация на Node.js

 

🎨 Архитектура решения

Как это работает: краткое описание

  1. 1С Конфигуратор выгружает метаданные и модули в файлы

  2. Docker-контейнеры обрабатывают эти данные:

    • Загрузчик (loader) помещает метаданные в векторную БД Qdrant

    • Серверы (metadatasyntax-helpsyntax-check) предоставляют API для доступа к данным

  3. Qdrant хранит векторные представления метаданных для семантического поиска

  4. Сервер модулей (Node.js) работает с файлами выгрузки, предоставляя доступ к коду

  5. MCPHost координирует работу:

    • Получает запрос пользователя

    • Выбирает нужный инструмент

    • Вызывает соответствующий MCP-сервер

    • При необходимости обращается к Ollama для обработки естественного языка

  6. 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

  1. Скачайте Docker Desktop с официального сайта

  2. Установите, следуя инструкциям

  3. Запустите Docker Desktop и дождитесь появления значка в трее (зеленый кит)

  4. Проверьте работу в PowerShell:

    powershell

    docker --version
    docker-compose --version

Шаг 2: Подготовка файлов решения

Распакуйте приобретенное решение в удобную папку, например I:\mcp_v1.6.1\. Убедитесь, что там есть:

  • docker-compose.yml

  • Папка bsl-ls

  • Папка Примеры настроек

  • Обработка ВыгрузитьОписаниеСтруктурыКонфигурации.epf

Шаг 3: Запуск Docker-контейнеров

  1. Откройте PowerShell в папке с docker-compose.yml:

    powershell

    cd I:\mcp_v1.6.1
  2. Запустите контейнеры:

    powershell

    docker-compose up -d
  3. Проверьте, что все контейнеры запустились:

    powershell

    docker ps

    Вы должны увидеть примерно такой список:

    metadata, bsl-checker, help, loader, metadata-loader, qdrant, embedding-service

Шаг 4: Установка Ollama

  1. Скачайте Ollama с официального сайта

  2. Установите и запустите

  3. Убедитесь, что сервер работает:

    powershell

    ollama serve

    (Оставьте это окно открытым)

  4. Войдите в аккаунт для доступа к облачным моделям:

    powershell

    ollama signin
  5. Проверьте доступные модели:

    powershell

    ollama list

Одно из ключевых преимуществ данной архитектуры — возможность использовать любую модель Ollama. Вы можете экспериментировать с разными моделями, переключаясь между ними.  

Шаг 5: Установка MCPHost

  1. Скачайте последнюю версию mcphost_Windows_x86_64.zip со страницы релизов

  2. Распакуйте в удобную папку, например I:\mcphost\

  3. Проверьте, что файл 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. Придерживаться роли — отвечать как опытный разработчик 1С

  2. Следовать правилам — не использовать неподходящие конструкции

  3. Использовать MCP-инструменты в правильном порядке — сначала метаданные, потом детали

  4. Проверять код — автоматически прогонять диагностику

  5. Форматировать ответы — согласно стандартам

💡 Ещё более мощный вариант: 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. Разбивка сложных запросов

Вместо одного запроса на всё, делайте несколько последовательных:

  1. Сначала найдите объекты

  2. Потом детали по конкретному объекту

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 напрямую не получится — модели не хватает совместимости по формату вызова инструментов. Однако это не повод отчаиваться:

  1. Если вы хотите использовать именно DeepSeek, рассмотрите вариант с Open WebUI или официальным API.

  2. Для локальной работы с MCPHost отлично подходят GLM-5 и MiniMax M2.5, которые показали стабильную совместимость.

  3. Существует модифицированная локальная версия DeepSeek с поддержкой инструментов — MFDoom/deepseek-r1-tool-calling:8b, которую можно попробовать.

Данная публикация не посвязена выбору модели. Много интересного на тему выбора модели ИИ сообщил ondysss в статье Выбор модели для разработки в 1С: сравниваем топов и open source

//infostart.ru/1c/articles/2613515/

 

Шаг 8: Загрузка метаданных 1С в векторную базу

Перед началом работы необходимо загрузить структуру вашей конфигурации:

  1. В конфигураторе 1С откройте внешнюю обработку ВыгрузитьОписаниеСтруктурыКонфигурации.epf

  2. Запустите обработку (F5). Она создаст ZIP-архив с описанием метаданных

  3. Откройте браузер и перейдите на http://localhost:8501 (интерфейс загрузчика)

  4. Нажмите "Обзор", выберите созданный ZIP-файл и нажмите "Начать обработку"

  5. Дождитесь завершения загрузки (может занять несколько минут)

Не стоит индексировать сразу очень большие конфигурации, начните, например, с Библиотеки стандартных подсистем.

В процессе настройки я столкнулся с проблемой, которая может возникнуть у многих. Описываю её решение подробно.

Проблема: коллекции не совпадают

После успешного запуска всех контейнеров и загрузки метаданных через интерфейс 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 со следующим содержимым:

 
 Измененный javascript код MCP-сервера

 

Шаг 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 упоминания)

Чтение конкретного модуля:

покажи полный код модуля ОбновлениеИнформационнойБазыСлужебный

Поиск с уточнением:

 

найди все вызовы функции ВерсияКонфигурацииБезНомераСборки в модулях обновления

 

Важные замечания

  1. Возможно зацикливание! Если результат поиска окажется слишком велик (например 300 результатов) то программа зацикливается, выдает одно и то же слишком много раз.

  2. Обновление выгрузки: После изменений в конфигурации необходимо повторно выгружать файлы, чтобы сервер видел актуальный код.

  3. Производительность: Поиск по большому количеству файлов может занимать время. Рекомендуется уточнять область поиска через параметр glob.

  4. Безопасность: Сервер проверяет, что запрашиваемые файлы находятся внутри директории MODULES_DIR, что предотвращает выход за пределы разрешённой области.

  5. Кодировка: Убедитесь, что выгруженные файлы имеют кодировку 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С
Удобное — работает через обычный терминал

Приложения

Схематично принцип действия.

 
 PlantUML диаграмма взаимодействия компонентов системы

Искомый процесс решения задачи вайб-кодинга в чат - боте Ollama можно представить в виде схемы.

 
Цикл обработки запроса

Последовательность настройки в виде схемы.

 
Процесс настройки 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-ассистентом полностью соответствует закону Миллера и использует чанкинг.

🔄 Синтез: системный подход + когнитивные ограничения

Объединяя эти две теории, мы получаем методологически обоснованный подход:

  1. Системный подход говорит нам: сложную систему надо создавать, двигаясь от целого к частям, и минимизировать количество компонентов .

  2. Закон Миллера объясняет, почему это важно: человек (разработчик) физически не может удерживать в сознании больше 7-9 элементов одновременно .

  3. Чанкинг даёт нам инструмент преодоления этого ограничения: группировка инструментов по серверам.

Когда разработчик пишет код в диалоге с нейросетью, они вместе создают сложную систему. И здесь работает фундаментальное правило системного подхода:

Правило 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-ассистентом — это не просто умение задавать вопросы, а осознанное применение системного подхода и учёт когнитивных ограничений. Когда вы:

  1. Начинаете с целого (бизнес-задачи), а не с кода

  2. Декомпозируете задачу на минимальные, но законченные шаги

  3. Работаете с небольшими фрагментами кода, а не с монолитными модулями

  4. Группируете информацию в логические блоки (чанки)

...тогда AI становится не просто генератором кода, а настоящим помощником, который понимает контекст и выдаёт осмысленные решения.

Именно этому подходу мы учились, настраивая нашу систему с MCP-серверами — она даёт нам инструменты для работы и с метаданными (общая картина), и с кодом (детали), позволяя соблюдать все описанные принципы.

 

📝 Промпт-инжиниринг — ключевой навык

Качество ответа напрямую зависит от качества запроса. Один и тот же вопрос, заданный по-разному, может дать совершенно разные результаты:

Плохо: "Найди документы"
Хорошо: "Найди все документы типа 'РеализацияТоваров' и покажи их реквизиты, сгруппированные по табличным частям"

Плохо: "Ищи в коде"
Хорошо: "Найди в общих модулях, связанных с обновлением, все упоминания функции 'ВерсияКонфигурацииБезНомераСборки' и покажи контекст вызова"

 

📚 Метаданные + код = синергия

Наличие метаданных кроме первичного кода кардинально повышает качество работы. Когда модель понимает не только синтаксис, но и структуру конфигурации, её ответы становятся осмысленнее:

  • Только код: модель видит отдельные процедуры, но не понимает, как они связаны с объектами метаданных

  • Только метаданные: модель знает структуру, но не видит реализацию

  • Вместе: модель может сказать не только "что есть", но и "как это работает"

 

🔍 Что важно на практике

  1. Конкретизируйте запросы — чем точнее, тем лучше результат

  2. Уточняйте область поиска — ищите не по всем модулям, а по конкретным группам

  3. Анализируйте результаты — модель может ошибаться, проверяйте

  4. Экспериментируйте с формулировками — иногда достаточно перефразировать

  5. Используйте метаданные как контекст — перед поиском кода уточните структуру

кардинально влияет на качество ответов.

 

🎯 Фокусировка: даёшь конкретный код — получаешь точный анализ.

Подводя итог,  чат бот имеет точку, конкретную осязаемую точку места рождения кода разработки, и в данной точке позволяет управлять мыслью нейросети, управлять контекстом разработки.

Когда вы просто спрашиваете "как улучшить этот код?", модель видит только то, что вы ей отправили.

Но когда вы целенаправленно загружаете в контекст конкретные модули, происходит магия:

ПЛОХО: Размытый запрос:
"Расскажи про обновление конфигурации"

ХОРОШО: Сфокусированный запрос с контекстом:
"Вот код модуля ОбновлениеИнформационнойБазыСлужебный. 
Проанализируй процедуру ПриЗавершенииПереходаСДругойПрограммы.
Как она использует параметр ПредыдущаяВерсияКонфигурации?
Есть ли в этом коде потенциальные проблемы?"

Во втором случае модель сконцентрирована на конкретном фрагменте и выдаёт гораздо более глубокий анализ.

 

📦 Контекстное окно — это ресурс, которым нужно управлять

Для меня важна конкретная точка (момент и место) рождения системы, в которой я прорабатываю, вытачиваю конкретную деталь, чтобы положить ее как кирпич в фундамент системы, сказать "Готово" и забыть - пускай теперь оно само работает дальше без меня. И у каждой модели ИИ есть ограничение на размер контекста (токенов). Этот ресурс надо использовать разумно:

Модель Размер контекста Что помещается
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. Теперь сравни с аналогичной процедурой в ОбновлениеИнформационнойБазыБСП

Каждый шаг добавляет ровно столько контекста, сколько нужно, и не перегружает модель лишней информацией.

 

🔍 Метаданные как фильтр контекста

Наличие метаданных позволяет ещё точнее фокусироваться:

Сначала найди в метаданных документ "РеализацияТоваров" 
и покажи его реквизиты.

Теперь, зная структуру, найди в модулях этого документа 
все процедуры, которые работают с реквизитом "Организация".

Модель получает двухуровневый контекст: структуру (из метаданных) и реализацию (из кода). Это даёт глубочайшее понимание.

 

Осторожно: переполнение контекста

Если загрузить слишком много, модель начинает "забывать" начало диалога или зацикливаться. Признаки переполнения:

  • Модель повторяет одно и то же

  • Начинает отвечать не на тот вопрос

  • Теряет нить рассуждения

Решение:

  1. Начинайте новый диалог для новой темы

  2. Используйте read_module_text с параметром maxBytes, чтобы обрезать очень большие модули

  3. После глубокого анализа конкретного модуля возвращайтесь к общему контексту командой /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"

Регистрация:

  1. Зайдите на console.cerebras.ai

  2. Получите бесплатный API-ключ

  3. Лимит — 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С :

  1. Запустите ваш MCP-сервер (например, metadata-1c на порту 9001)

  2. Настройте mcpo для проксирования к этому серверу

  3. В интерфейсе Open WebUI перейдите в Settings → Tools

  4. Добавьте новый инструмент с URL вашего mcpo-эндпоинта (например, http://localhost:8000)

  5. В чате активируйте нужные инструменты через кнопку 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-серверов:

  1. Получите URL вашего MCP-сервера через Composio

  2. Вставьте URL в интерфейс клиента

  3. Начните чат с подключёнными инструментами

Пример использования

Разработчики приводят отличный пример:

"Запланируй встречу на завтра в 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 для кастомизации Меньше готовых решений "из коробки"
Возможность логирования и трансформации сообщений  


Спасибо за внимание.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

15250 руб.

25.08.2025    41203    81    22    

95

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36600 руб.

28.08.2025    6209    2    2    

6

Нейросети 1С 8.3 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Обработка подключения фотокамер Canon и Nikon к Управление торговлей 11.4 для потоковой загрузки фотографий в карточки товаров с автоматическим удалением фона

23180 руб.

24.06.2021    11611    5    7    

16

Нейросети 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Платные (руб)

Умный Excel" - ИИ-супердвигатель, который превращает часы работы в минуты! Технологии будущего уже здесь: загрузил Excel "магия ИИ" готовый результат

8540 руб.

02.07.2025    2806    2    0    

6

Нейросети Мастера заполнения 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ GigaChat от Сбера. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ.

5084 руб.

08.11.2023    6381    19    0    

29

Мастера заполнения Нейросети 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

Расширение для заполнения описания товара (номенклатуры) с помощью модели ИИ ChatGPT с ключевыми словами. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ. Прошло аудит на 1cfresh.com. Версия для автоматического заполнения

5084 руб.

13.03.2023    22579    52    50    

80

Нейросети Распознавание документов и образов Программист Бухгалтер Пользователь 1С 8.3 1С:Комплексная автоматизация 1.х 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Решение поставляется в 2 версиях: при наличии видеокарты расширение+GPU версия или расширение+СPU версия. Поддерживает 3 режима работы, локальное (на вашем ПК), ИИ-модель (облачная), гибридная локальная+ИИ. В локальном режиме распознавание бесплатно. В ИИ режиме в среднем 0.5 рубля за страницу. Неограниченное количество пользователей. Распознает сканы: УПД, счета-фактуры, товарные накладные. Проверяет цифры и помогает создавать документы в 1С. Отправляйте документы через Telegram бот

10 стартмани

20.02.2026    334    1    dasan92    0    

3

Нейросети Программист Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Абонемент ($m)

Автоматическая генерация и отправка персональных поздравлений с днём рождения сотрудникам прямо из 1С с помощью ИИ.

1 стартмани

20.02.2026    354    1    AndRoman.pro    8    

4
Для отправки сообщения требуется регистрация/авторизация