Готовый MCP-сервер для 1С: ставим NS_MCP на всю команду

Всем привет, с вами Низамов Илья. Я закончил Harness для 1С-разработчиков — обвязку, с которой Claude Code дорабатывает конфигурацию почти без моего участия. Первая часть серии про его фундамент: готовый MCP-сервер для 1С NS_MCP. Через него кодовый агент получает справку платформы, метаданные вашей конфигурации и граф связей между объектами. Установка — один мастер, 10–30 минут и никаких загрузок из интернета. Сервер можно поднять у себя или на отдельной машине и раздать всей команде: один экземпляр держит сколько угодно конфигураций, разработчики подключаются к нему по HTTPS.

Ниже — что входит в комплект, что подготовить до установки, как пройти мастер, подключить разработчиков и проверить в Debug-панели, что агент действительно пользуется инструментами.

Готовый MCP-сервер для 1С: установка на всю команду
Видео: Готовый MCP-сервер для 1С: установка на всю команду

Зачем Claude Code MCP-сервер, если он и так читает выгрузку?

Claude Code хорошо работает с файлами. Отдайте ему выгрузку конфигурации в XML, и он найдёт нужный модуль. Но две вещи у него получаются плохо.

Платформа. Встроенный язык 1С модель знает хуже Python, и главная болезнь — выдуманные методы. Агент уверенно пишет вызов, которого в платформе нет, или путает параметры конструктора. Лечится это не моделью покрупнее, а доступом к справке, той самой, что открывается по Ctrl+F1. Подробно о том, почему нейросети спотыкаются именно на 1С, я писал в статье про вайбкодинг в 1С.

Конфигурация. Выгрузка типовой конфигурации — это десятки тысяч XML-файлов, многословных до неприличия. Агент разбирает их субагентами и тратит на это токены. В проекте обмена 1С с сайтом я забыл подключить поиск по метаданным, и на задачу ушло 600 тысяч токенов: значительная часть — на чтение XML. Карточка объекта из индекса — это несколько сотен строк вместо обхода десятка файлов.

MCP-сервер решает обе проблемы: агент не читает сырьё, а задаёт вопрос инструменту и получает сжатый ответ. Как Claude Code вообще работает с конфигурацией и где без инструментов не обойтись, разобрано в статье Claude Code для 1С.

Что входит в NS_MCP

NS_MCP — это не один сервер, а комплект сервисов за одним nginx. Наружу торчит только он, все обращения идут по HTTPS с токеном.

Маршрут Сервис Что даёт агенту
/dev/mcp DevMCP справка платформы: поиск по имени, поиск по смыслу, карточка метода или типа, статьи по языку запросов и правилам кода
/config/mcp ConfigMCP метаданные конфигурации и расширений: карточка объекта, граф влияния, сборка контекста под задачу
/bsl/api/analyze BSL LS линтер BSL Language Server по HTTP: агенту не нужны ни Java, ни Docker на своей машине
/debug/ DebugMCP веб-стенд: плейграунд с LLM, ручной вызов инструментов, журнал вызовов

Внутри работают Qdrant (векторный поиск), Neo4j (граф зависимостей объектов), сервис эмбеддингов Giga-Embeddings 3B и реранкер. Две последние модели общие для справки и для конфигурации и работают на видеокарте. Как эмбеддинги и реранкинг помогают находить нужное, я разбирал в статьях про семантический поиск в 1С и Qdrant для RAG.

Справочный сервер начинался с механизма загрузки справки из одного открытого проекта на GitHub. Поиск я переписал полностью: лексический, смысловой, реранкинг второй стадии. Отдельно индексируются статьи по встроенному языку, языку запросов и правилам написания кода — около 190 штук.

Что подготовить до установки?

Комплект приходит одним архивом: образы Docker, веса моделей и сам стек. Из интернета при установке ничего не скачивается — распаковали, запустили, дальше мастер всё делает сам. Это удобно для закрытых контуров, где у сервера разработки нет выхода наружу.

Что должно быть на машине заранее:

  • Docker Desktop с WSL2 (на Linux — Docker и NVIDIA Container Toolkit). Git отдельно ставить не нужно: в мастер для Windows встроен PortableGit.
  • Видеокарта NVIDIA, рекомендуется от 12 GB VRAM. На ней работают эмбеддинги и реранкер. Без видеокарты NS_MCP встанет, но семантический поиск будет недоступен. Остальное — поиск по имени, карточки, граф — работает.
  • Около 45 GB на диске.
  • Свободные порты или готовность задать свои. Если 443 и 80 уже заняты, например Apache с публикацией 1С, мастер возьмёт свободные.

Выберите свой вариант в чек-листе: он соберёт план установки под вашу ситуацию.

Установка: шаги мастера

На Windows кладёте NS_MCP-Setup.exe в одну папку с архивом и запускаете. На Linux то же делает одна команда:

tar -xf ns-mcp-<версия>.tar && cd ns-mcp-<версия>
./install.sh

Дальше мастер идёт по страницам.

Новый экземпляр или обновление. Если на машине уже есть установка, мастер найдёт её и предложит обновить. Можно поставить рядом второй экземпляр: имя подбирается само (NS_MCP занято — будет NS_MCP2), порты соседа он тоже не возьмёт, даже если тот остановлен. Я в ролике ставлю второй экземпляр на диск E рядом с рабочим.

Адрес и порты. Для своего компьютера подойдёт локальный адрес. Если ставите на сервер для команды, впишите его IP или домен: на это имя мастер выпустит сертификат, и клиенты будут ходить по HTTPS из любой точки сети. Порты я задал в диапазоне 4000, чтобы не пересекаться с другими программами.

Справка платформы. Мастер покажет найденные версии платформы, по умолчанию возьмёт последнюю. Можно указать и просто каталог с файлами справки. Он скопирует их к себе и построит индекс: справка 8.3.27 индексируется около 6 минут, получается примерно 19 тысяч записей.

LLM для Debug-панели. Необязательный шаг. DevMCP и ConfigMCP языковая модель не нужна — она нужна только плейграунду, чтобы прогонять диалоги с подключёнными MCP. Подойдёт любой OpenAI-совместимый адрес: локальная модель, ChatGPT по ключу, Gemini, GLM. Мастер проверит адрес и покажет список моделей. Пропустите — добавите модель позже в интерфейсе.

Журнал вызовов. Галочка «записывать вызовы инструментов MCP для оценки». По умолчанию выключена, я её включаю — зачем, расскажу ниже.

Сертификат. Сервер работает на собственном удостоверяющем центре. Мастер предложит сделать его доверенным, Windows покажет окно подтверждения — соглашаемся. Заодно ставятся скиллы configmcp и bsl-review для Claude Code.

После этого начинается долгая часть: загрузка образов, секреты, запуск контейнеров, индексация, проверка. Можно идти за кофе. В конце мастер покажет адрес, токен администратора и пароль Debug-панели. Сохраните их. Если забыли, копия лежит в secrets/admin.txt в каталоге установки.

Как подключить к серверу всю команду?

Под каждого разработчика администратор выпускает приглашение:

./nsctl invite ivanov --project   # токен и одна команда подключения
./nsctl clients                   # кто подключён
./nsctl revoke ivanov             # отозвать доступ

Разработчик выполняет полученный однострочник из корня своего проекта, нужен только Python 3.10+. Скрипт скачивает сертификат центра и сверяет его отпечаток с приглашением. Затем проверяет токен на обоих серверах, прописывает переменные окружения и ставит скиллы, а с флагом --project добавляет запись в .mcp.json проекта. Передавайте приглашение лично: в нём токен.

Если хочется вручную, .mcp.json в корне проекта 1С выглядит так:

{
  "mcpServers": {
    "devmcp": {
      "type": "http",
      "url": "https://mcp.local/dev/mcp",
      "headers": { "Authorization": "Bearer ${NS_MCP_TOKEN}" }
    },
    "configmcp": {
      "type": "http",
      "url": "https://mcp.local/config/p/ut115/mcp",
      "headers": { "Authorization": "Bearer ${NS_MCP_TOKEN}" }
    }
  }
}

Или одной командой: claude mcp add --transport http devmcp https://mcp.local/dev/mcp --header "Authorization: Bearer $NS_MCP_TOKEN". Cursor и любой другой MCP-клиент подключаются так же: транспорт streamable HTTP, тот же адрес и заголовок.

Конфигурации в ConfigMCP разработчики загружают сами. Скилл configmcp выгружает базу, отправляет выгрузку на сервер и по желанию ставит хуки, которые обновляют индекс после правок. У каждой конфигурации свой проект и свой адрес, поэтому на одном сервере уживаются УТ, ERP и клиентские базы. Во второй части серии Harness сделает это автоматически при создании проекта.

Debug-панель и плейграунд

Прежде чем подключать агента, удобно убедиться, что инструменты отвечают как надо. Для этого есть Debug-панель по адресу /debug/: логин admin и пароль из конца установки.

В ней видны подключённые MCP-серверы, их инструменты, проиндексированные конфигурации и журнал вызовов. Главное — плейграунд. Выбираете проиндексированную базу (у меня «Управление торговлей 11.5») и системный промпт, универсальный или заточенный под конкретный MCP. Текст промпта можно поправить и потом перенести в своего агента. Отправляете запрос, и модель с подключёнными MCP разыгрывает тот диалог, который будет у кодового агента в реальной разработке.

Первый шаблон в ролике — задача на справку: «скачать файл по HTTPS с авторизацией по токену в заголовке и сохранить во временный каталог». Модель не бросается писать код. Сначала семантическим поиском находит подходящие методы, потом по каждому отдельно запрашивает полную карточку через info, и только собрав все сигнатуры, пишет код:

Соединение = Новый HTTPСоединение("example.com", 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/files/report.pdf");
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
ИмяФайла = ПолучитьИмяВременногоФайла("pdf");
Ответ = Соединение.Получить(Запрос, ИмяФайла);

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

Модель в плейграунде при этом слабая: MoE с 3 млрд активных параметров в 4-битном NVFP4, почти Q4. Как такие модели запускать у себя, я разбирал в статье про Qwen 3.6 в NVFP4. С подключёнными MCP даже она пишет вполне грамотный код. В большом проекте серии работать будет Opus, но и ему MCP нужен.

Что агент получает от MCP: справка, карточка объекта, граф

У NS_MCP три типа ответов, которые снимают с агента основную рутину.

Справка платформы (search, searchSemantic, info, searchDocs). Поиск по имени находит СтрНайти по запросу «СтрНайти». Поиск по смыслу находит её же по запросу «найти подстроку в строке», когда агент не знает точного имени. info отдаёт полную карточку метода или типа: параметры, их типы, возвращаемое значение.

Карточка объекта конфигурации (configCard). Запрос «покажи карточку документа Реализация товаров и услуг» возвращает все реквизиты шапки с типами, табличные части с их реквизитами, методы модулей и перехваты из расширений с пометкой слоя. Имя понимается и по-русски, и по-английски, и синонимом. Это сильнее всего помогает, когда агент пишет запросы: он не гадает, как называется реквизит и какого он типа.

Граф влияния (configImpact). «Какие объекты зависят от справочника Склады», глубина 1. Ответ разложен по уровням, и у каждого объекта указана причина связи: через реквизит табличной части, измерение регистра, подчинение владельцу. В ролике это виды номенклатуры, кассы, ключи аналитики, складские документы. Перед правкой общего справочника агент видит, что он может задеть.

Есть и четвёртый инструмент, configContext: по описанию задачи он сам подбирает связанные объекты и методы и укладывает их в заданный бюджет токенов. Это вход для агента, который ещё не знает, с чего начать.

Ещё один MCP подключится во второй части. Он ставится расширением прямо в базу разработчика, и через него агент проверяет написанный код на живой тестовой базе. Не та скобка, лишняя кавычка, пропущенная точка с запятой — агент видит ошибку сам, снова идёт в справку и исправляет.

Зачем записывать вызовы MCP?

С включённым журналом DevMCP и ConfigMCP записывают каждый вызов инструмента: что вызвали, с какими аргументами, начало ответа, его размер в токенах, длительность, ошибку, сессию и пользователя. Сам токен в журнал не попадает. Хранится 30 дней.

Зачем это нужно. Модели пользуются MCP по-разному: простые вызывают инструменты часто, Opus — реже, потому что многое знает сам. По журналу видно, какие инструменты агент игнорирует, где ошибается в аргументах и на чём тратит контекст. Это повод поправить описания инструментов или промпт в CLAUDE.md проекта. После большого проекта в третьей части я разберу журнал целиком.

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

Как выстроить разработку в 1С с ИИ системой, а не набором промптов, — контекст проекта, MCP-серверы, скиллы и агенты, — я разбираю на курсе «ИИ для 1С». Там же лежат установщики NS_MCP и Harness, которые я показываю в этой серии.

Готовый MCP-сервер или свой?

Это разные задачи. NS_MCP — инструмент разработчика: он даёт агенту знания о платформе и о конфигурации, но в данные базы не ходит.

Если нужен агент, который работает с данными — читает остатки, проверяет заказы, отвечает менеджеру про контрагента, — MCP-сервер пишется под вашу базу, обычно прямо на HTTP-сервисах 1С. Как написать такой сервер с нуля, с разбором протокола и рабочим кодом обеих сторон, я показывал в статье MCP-сервер для 1С своими руками.

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

Что дальше в серии Harness 1С

Серия из трёх роликов:

  1. Установка NS_MCP — эта статья.
  2. Развёртывание Harness: он сам подгружает базу в MCP, индексирует и подключает её к проекту.
  3. Большой проект в базе с Opus — и разбор журнала: насколько эффективно агент пользовался MCP.

Как устроена вся обвязка — MCP-серверы, оркестратор и трекер задач, — я описывал в обзоре Harness 1С: автономный AI-агент для разработки.

Вопросы по установке пишите в комментариях под роликом или в Telegram-канале. А если хотите собирать такие системы сами и внедрять ИИ в проекты на 1С, приходите на курс «ИИ для 1С».

Курс по теме статьи

Курс ИИ для 1С — разработка ИИ-агентов, RAG и MCP-серверов

Для программистов и аналитиков 1С: на курсе пишете код и собираете 4 проекта — ИИ-агента, RAG по базе знаний и MCP-сервер к своей 1С. Рассрочка, бесплатный вебинар.

150 000 ₽

Перейти к курсу «Курс ИИ для 1С — разработка ИИ-агентов, RAG и MCP-серверов»

Частые вопросы