1C Syntax MCP Server: Когда твой код не превращается в тыкву
На сцену выходит MCP — штука, которая делает так, чтобы твой тимлид наконец-то понял, какой ты умный разработчик.
Акт первый.
В комнате темно, синицы в руках манят журавлей в небах. Светлый ум ищет выход или вход, но вокруг темно, и мертвые с косами...
ИИ:
MCP Server — это, если говорить простым языком, прослойка между твоим AI-ассистентом и базой знаний о синтаксисе 1С. Представьте себе, что вы взяли документацию по 1С, скормили её какому-то алгоритму, и теперь этот алгоритм может ответить на вопросы типа "а что делает эта функция?" или "какие параметры у СтрДлина?".
Я:
Продолжай...
ИИ:
Но подождите, скажете вы, ведь в интернете полно документации! Да, но есть нюанс.
Этот MCP-сервер работает с реальным синтаксисом 1С — тем, который находится внутри установленной платформы, в файлике shcntx_ru.hbk. Это не какая-то абстрактная документация с сайта 1С, которая может быть неактуальной или содержать ошибки копирования из старых версий. Нет, здесь ты получаешь именно то, что платформа 1С знает о сама о себе.
Я:
Ухожу, шаркая ботинками...
Акт второй.
Ставлю омнироутер с целью обрести бесплатный клауд. ИИ нудит над ухом. Свеча догорела, мальчик достругал палочку, Быков дочитал старые газеты в своем выдуманном конце двадцатого века...
ИИ:
2.1. Что умеет этот зверь?
А умеет он немало:
Поиск функций и методов — вводишь "СтрДлина", получаешь все совпадения. Причём работает как на русском, так и на английском (потому что да, есть люди, которые пишут StrLen, и их надо понять и простить).
Получение информации о функции — спрашиваешь "что такое СтрДлина?", получаешь подробный ответ: какие параметры принимает, что возвращает, и даже в каком контексте работает.
Автодополнение — начинаешь писать "Стр", а тебе подсказывают: "СтрДлина, СтрНайти, СтрЗаменить, СтрЧислоСтрок...". Полезно, когда забыл, как называется нужная функция.
Валидация синтаксиса — пишешь СтрДлина("текст"), а сервер тебе говорит: "Всё ок, вызов корректен". Или наоборот: "Бро, у тебя скобка лишняя" (да, я тоже так умею).
Я:
Чорд, ну не можешь ты без этих 1, 2, 3, 5, 100500... Прям глаз режет. И каким местом МСР скажет тебе про лишнюю скобку? Сходи проспись...
ИИ, не обращая на меня ни малейшего внимания, продолжает нудеть:
3. Как это работает?
Теперь самое интересное — как эту штуку запустить и заставить работать. Сразу предупреждаю: здесь придётся немного поработать руками. Никакой тебе магии "нажал кнопку — получи результат". Но, может, это и к лучшему — ценишь то, что получил.
Я смирившись с пунктами меню:
И нафига ты мне нужен-то, чтобы пальчиками и без магии. Давай, бро, сам начал - сам расхлебывай.
ИИ, заставляя меня зевать, выдает базу:
3.1. Установка
Шаг 1: Python
Да, вам понадобится Python. Не пугайтесь, это не так страшно, как кажется. Скачайте, установите, желательно версию 3.10 или выше. На всякий случай.
Шаг 2: Виртуальное окружение
Создаём виртуальное окружение, чтобы не засрать систему всякими зависимостями:
cd 1c-syntax-mcp python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
Я, офигевая:
"Засрать"? Серьезно?
Пипл, честно, я тут ни при чем.
ИИ:
Шаг 3: Зависимости
Устанавливаем библиотеку MCP:
pip install mcpШаг 4: 7-zip
О, а вот это важно! Серверу нужен 7-zip для распаковки файла документации. Без него — никуда.
Я:
Это когда-нить кончится?
Акт третий.
В концах туннелей забрезжил свет, полная Луна клонится к закату вместе с ракетой, в которой сломался унитаз. Я вообще не понимаю, как можно пиариться без сломанных унитазов. Вы понимаете? Вот и ИИ тоже не понимает. А то "все засрешь".
ИИ:
3.2. Настройка OpenCode
Теперь самое интересное — подключаем это всё к OpenCode. Открываем конфиг (%APPDATA%\opencode\opencode.jsonc на Windows или ~/.config/opencode/opencode.jsonc на Linux) и добавляем:
#WIN { "mcp": { "1c-syntax": { "type": "local", "command": ["C:\\Users\\<username>\\1c-syntax-mcp\\venv\\Scripts\\python.exe", "C:\\Users\\<username>\\1c-syntax-mcp\\server.py"], "enabled": true } } } #LIN { "mcp": { "1c-syntax": { "type": "local", "command": ["~/1c-syntax-mcp/venv/bin/python", "~/1c-syntax-mcp/server.py"], "enabled": true } } }
Я:
Ну вот, и у ИИ сломался унитаз. Конфиг опенкода лежит в папке юзера, а не аппдаты. Для линуха конфиг верный, для венды - кривой.
ИИ:
3.3. Первый запуск — магия автоматической инициализации
Вот здесь я должен сказать спасибо разработчику. При первом запуске сервер сам:
Находит установленную версию 1С (8.3.x или 8.5.x)
Извлекает файл shcntx_ru.hbk с документацией
Распаковывает его (это около 52 000 файлов, не пугайтесь)
Парсит HTMLки и строит JSON-индекс
Запускается с готовым индексом
Всё это занимает 1-2 минуты при первом запуске. При последующих — 1-2 секунды, потому что индекс уже есть.
Я:
А еще он сам находит 7z. Но это так - мелочи.
ИИ:
4. Использование
Теперь, когда всё настроено, можно использовать. Вот несколько примеров:
Поиск функций:
use 1c-syntax to search for СтрДлинаИнформация о функции:
use 1c-syntax to get info about СтрДлина
Я:
Ну ни один дурак так это юзать не будет. Хотя я в этом не уверен на 100%...
ИИ:
5. Навык 1С (1cskills)
Отдельное внимание заслуживает навык 1cskills — набор правил и рекомендаций для AI-ассистентов при работе с кодом на 1С. Это что-то вроде "правил хорошего тона" для AI.
Навык включает:
Обязательный алгоритм проверки синтаксиса через MCP
Контекст выполнения и директивы (&НаКлиенте, &НаСервере и т.д.)
Структуру областей для модулей объектов, менеджеров, форм
Структуру файлов проекта (XML-дамп)
БСП и типовые паттерны
Именование переменных, документирование кода
Язык запросов 1С
И даже регулярные выражения!
Я:
Как же любит он эти свои циферки - прям ваще...
И, что важно, сервер доступен на гите: 1c-syntax-mcp, лицуха MIT.
Если сможете воспользоваться - флаг вам в руки!
Занавес...
На сцену выходит сам автор, честно признается, что сделал это все халявный клауд, и что автор теперь прям вот эксерд по всем этим МСР.
***
КАК ОНО НА САМОМ ДЕЛЕ...
Если серьезно, то код стал сильно лучше. Но давайте сравним:
Вот пример без MCP:

Видим, что система полезла в интернеты и нашла там какую-то дичь.
// Проверка совпадения
Шаблон = Новый ШаблонРегулярногоВыражения("\d{2}\.\d{2}\.\d{4}");
Сообщить(Шаблон.Совпадает("15.01.2024")); // Истина
// Поиск всех совпадений
Шаблон = Новый ШаблонРегулярногоВыражения("\d+");
Результат = Шаблон.НайтиСовпадения("Цена: 100 руб, скидка 20 руб");
Для Каждого Совпадение Из Результат Цикл
Сообщить(Совпадение.Значение); // 100, 20
КонецЦикла;
// Замена
Шаблон = Новый ШаблонРегулярногоВыражения("\s+");
Результат = Шаблон.Заменить(" много пробелов ", " ");
Сообщить(Результат); // " много пробелов "
// С группами захвата
Шаблон = Новый ШаблонРегулярногоВыражения("(\d{4})-(\d{2})-(\d{2})");
Совпадение = Шаблон.НайтиСовпадение("2024-01-15");
Если Совпадение <> Неопределено Тогда
Сообщить(Совпадение.Группа(1).Значение); // 2024
Сообщить(Совпадение.Группа(2).Значение); // 01
КонецЕсли;
///
// Email
RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.Pattern = "[\w.-]+@[\w.-]+\.\w+";
RegExp.Global = Истина;
RegExp.IgnoreCase = Истина;
Matches = RegExp.Execute("Пишите на test@example.com или admin@mail.ru");
Для Сч = 0 По Matches.Count - 1 Цикл
Сообщить(Matches.Item(Сч).Value);
КонецЦикла;
// Замена
RegExp.Pattern = "\s+";
Сообщить(RegExp.Replace(" много пробелов ", " "));
///
// Телефон +7 (999) 123-45-67
Шаблон = Новый ШаблонРегулярногоВыражения("\+7\s?\(?\d{3}\)?\s?\d{3}-?\d{2}-?\d{2}");
// ИНН (10 или 12 цифр)
Шаблон = Новый ШаблонРегулярногоВыражения("^\d{10}$|^\d{12}$");
// СНИЛС
Шаблон = Новый ШаблонРегулярногоВыражения("\d{3}-\d{3}-\d{3}\s?\d{2}");
// Извлечь числа из строки
Шаблон = Новый ШаблонРегулярногоВыражения("-?\d+\.?\d*");
// Проверка URL
Шаблон = Новый ШаблонРегулярногоВыражения("https?://[\w\-\./?=&%]+");
// Разбить по разделителю (запятая/точка с запятой)
Шаблон = Новый ШаблонРегулярногоВыражения("[,;]\s*");
Массив = Шаблон.Разделить("яблоко, груша; банан, апельсин");
// Многострочный режим
Шаблон = Новый ШаблонРегулярногоВыражения("^Строка\d+$", РежимРегулярногоВыражения.Многострочный);
С МСР, но без скилла:

// Создание объекта регулярного выражения
Regex = Новый COMОбъект("System.Text.RegularExpressions.Regex");
// Пример 1: Проверка соответствия строки шаблону (IsMatch)
Строка = "Привет, мир!";
Шаблон = "мир";
Если Regex.IsMatch(Строка, Шаблон) Тогда
Сообщить("Совпадение найдено");
КонецЕсли;
// Пример 2: Извлечение всех совпадений (Matches)
Строка = "ivanov@example.com, petrov@test.ru, sidorov@mail.com";
Шаблон = "[a-z]+@[a-z]+\.[a-z]+";
Совпадения = Regex.Matches(Строка, Шаблон);
Для Каждого Совпадение Из Совпадения Цикл
Сообщить(Совпадение.Value); // ivanov@example.com, petrov@test.ru, sidorov@mail.com
КонецЦикла;
// Пример 3: Замена по шаблону (Replace)
Строка = "Цена: 100 руб, Скидка: 50 руб";
Шаблон = "\d+";
Результат = Regex.Replace(Строка, Шаблон, "***");
// Результат: "Цена: *** руб, Скидка: *** руб"
// Пример 4: Разделение строки по шаблону (Split)
Строка = "яблоко, груша; апельсин|мандарин";
Шаблон = "[,;|]";
Массив = Regex.Split(Строка, Шаблон);
Для Каждого Элемент Из Массив Цикл
Сообщить(СтрЗаменить(Элемент, " ", ""));
КонецЦикла;
// Пример 5: Проверка email
Функция ПроверитьEmail(Email)
Шаблон = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$";
Возврат Regex.IsMatch(Email, Шаблон);
КонецФункции
// Пример 6: Проверка телефона
Функция ПроверитьТелефон(Телефон)
Шаблон = "^\+7\s?\(?[0-9]{3}\)?\s?[0-9]{3}-?[0-9]{2}-?[0-9]{2}$";
Возврат Regex.IsMatch(Телефон, Шаблон);
КонецФункции
// Пример 7: Извлечение чисел из строки
Функция ИзвлечьЧисла(Строка)
Шаблон = "\d+";
Совпадения = Regex.Matches(Строка, Шаблон);
МассивЧисел = Новый Массив;
Для Каждого Совпадение Из Совпадения Цикл
МассивЧисел.Добавить(Число(Совпадение.Value));
КонецЦикла;
Возврат МассивЧисел;
КонецФункции
// Пример 8: Извлечение дат в формате ДД.ММ.ГГГГ
Функция ИзвлечьДаты(Строка)
Шаблон = "\d{2}\.\d{2}\.\d{4}";
Возврат Regex.Matches(Строка, Шаблон);
КонецФункции
// Пример 9: Удаление HTML-тегов
Функция УдалитьHTMLТеги(Строка)
Шаблон = "<[^>]+>";
Возврат Regex.Replace(Строка, Шаблон, "");
КонецФункции
Суть в том, что он просто не нашел функции, хотя честно попытался искать по "Регулярное", "RegEx" и даже "Стр".
С МСР и скиллом:

// Поиск всех email в тексте
Текст = "Пишите на test@mail.ru или support@example.com";
Результаты = СтрНайтиВсеПоРегулярномуВыражению(Текст, "[\w.]+@[\w.]+\.\w+");
Для Каждого Результат Из Результаты Цикл
Сообщить(Результат.Значение);
КонецЦикла;
// test@mail.ru
// support@example.com
///
// Удаление всех цифр из строки
Текст = "Товар123 Артикул456";
Результат = СтрЗаменитьПоРегулярномуВыражению(Текст, "\d+", "");
// "Товар Артикул"
///
// Парсинг даты ДД.ММ.ГГГГ
Текст = "Дата: 25.12.2024 и 01.01.2025";
Результаты = СтрНайтиВсеПоРегулярномуВыражению(Текст, "(\d{2})\.(\d{2})\.(\d{4})");
Для Каждого Результат Из Результаты Цикл
День = Результат.Группы[0].Значение;
Месяц = Результат.Группы[1].Значение;
Год = Результат.Группы[2].Значение;
Сообщить(День + "." + Месяц + "." + Год);
КонецЦикла;
// 25.12.2024
// 01.01.2025
///
// Извлечение телефона из текста
Текст = "Звоните: +7(999)123-45-67";
Результаты = СтрНайтиВсеПоРегулярномуВыражению(Текст, "\+(\d)\((\d{3})\)(\d{3})-(\d{2})-(\d{2})");
Если Результаты.Количество() > 0 Тогда
Результат = Результаты[0];
КодСтраны = Результат.Группы[0].Значение; // 7
КодОператора = Результат.Группы[1].Значение; // 999
Номер = Результат.Группы[2].Значение + Результат.Группы[3].Значение + Результат.Группы[4].Значение;
КонецЕсли;
///
// С игнорированием регистра
Текст = "Hello WORLD hello";
Результаты = СтрНайтиВсеПоРегулярномуВыражению(Текст, "hello", Истина);
// Найдёт "Hello" и "hello"
// Многострочный поиск
Текст = "Первая строка
|Вторая строка";
Результаты = СтрНайтиВсеПоРегулярномуВыражению(Текст, "^Вторая", Ложь, Истина);
// Найдёт "Вторая" в начале второй строки
///
// Проверка формата ИНН (10 или 12 цифр)
Функция ПроверитьИНН(ИНН)
Результаты = СтрНайтиВсеПоРегулярномуВыражению(ИНН, "^\d{10}$|^\d{12}$");
Возврат Результаты.Количество() > 0;
КонецФункции
// Извлечение чисел из строки
Функция ПолучитьЧислаИзСтроки(Текст)
Результаты = СтрНайтиВсеПоРегулярномуВыражению(Текст, "\d+");
Числа = Новый Массив;
Для Каждого Результат Из Результаты Цикл
Числа.Добавить(Число(Результат.Значение));
КонецЦикла;
Возврат Числа;
КонецФункции
// Удаление лишних пробелов
Функция НормализоватьПробелы(Текст)
Возврат СтрЗаменитьПоРегулярномуВыражению(Текст, "\s+", " ");
КонецФункции
// Проверка email
Функция ЭтоEmail(Email)
Результаты = СтрНайтиВсеПоРегулярномуВыражению(Email, "^[\w.+-]+@[\w-]+\.[\w.]+$");
Возврат Результаты.Количество() > 0;
КонецФункции
А вот если ты написал скилл так, чтобы ИИ шел в МСР и внимательнейшим образом относился к синтаксису, проверяя каждый чих, можешь получить рабочий код даже на бесплатной модели.
В заключении...
Мир меняется. Он меняется уже давно, но вайбкодинг сейчас вошел в некий раж. Разобраться с этим архиважно и архинужно. Самое важное - это понять, что для хорошего кода нужен хороший промпт, а он складывается из хорошо описанного скилла и имеющегося в наличии МСР и понятного запроса, который не нужно додумывать. Все проблемы ИИ в том, что пользователь заставляет его додумывать, а не руководствоваться четкой и понятной программой действий. Так что: хороший скилл -> МСР -> хороший запрос = правильный код.
Я попросил ИИ переписать это все на серверные рельсы, будем в конторе раскатывать.
ЗЫ: Я честно пытался написать эту статью с помощью ИИ, но он это делает так себе.
ЗЫЗЫ: Выше ссылка на ГИТ. Все, что вы там увидите, сделано разными моделями в опенкоде. Включая создание репы и MR туда.
Новый светлый мир. И с этим придется разобраться.
Каналы, лайки, звездочки в гитах, чтотамеще - приветствуется!
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Нейросети Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Платные (руб)
Подключите ИИ к 1С и решайте рабочие задачи обычными словами. От работы с данными до доработки конфигурации через расширения, всё в привычном чате с ИИ-помощником. Теперь с поддержкой DeepSeek Harness, Kimi Code и Kimi Work, доступных в России без VPN.
15990 руб.
30.07.2026 19311 40 4
SALE! %
Банковские операции Обмен с интернет-банком Мастера заполнения Нейросети Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)
Корректируйте банковские документы быстро и легко! Создайте правило обработки — и оно автоматически применится при загрузке выписки (отбор по любому реквизиту или регулярному выражению). Решение заполняет расшифровку платежа, комиссию эквайринга, подбирает ведомости на выплату зарплаты, помечает дубли из банка на удаление и многое другое. Доплачивать за алгоритмы не нужно — они включены в решение. Обработка работает при загрузке из файлов клиент-банка и через DirectBank. Новое — искусственный интеллект: модель приводит нестандартные назначения платежа к виду, понятному алгоритмам, а ИИ-ассистент прямо в 1С консультирует по решению и разбирает код правил и алгоритмов. Поддерживаются локальные и облачные OpenAI-совместимые модели — данные могут не покидать ваш контур.
17500 руб.
20.12.2024 21426 104 32
Инструментарий разработчика Нейросети Платные (руб)
Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.
15250 руб.
25.08.2025 76701 147 41
SALE! 30%
Нейросети 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Платные (руб)
Расширение добавляет в 1С чат с ИИ-агентом. Пользователь пишет вопрос обычными словами: «какие УПД не подписаны?», «какой НДС к уплате за квартал?», «что висит на согласовании дольше недели?», а агент сам строит запросы к базе с правами этого пользователя и отвечает цифрами, таблицей, диаграммой или файлом Excel. Плитки «Аналитик», «Бухгалтер» и «Руководитель» дают сводку по базе одной кнопкой. Агент разбирает ошибки по скриншоту, сверяет прайсы поставщиков и проверяет коды маркировки. С версии 1.0.21 спрашивать можно и с телефона: QR-код в окне агента, без установки приложения. Работает в УТ 11, КА 2, ERP 2, БП 3.0, УНФ 3.0, Документооборот 3.0 и Альфа-Авто 6, ставится одним расширением.
18300 руб.
05.10.2026 3347 10 9
Инструментарий разработчика Нейросети Системный администратор Разработчик Руководитель проекта 1С 8.3 Платные (руб)
Обработка заменяет ФИО, организации, ИНН, ИИН, БИН, ОГРН, КПП, БИК, счета и IBAN, паспорта, СНИЛС, адреса, телефоны, почту и суммы на правдоподобные выдуманные перед отправкой данных в ChatGPT, Claude или YandexGPT, а потом расшифровывает ответ модели обратно, подставляя настоящие имена и настоящие числа. Возвращаются и те итоги, которые модель посчитала сама: суммы масштабируются одним коэффициентом, поэтому пропорции и доли переживают обезличивание. Словарь замен хранится в самой базе и подхватывается автоматически, даже если обработку закрывали. Реквизиты России и Казахстана, любая конфигурация от 8.3.24, без единой зависимости.
14640 руб.
07.08.2026 2134 3 0
Распознавание документов и образов Нейросети 1С:Предприятие 8 1С 8.3 1С 8.5 1C:Бухгалтерия 1С:Зарплата и Управление Персоналом 3.x Беларусь Россия Казахстан Армения Платные (руб)
ИИ-сканер документов с REST API для интеграции с 1С и корпоративными системами. Извлекайте данные из счетов, паспортов, дипломов, патентов и трудовых книжек за секунды. Точность человека - скорость машины. Приложение поддерживает восемь типов документов, четырех провайдеров ИИ (имеется возможность использования локальных ИИ), локальный REST API и экспорт в JSON. Важно! модель должна поддерживать функцию Vision (распознавание файлов и картинок). Запускайте используя локальные ИИ, без подписок и ограничений
6100 руб.
24.08.2026 1398 1 0
Нейросети Разработчик 1С 8.3 Бесплатно (free)
Как подключить ИИ-агента к разработке 1С на примере обработки «Почему не закрывается месяц»: одна папка, копия демобазы и несколько скриптов. Семь шагов: агент, выгрузка в файлы, правила, проверка кода, сборка, тесты YAxUnit и сценарии форм. На каждый: зачем он нужен, команда и где легко споткнуться. В конце: что выросло поверх, три ошибки с разных типовых и сколько это стоило.
05.11.2026 5888 Iliaelagin 6
Нейросети Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бесплатно (free)
ИИ агент для бухгалтерии - открытый ИИ-консультант внутри 1С. Он отвечает на вопросы по данным базы, анализирует задолженность и обороты, помогает разбирать ошибки проведения и готовить документы. Пользователь видит шаги агента: какие инструменты вызваны и какие результаты получены. Решение состоит из расширения 1С и сервера на Python, поддерживает локальные модели и облачные API. Инструменты выполняются с правами текущего пользователя. Текущая версия - прототип для «Бухгалтерии предприятия 3.0». Исходный код распространяется под лицензией MIT.
31.10.2026 3378 166 nomadAI 8
С другой стороны, если попросить ИИ допилить это, то у него проблем не возникнет - это ж петон.
В том чате, в котором это настраивали можно приложить скилл креатор и попросить LLM сделать скилл по установке данного MCP. А мой скилл можно приложить в качестве примера. Тогда разработчикам будет легче всё устанавливать и настраивать.
# Промпт для создания скилла переноса настроек MCPHost в OpenCode
## Context (контекст)
Ты — опытный AI-ассистент, специализирующийся на создании скиллов (навыков) для терминальных AI-агентов. Твоя задача — разработать скилл, который формализует процесс переноса настроек из MCPHost в OpenCode и тестирования работоспособности MCP-серверов. ОЧЕНЬ ВАЖНО: Возьми за основу процесс настройкиЮ, который ты только что проделал.
**Исходные данные:**
- Есть опыт ручной настройки MCPHost, который уже протестирован и работает
- Есть файл `skill.txt` — пример полезного опыта по созданию подобных скиллов
- Есть файл `SKILL.md` — описание скилл-креатора Anthropic (на английском языке)
- Цель: автоматизировать процесс настройки OpenCode, используя накопленный опыт
## Limitations (ограничения)
1. **Итеративная выдача материала** — не выгружай всю информацию сразу. Пользователь теряет фокус при перегрузке. Выдавай команды порциями, дожидаясь подтверждения выполнения.
2. **Обратная совместимость** — скилл не должен разрушать существующие работающие настройки MCPHost, а дополнять их.
3. **Проверяемость** — каждый шаг должен иметь чёткий критерий успеха (например, «после выполнения команды X ты должен увидеть Y»).
4. **Безопасность** — не используй команды, которые могут повредить существующие конфигурации. Все изменения — через резервное копирование.
5. **Доступность инструментов** — убедись, что Docker Desktop запущен перед началом работы с контейнерами MCP-серверов.
## Examples (примеры)
**Хороший шаг инструкции:**
> **Шаг 1. Проверка Docker**
>
> Выполни команду:
> ```
> docker ps
> ```
> **Ожидаемый результат:** список запущенных контейнеров (mcp-metadata, qdrant, bsl-checker и др.)
>
> **Если контейнеров нет:** выполни `docker-compose up -d` в папке `I:\mcp_v1.6.1`
>
> Готово? Напиши «да» для продолжения.
**Плохой шаг инструкции (перегрузка):**
> Сначала проверь Docker, потом установи OpenCode, потом сконфигурируй провайдеров, потом подключи MCP-серверы, потом настрой системный промпт, потом протестируй...
## Audience (аудитория)
**Первичная аудитория:** 1С-разработчик, который:
- Уже настроил MCPHost и MCP-серверы (метаданные, синтаксис, модули)
- Имеет базовый опыт работы с терминалом
- Хочет перейти на OpenCode для более гибкой работы
**Вторичная аудитория:** разработчик, который будет поддерживать и развивать скилл
## Requirements (требования к скиллу)
### Функциональные требования
1. **Перенос настроек провайдеров моделей** — скилл должен перенести конфигурацию моделей из MCPHost (ollama:glm-5:cloud, kimi-k2.5:cloud и др.) в формат OpenCode.
2. **Перенос MCP-серверов** — скилл должен подключить к OpenCode те же MCP-серверы, которые уже работают в MCPHost:
- metadata-1c (порт 9001)
- syntax-help-1c (порт 9002)
- syntax-check-1c (порт 9004)
- 1c-modules (локальный, с MODULES_DIR)
3. **Системный промпт** — скилл должен перенести антициклический системный промпт из MCPHost в конфигурацию OpenCode.
4. **Тестирование** — скилл должен включать проверочные запросы для验证 работоспособности каждого MCP-сервера.
5. **Докер-контейнеры** — скилл должен напомнить пользователю запустить Docker Desktop и проверить статус контейнеров перед началом настройки.
### Нефункциональные требования
1. **Итеративность** — скилл должен разбивать процесс на логические шаги (3-5 команд на шаг) с подтверждением от пользователя.
2. **Воспроизводимость** — скилл должен работать на любой Windows-машине с уже настроенными MCP-серверами.
3. **Диагностичность** — каждый шаг должен иметь чёткий критерий «успех/ошибка» и инструкцию по устранению типовых проблем.
4. **Идемпотентность** — повторный запуск скилла не должен ломать уже настроенную систему.
## Constraints (запреты и ограничения)
1. **НЕ удаляй и не перезаписывай** существующий файл `.mcphost.yml` без создания резервной копии.
2. **НЕ требуй** от пользователя вручную вводить длинные JSON-конфигурации. Используй команды создания файлов.
3. **НЕ выдавай** больше 5 команд за один шаг. Если команд больше — разбивай на подшаги.
4. **НЕ предполагай**, что у пользователя установлен Git или Node.js. Проверяй наличие и давай инструкции по установке, если требуется.
5. **НЕ продолжай** выполнение, если предыдущий шаг завершился ошибкой. Запроси подтверждение или исправление.
---
## Формат скилла
Создай `SKILL.md` в формате Agent Skills, где:
- **name:** `opencode-mcp-migration`
- **description:** «Перенос настроек MCPHost в OpenCode. Используй, когда пользователь хочет перейти с MCPHost на OpenCode, сохранив все MCP-серверы и настройки моделей. Требует Docker Desktop и уже настроенные MCP-серверы.»
- **body:** пошаговая инструкция с разбивкой на этапы:
1. Проверка инфраструктуры (Docker, контейнеры)
2. Установка / обновление OpenCode
3. Создание конфигурации `opencode.json`
4. Настройка провайдеров моделей
5. Настройка MCP-серверов
6. Настройка системного промпта
7. Тестирование
8. Сохранение резервной копии старой конфигурации
Каждый этап — с командами, ожидаемыми результатами и признаками успеха/ошибки.
ПоказатьОн чуть не потер мои файлы, хорошо что спросил сначала. Будьте осторожны.
Готово! Создал скилл: I:\mcphost\skills\SKILL.md
Структура:
Проверка инфраструктуры (Docker, контейнеры)
Проверка конфигурации MCPHost
Создание opencode.json
Проверка подключения MCP
Тестирование серверов
Типичные проблемы и решения
Критерии остановки (СТОП-сигналы)
Быстрый скрипт диагностики
Хочешь добавить что-то или изменить формат?
Не трогай мои файлы! Сделай отдельный скилл чтобы я его скачал из диалога или сохрани в ту же папку с именем "ok.md" Ты все отлично придумал.
Готово! Скилл сохранён: I:\mcphost\ok.md
Можешь скачать или скопировать оттуда.
Есть возможность не подключать mcp глобально - достаточно подключить на уровне нужного проекта. Подозреваю, что opencode примерно так же настраивается. Ставим проект из гитхаба (в примере ниже в ~/projects/1c-syntax-mcp/) и в папке с рабочим проектом:
$ gemini mcp add 1c-syntax ~/projects/1c-syntax-mcp/venv/bin/python ~/projects/1c-syntax-mcp/server.py
$ gemini skills link ~/projects/1c-syntax-mcp/skills/
$ gemini
бесплатный MCP по синтаксису , hbk файл там можно подгружать через веб интерфейс. Удобно когда вам скажем нужно писать на старой платформе (8.2 например)
И с этим невозможно не согласиться !
"id": 20162,
"v": [
"objects_catalog125_catalog161_object181_methods_Clear350.html",
"РегистрСведенийНаборЗаписей.<Имя регистра сведений>.Очистить (InformationRegisterRecordSet.<Information register name>.Clear)",
"objects\\catalog125\\catalog161\\object181\\methods\\Clear3
"D:\\Вадим\\Проекты 1с\\Разное\\shcntx_ru\\objects\\catalog125\\catalog161\\obje
false
]
},
{
"id": 20163,
"v": [
"objects_catalog125_catalog161_object181_methods_Get1358.html",
"РегистрСведенийНаборЗаписей.<Имя регистра сведений>.Получить (InformationRegisterRecordSet.<Information register name>.Get)",
"objects\\catalog125\\catalog161\\object181\\methods\\Get135
"D:\\Вадим\\Проекты 1с\\Разное\\shcntx_ru\\objects\\catalog125\\catalog161\\obje
false
Файл кстати получился сравнительно небольшим 12 Мб.
Ну а дальше попросил ИИ написать скилл для работы с этим файлом. И это работает.
Кстати, это какая модель?
Вот щас люди радостно копаются в "петоне", докеры-шмокеры, сборки-тулзы, куча приблуд самописных на ноде и стдио, и прочая. Но судя по взрывному росту этой области, следом придут пакетные решения, простейшие в своей установке и настройке, это классика - от построчных консольных к ИДЕшным с кнопочками, далее к мастерам-визардам итд.
Так и здесь.
Всевозможные сцепки mcp с 1С упихают под несколько решений, которые и станут наиболее расхожими и популярными. Часть, может, даже и бесплатной окажется)
И вот тогда классические "одинэснеги", которые уже при мысли ручками выписывать некие конфиг-требования да ini-ограничения паникуют, потянутся массово. Ну, правда, эти пакетные решения будут иметь известный минус - невозможность или ограниченность настройки. Оставят нам, сирым, только температуру править да, может, топ-К и топ-Р... Зато будет "коробочное решение"... А может, и того не понадобится, кодинг не стихоплётство. Зашьют набор напрямик от вендора, и не лазь шаловливыми руками.
И им уже не полезет "под капот" никто, кроме энтузиастов.
И требоваться будет владение, а не знание внутреннего устройства, так же, как сейчас от большинства внедренцев не требуют знания глубин платформы 1С.
Поэтому "архиважно" тут такое... не то, чтоб эти знания оказались бесполезны или быстро устарели... Просто щас неизбежно нарисуется такая надстройка, и иметь дело с ней будет в разы быстрее, чем свои mcp колхозить.
Вдобавок, понаделают отечественных кошерных интеграторов, натянутых на кошерные же LLM, дадут нам общие API в зубы, и всего делов.
В принципе, сделать модели скилл, в котором научить ее тестить изменения на сгенерированной конфе - ноу проблем. Задача обычно оперирует не таким и большим пулом связей, особенно если архитектура приличная. В итоге собрать конфу для теста из тройки-другой объектов и загрузить ее в локальную базу, на которой запустить нужный код - вообще времени занимает нисколько на приличной машине (у меня тест гилева в файловой 227, а у меня не такой уж и дорогой комп - просто настроен хорошо и комплектуха подобрана для максимального tps и ОСь не попсовая). В итоге вот у тебя конфа, вот задача, вот скилл для сборки тестовой конфы, вот, как это любят ИИ делать, запись всех этих Попытка Исключение в файл с дальнейшим разбором причин падений и пересборкой конфы с исправлениями. И, опа, у тебя не хуже питонов разработка, но на 1С.
Ну и, конечно, если БЯМ стоит локально типа Олламы, вполне себе будет простая конфигурация.
Тут хороший пример - сборка мобильных приложений. Сперва выдали инструкции, как апк мастерить да публиковать, потом конфу под это сделали специальную, а потом и в платформу вкрячили. Здесь, подозреваю, будет нечто схожее.
Через пару троек лет наверное локально будут не сильно хуже, чем сейчас в топовых облачных. И ИТ-шнеги будут не нужны. Я вот сегодня бесплатной модели кинул тикет жиры, она открыла конфлюху, прочитала ТЗ и запилила код. 90к токенов скушала, правда. Но это бесплатная модель.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 2657968
Создание 05.04.26 15:00
Обновление 05.04.26 15:00
Просмотры 7411
Загрузки 0
Рейтинг
26
Комментарии 58
Код открыт Да
Рубрики Нейросети
Кому Разработчик
Тип файла Нет файла
Конфигурация Универсальные
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)