← aprovodka

MCP-сервер для 1С: как подключить ИИ-агента к базе

Разбор способа, при котором в конфигурацию ничего не ставится: агент работает через интерфейс OData, который платформа публикует сама.

Почему это вообще вопрос

Данные учётной системы закрыты для внешних программ, пока кто-то не напишет обработку, отчёт или обмен. Обычный цикл выглядит так: сформулировать вопрос — поставить задачу разработчику — дождаться доработки — получить ответ. На простой вопрос вроде «сколько мы должны этому поставщику и по каким документам» уходят дни.

Языковая модель умеет формулировать запрос сама, но без моста к базе она про ваши данные не знает ничего. Мост и есть предмет разговора.

Два способа подключения — и чем они различаются

В нише сложилось два подхода, и выбор между ними определяет почти всё остальное.

Расширение в базе

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

Штатный OData

Платформа умеет публиковать интерфейс OData сама, начиная с версии 8.3.5. Ничего не ставится, конфигурация не меняется, с поддержки снимать не нужно. Так устроен aprovodka.

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

Подключение по шагам

  1. Опубликовать OData на стороне 1С

    В конфигураторе включаются нужные объекты состава стандартного интерфейса OData, затем база публикуется на веб-сервере. Адрес получается вида https://сервер/база/odata/standard.odata. Если публикация уже есть — этот шаг пропускается.

  2. Завести отдельного пользователя

    Не берите административную учётную запись. Заведите отдельного пользователя с правами ровно на те объекты, которые нужны агенту. Это единственная граница, отделяющая модель от остальной базы, и настраивается она средствами 1С, а не сервером.

  3. Подключить сервер к MCP-клиенту

    MCP — открытый протокол, по которому клиентские приложения подключают внешние инструменты. Конфигурация одинакова для всех поддерживающих клиентов:

    {
      "mcpServers": {
        "aprovodka": {
          "command": "npx",
          "args": ["-y", "@theyahia/aprovodka"],
          "env": {
            "ONEC_BASE_URL": "https://сервер/база/odata/standard.odata",
            "ONEC_LOGIN": "агент",
            "ONEC_PASSWORD": "пароль",
            "ONEC_WRITE_MODE": "preview"
          }
        }
      }
    }

    Ставить ничего заранее не нужно — npx получает пакет из npm при первом запуске.

  4. Начать с разведки, а не с запросов

    Имена сущностей в 1С зависят от конфигурации, и угадывать их бесполезно. Порядок такой: get_config_preset отдаёт готовую схему типовой конфигурации, если ваша к ним относится; list_entities показывает, что реально есть в базе; describe_entity — состав полей конкретной сущности.

  5. Решить, что делать с записью

    Читать безопасно. Запись — отдельное решение, и её лучше не включать по умолчанию.

Безопасность записи

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

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

Каждая операция пишется в журнал аудита. Если журнал недоступен, операция не выполняется, а не проходит молча.

Что спрашивают чаще всего

Нужен ли доступ к конфигуратору?

Для самого подключения — нет, если OData уже опубликован. Если нет, публикация делается один раз и требует конфигуратора.

Снимается ли конфигурация с поддержки?

Нет. Состав интерфейса OData — штатная настройка платформы, а не изменение конфигурации.

Работает ли с доработанной или отраслевой конфигурацией?

Да, но готовой схемы для неё не будет. Сущности выясняются через list_entities и describe_entity — либо заказывается разбор конфигурации.

Какие версии платформы подходят?

Те, где есть стандартный интерфейс OData, — 8.3.5 и выше. Файловый вариант тоже работает при условии публикации на веб-сервере.

Уходят ли данные куда-то ещё?

Сервер обращается только по адресу, который вы указали в настройках; телеметрии в зависимостях нет. Но данные, которые агент прочитал, попадают в ту языковую модель, которой вы пользуетесь, — это ваш выбор и ваша зона ответственности.

Сколько стоит?

Сам сервер бесплатен, лицензия MIT. Платные — внедрение, разбор конфигурации и поддержка со сроками; условия на главной странице.

С чего начать

npx -y @theyahia/aprovodka

Полное описание всех 34 инструментов, переменных окружения и сценариев — в руководстве пользователя на 76 страниц.