107 lines
3.8 KiB
Markdown
107 lines
3.8 KiB
Markdown
# 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.
|