NODEDC_1C/docs/toolkit_install_runbook.md

107 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. Подготовка репозитория
```powershell
git clone https://github.com/ROCTUP/1c-mcp-toolkit X:\1C\NDC_1C\external\1c-mcp-toolkit
```
Проверка ключевого артефакта:
```powershell
Get-ChildItem X:\1C\NDC_1C\external\1c-mcp-toolkit\build
```
Ожидаемо: `MCP_Toolkit.epf` и `MCP_Toolkit_x86.epf`.
## 2. Изолированное окружение (Miniconda)
```powershell
& '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):
```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`
Проверка:
```powershell
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`):
```powershell
Invoke-WebRequest "http://127.0.0.1:6003/api/get_metadata?channel=ndc-lab" -UseBasicParsing
```
```powershell
$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
```
```powershell
$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 процесс:
```powershell
Get-Process -Name python | Stop-Process -Force
```
## 7. Что нельзя делать в этом проекте
- Не использовать `execute_code`.
- Не включать write/mutation-потоки.
- Не выставлять endpoint в интернет.
- Не менять конфигурацию продовой 1С ради PoC.