NODEDC_1C/docs/toolkit_install_runbook.md

3.8 KiB
Raw Blame History

1C MCP Toolkit Install Runbook (Windows, isolated env)

Дата: 2026-03-22

Цель

Поднять локальный 1c-mcp-toolkit как read-only runtime-мост рядом с существующей 1С, без изменения операционного контура.

Принятые ограничения

  • Только локальный/внутренний контур.
  • Только read-only инструменты (get_metadata, execute_query, get_object_by_link и др. на чтение).
  • execute_code в рабочем контуре не использовать.
  • ALLOW_DANGEROUS_WITH_APPROVAL=false.

1. Подготовка репозитория

git clone https://github.com/ROCTUP/1c-mcp-toolkit X:\1C\NDC_1C\external\1c-mcp-toolkit

Проверка ключевого артефакта:

Get-ChildItem X:\1C\NDC_1C\external\1c-mcp-toolkit\build

Ожидаемо: MCP_Toolkit.epf и MCP_Toolkit_x86.epf.

2. Изолированное окружение (Miniconda)

& 'C:\Users\DCTOUCH\miniconda3\Scripts\conda.exe' create -y -n ndc_1c_toolkit python=3.11
& 'C:\Users\DCTOUCH\miniconda3\envs\ndc_1c_toolkit\python.exe' -m pip install -r requirements.txt

Рабочая директория для установки: X:\1C\NDC_1C\external\1c-mcp-toolkit.

3. Безопасный запуск прокси

Рекомендуемый запуск (PowerShell):

$env:PORT='6003'
$env:TIMEOUT='180'
$env:ALLOW_DANGEROUS_WITH_APPROVAL='false'
$env:ANONYMIZATION_ENABLED='false'
$env:RESPONSE_FORMAT='json'
$env:LOG_LEVEL='INFO'
& 'C:\Users\DCTOUCH\miniconda3\envs\ndc_1c_toolkit\python.exe' -m onec_mcp_toolkit_proxy

Ожидаемый endpoint: http://localhost:6003

Проверка:

Invoke-WebRequest http://127.0.0.1:6003/health -UseBasicParsing

4. Ручные шаги в 1С (manual required)

  1. Открыть X:\1C\NDC_1C\external\1c-mcp-toolkit\build\MCP_Toolkit.epf в тестовой базе 1С.
  2. Выбрать режим Прокси.
  3. В поле адреса прокси указать http://localhost:6003.
  4. Указать channel ID (рекомендуемо фиксированное значение, например ndc-lab).
  5. Нажать Подключиться.
  6. Убедиться, что статус в форме — Подключено.

Важно: channel в 1С и в REST/MCP запросах должен совпадать.

5. Smoke-команды read-only

Примеры (после подключения .epf):

Invoke-WebRequest "http://127.0.0.1:6003/api/get_metadata?channel=ndc-lab" -UseBasicParsing
$body = @{ query = "ВЫБРАТЬ ПЕРВЫЕ 1 1 КАК Test"; limit = 1 } | ConvertTo-Json
Invoke-WebRequest "http://127.0.0.1:6003/api/execute_query?channel=ndc-lab" -Method POST -ContentType "application/json; charset=utf-8" -Body $body -UseBasicParsing
$body = @{ link = "e1cib/data/Справочник.Контрагенты?ref=80c6cc1a7e58902811ebcda8cb07c0f5" } | ConvertTo-Json
Invoke-WebRequest "http://127.0.0.1:6003/api/get_object_by_link?channel=ndc-lab" -Method POST -ContentType "application/json; charset=utf-8" -Body $body -UseBasicParsing

6. Остановка

Если запуск был в текущем окне:

  • Ctrl+C

Если запускался как background процесс:

Get-Process -Name python | Stop-Process -Force

7. Что нельзя делать в этом проекте

  • Не использовать execute_code.
  • Не включать write/mutation-потоки.
  • Не выставлять endpoint в интернет.
  • Не менять конфигурацию продовой 1С ради PoC.