MCP-1C on-premise: данные 1С не уходят наружу

·
  • on-premise
  • безопасность
  • приватность
  • 1c

MCP-сервер читает конфигурацию 1С локально, код и данные базы не уходят на сторонние серверы. Где проходит сетевая граница и какие обращения остаются у платных редакций.

Главный вопрос при подключении AI к 1С звучит одинаково у всех: куда уйдёт код конфигурации и данные базы. Ответ короткий: MCP-1C работает как локальный сервер, ваш код не проходит через наши серверы. MCP-сервер читает файлы конфигурации и передаёт данные напрямую в AI-клиент на вашей машине. Это следствие самой архитектуры протокола, и в Открытой редакции сервер вообще обходится без сети.

Почему запуск локальный по самой архитектуре

Транспорт MCP по умолчанию это stdio: AI-клиент запускает бинарник как подпроцесс на вашей машине и общается с ним через stdin и stdout. Отдельные порты и HTTP-серверы для этого не нужны. Это не наше изобретение, а базовый режим протокола. В спецификации MCP сказано прямо: клиент запускает MCP-сервер как подпроцесс, сервер читает JSON-RPC из стандартного ввода и пишет в стандартный вывод. Клиентам рекомендовано поддерживать stdio где это возможно.

Практический вывод: процесс mcp-1c-advanced или mcp-1c-pro живёт ровно столько, сколько открыт ваш AI-клиент. Это отдельный процесс на вашей машине, обмен с клиентом идёт через stdin и stdout, он работает как локальная программа. Один stdio-процесс обслуживает ровно одного пользователя. Никакого слушающего сокета, к которому можно подключиться снаружи, в этом режиме не поднимается.

Отдельно про флаг --listen: встроенный HTTP-сервер это только транспорт длинного опроса для связи с 1С, а не сетевой MCP-сервер для внешнего доступа. Он нужен для подключения к платформе, а не для того, чтобы выставить инструменты наружу.

Что значит on-premise в Открытой редакции

Открытая редакция работает полностью офлайн. MCP-сервер запускается локально и читает файлы конфигурации напрямую. Расширение конфигурации Открытой редакции работает только на чтение: оно не изменяет данные и конфигурацию. То есть в этой редакции в принципе нет операций записи, которые могли бы что-то поменять в базе.

Локальность нашего сервера и локальность самого AI это разные вещи:

  • Наш MCP-сервер локален. Файлы конфигурации он читает с диска, в облако вендора их не отправляет.
  • Сам AI-клиент (Claude, Cursor и подобные) при этом ходит в своё облако, чтобы получить ответ модели. Это его сеть, не наша.

Граница проходит ровно по этому стыку. Метаданные и фрагменты кода, которые вы передаёте в запрос, отправляет AI-клиент в свою модель по своим правилам. MCP-1C решает за вас задачу локального чтения конфигурации, а политику работы облачной модели определяет ваш клиент. Если контур должен быть полностью закрытым, это вопрос к выбору AI-клиента, а не к нашему серверу.

Сетевые обращения платных редакций

Расширенная и Профессиональная редакции периодически проверяют лицензию через интернет. Это про лицензию, а не про данные 1С. Сам MCP-сервер работает локально, интернет в этом сценарии нужен AI-клиенту для связи со своим облаком и нашему механизму лицензирования.

Как устроена лицензия:

  1. Ключ активируется один раз.
  2. Лицензия хранится локально и проверяется периодически.
  3. Идентичность лицензии лежит в каталоге конфигурации как файл. Отдельной переменной окружения для подмены идентификатора нет, и это локальный файл, а не запрос к серверу при каждом старте.

Активацию можно перенести между машинами: --deactivate освобождает слот устройства, --activate занимает слот на новой машине. Обе команды запускаются на вашей машине, но обращаются к лицензионному серверу для переноса слота устройства.

Ещё одно сетевое обращение платных редакций это самообновление. Команда --update идёт через лицензионный сервер: запрос авторизуется лицензионным ключом и идентификатором машины, а перед заменой бинарника проверяется криптографическая подпись Ed25519 скачанного файла. С данными 1С это не связано.

Что именно уходит в сеть и зачем, по редакциям:

Обращение Открытая Расширенная и Профессиональная Что передаётся
Чтение конфигурации 1С локально локально ничего наружу
Проверка лицензии нет да, периодически вопрос лицензии, не данные 1С
Самообновление --update нет да, по запросу ключ и идентификатор машины

LLM-функции: данные уходят только если вы их включили

К внешнему LLM-провайдеру обращаются четыре функции Профессиональной редакции: автогенерация документации (--build-autodoc), генерация тестов (--build-testgen), генерация .epf обработок (--build-epfgen) и навигация по типовым конфигурациям (--build-typicalconfigs). По умолчанию они отправляют фрагменты кода и метаданных выбранному провайдеру, чтобы обогатить результат. Поддерживаются два провайдера:

  • YandexGPT, по умолчанию, флаг --autodoc-provider yandexgpt, ключи YANDEXGPT_API_KEY и YANDEXGPT_FOLDER_ID.
  • GigaChat, флаг --autodoc-provider gigachat, ключи GIGACHAT_CLIENT_ID и GIGACHAT_CLIENT_SECRET.

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

  • --testgen-llm-disable: генерация только скелетов тестов без LLM-комментариев.
  • --epfgen-llm-disable: сборка бандлов .epf без LLM-обогащения.
  • --typicalconfigs-llm-disable: индекс подсистем без описаний.

У автогенерации документации отдельного флага отключения нет: она полностью построена на ответах модели и без API-ключей не запускается.

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

Конфигурация локального запуска

Минимальный конфиг для запуска по stdio на примере Claude Desktop. AI-клиент сам запускает бинарник как подпроцесс на вашей машине, данные 1С читаются локально.

{
  "mcpServers": {
    "mcp-1c": {
      "command": "/usr/local/bin/mcp-1c-advanced",
      "args": [
        "--base", "acc=File=/Users/me/bases/acc",
        "--user", "Администратор",
        "--password", ""
      ]
    }
  }
}

Путь к файлу конфигурации зависит от ОС:

ОС Путь
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json

Бинарник один, без внешних зависимостей, Docker для обычной работы не нужен. Поддерживаются Windows, macOS и Linux на amd64 и arm64, совместимость с 1С версий 8.3.x и 8.5.x.

Запись в базу: только в платных и только с подтверждением

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

Что появится в Корпоративной редакции

Корпоративная редакция в разработке и подаётся как скоро. По плану она добавит Trust Layer для маскирования персональных данных перед отправкой в AI, аудит-лог и мониторинг, on-premise deployment и поддержку с SLA. Точный состав уточняется, дат мы не называем.

Коротко про границу

Безопасность данных 1С в MCP-1C держится на простом разделении. Чтение конфигурации и работа с базой локальны во всех редакциях. В сеть из самого MCP-сервера уходят только служебные вещи платных редакций: проверка лицензии и самообновление, и только LLM-функции при явно заданных ключах отправляют данные выбранному провайдеру. Всё остальное про сеть это поведение вашего AI-клиента, а не нашего бинарника. Подробности по редакциям и инструментам собраны в документации, сравнение и цены на странице тарифов, а начать можно с главной.