Перейти к содержанию

Стандарты 1С в ИИ-помощнике

Вы можете спросить у ИИ-помощника: «Почему в 1С не рекомендуют модальные окна?» и попросить его найти ответ в стандартах v8std.ru со ссылкой на правило. Для этого нужно один раз подключить к помощнику наш справочник.

Что такое ИИ и MCP

ИИ-помощник — программа, с которой можно общаться обычным текстом. Вы задаёте вопрос, она составляет ответ. Но помощник может ошибаться: даже уверенное объяснение стоит сверять с источником.

MCP — способ подключать к ИИ-помощнику внешние источники и инструменты. Через MCP v8std помощник может искать материалы этого сайта и читать найденные стандарты. Вам достаточно задавать вопросы в привычном чате.

Например, вы просите объяснить предупреждение о модальном окне. Помощник обращается к v8std, находит описание bslls:UsingModalWindows и связанный стандарт, затем объясняет правило и даёт ссылку для проверки.

Как подключить

Понадобится приложение с ИИ-помощником, которое поддерживает MCP. В его настройках найдите раздел MCP или подключения внешних инструментов и добавьте сервер:

  • Название: v8std.
  • Адрес: https://ai.v8std.ru/mcp.

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

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

Попробуйте первый вопрос

Скопируйте в чат:

Найди через v8std стандарт о модальных окнах в 1С. Объясни простыми словами, в чём проблема, и дай ссылку на стандарт.

Так же можно попросить найти правило по его номеру или объяснить предупреждение из проверки кода. Названия внутренних инструментов и специальные команды для этого знать не нужно.

Откройте ссылку из ответа и проверьте, подходит ли правило к вашей задаче. Если помощник отвечает без источника, попросите его обратиться к v8std и привести найденный материал.

MCP v8std возвращает справочные материалы. Сам сервис не изменяет ваш проект и не выполняет полную проверку кода. Он получает текст запросов, которые отправляет помощник, поэтому не передавайте в публичный сервис закрытый код и конфиденциальные данные.

Как запустить на своём компьютере

Есть два варианта: запустить только MCP или сайт вместе с MCP. В первом случае справочник скачивается с v8std.ru, а ссылки из ответов ведут на публичный сайт. Во втором — MCP берёт справочник из локального сайта, и материалы можно читать на своём компьютере.

Понадобится установленный и запущенный Docker с Docker Compose. Команды ниже рассчитаны на терминал macOS, Linux или WSL в Windows. Для скачивания образов нужен интернет; собирать проект из исходников не требуется.

Только MCP

Создайте папку v8std-mcp, а в ней файл compose.yaml. Скопируйте в файл весь текст:

# Standalone MCP: downloads the public index and keeps it in a persistent volume.
services:
  mcp:
    image: ${V8STD_MCP_IMAGE:-ghcr.io/zeegin/v8std-mcp:stable}
    user: "10001:10001"
    read_only: true
    init: true
    cap_drop: [ALL]
    security_opt: [no-new-privileges:true]
    tmpfs: ["/tmp:rw,noexec,nosuid,size=64m,uid=10001,gid=10001"]
    mem_limit: 1536m
    cpus: 2
    pids_limit: 128
    volumes: [mcp-cache:/var/lib/v8std-mcp]
    environment:
      V8STD_MCP_SITE_URL: "${V8STD_MCP_SITE_URL:-https://v8std.ru/}"
      V8STD_MCP_MAX_SNIPPET_CHARS: "${V8STD_MCP_MAX_SNIPPET_CHARS:-4000}"
    command: [--transport, streamable-http, --host, 0.0.0.0, --port, "8000"]
    ports:
      - "127.0.0.1:${V8STD_MCP_PORT:-18766}:8000"
    healthcheck:
      test: [CMD, python, -c, "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/healthz', timeout=2)"]
      interval: 10s
      timeout: 3s
      start_period: 90s
      retries: 3
volumes:
  mcp-cache:

Откройте терминал в этой папке и запустите MCP:

docker compose up -d
docker compose ps

При первом запуске MCP скачает поисковый индекс — подготовленный справочник для поиска по стандартам. Он сохранится в Docker-томе и будет использоваться при следующих запусках. Для получения обновлений справочника нужен доступ к v8std.ru и ai.v8std.ru.

Дождитесь состояния healthy у MCP. Если он не готов, посмотрите сообщения: docker compose logs mcp.

В настройках ИИ-помощника укажите адрес http://127.0.0.1:18766/mcp и способ подключения Streamable HTTP.

Чтобы остановить MCP, выполните в той же папке docker compose down. Для повторного запуска — docker compose up -d. Скачанный индекс сохранится.

Сайт и MCP

Docker Compose запускает оба контейнера и соединяет их между собой. MCP получает индекс из контейнера сайта; обращаться за ним к публичному серверу не нужно. После скачивания образов сайт и MCP могут работать без интернета.

Если вы уже запустили отдельный MCP, сначала выполните docker compose down в его папке. Оба варианта используют один порт.

Создайте отдельную папку v8std-local, а в ней файл compose.yaml. Скопируйте в файл весь текст:

# Release distribution: ready site and MCP images.
# Both overrides must identify an actually published release or a local test image.
services:
  site:
    image: ${V8STD_SITE_IMAGE:?Set the verified ghcr.io/zeegin/v8std-site tag or digest}
    user: "10001:10001"
    read_only: true
    init: true
    cap_drop: [ALL]
    security_opt: [no-new-privileges:true]
    tmpfs: ["/tmp:rw,noexec,nosuid,size=32m,uid=10001,gid=10001"]
    mem_limit: 128m
    cpus: 0.5
    # The image listens on 8000 by default; changing the common port needs
    # only a temporary nginx config, leaving the image/root read-only.
    entrypoint: [/bin/sh, -ec]
    command:
      - 'sed "s/listen 8000;/listen ${V8STD_SITE_PORT:-18765};/" /etc/nginx/nginx.conf > /tmp/site.conf; exec nginx -c /tmp/site.conf -g "daemon off;"'
    ports:
      - "127.0.0.1:${V8STD_SITE_PORT:-18765}:${V8STD_SITE_PORT:-18765}"
      - "127.0.0.1:${V8STD_MCP_PORT:-18766}:8001"
    networks:
      corpus:
        aliases: [v8std.localhost]
      publish: {}
  mcp:
    image: ${V8STD_MCP_IMAGE:?Set the verified ghcr.io/zeegin/v8std-mcp tag or digest}
    profiles: [mcp]
    user: "10001:10001"
    read_only: true
    init: true
    cap_drop: [ALL]
    security_opt: [no-new-privileges:true]
    tmpfs: ["/tmp:rw,noexec,nosuid,size=64m,uid=10001,gid=10001"]
    mem_limit: 1536m
    cpus: 2
    pids_limit: 128
    volumes: [mcp-cache:/var/lib/v8std-mcp]
    environment:
      V8STD_MCP_SITE_URL: "${V8STD_MCP_SITE_URL:-http://v8std.localhost:${V8STD_SITE_PORT:-18765}${V8STD_SITE_PREFIX:-/}}"
      V8STD_MCP_MAX_SNIPPET_CHARS: "${V8STD_MCP_MAX_SNIPPET_CHARS:-4000}"
    command: [--transport, streamable-http, --host, 0.0.0.0, --port, "8000"]
    # Host HTTP goes through the site's loopback proxy; MCP has no egress route.
    networks: [corpus]
    depends_on: [site]
    healthcheck:
      test: [CMD, python, -c, "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/healthz', timeout=2)"]
      interval: 10s
      timeout: 3s
      start_period: 90s
      retries: 3
volumes:
  mcp-cache:
networks:
  corpus:
    internal: true
  publish: {}

Рядом создайте файл .env со следующим содержимым. Оба образа взяты из одного опубликованного выпуска:

V8STD_SITE_IMAGE=ghcr.io/zeegin/v8std-site:sha-58fff9f7cce57e98c884e01eded360236cfa47ee
V8STD_MCP_IMAGE=ghcr.io/zeegin/v8std-mcp:sha-58fff9f7cce57e98c884e01eded360236cfa47ee

Откройте терминал в папке v8std-local и запустите контейнеры:

docker compose --profile mcp up -d
docker compose --profile mcp ps

Дождитесь состояния healthy у MCP. Если он не готов, посмотрите сообщения: docker compose --profile mcp logs mcp.

  • Сайт в браузере: http://v8std.localhost:18765/.
  • Адрес MCP для ИИ-помощника: http://127.0.0.1:18766/mcp.
  • Способ подключения: Streamable HTTP.

Чтобы остановить сайт и MCP, выполните в той же папке:

docker compose --profile mcp down

Скачанный индекс останется в Docker-томе. Для повторного запуска используйте docker compose --profile mcp up -d. В этом варианте версия справочника определяется выбранным образом сайта.

Что подключается к локальному MCP

Адрес 127.0.0.1 доступен приложениям на вашем компьютере. Облачный помощник, который подключается к MCP со своего сервера, не сможет использовать этот адрес. Приведённые команды не открывают доступ к контейнерам из внешней сети.

Локальный MCP выполняет поиск на вашем компьютере, но сам ИИ-помощник может отправлять переписку своему облачному провайдеру. Его подключение и правила обработки данных настраиваются отдельно.