# Конфигурация

## Переменные окружения

### Обязательные

| Переменная      | Описание                                         |
| --------------- | ------------------------------------------------ |
| `LICENSE_KEY`   | Лицензионный ключ MCP-сервера                    |
| `ONEC_AI_TOKEN` | Токен для доступа к API 1С:Напарник (code.1c.ai) |

### API подключение

| Переменная                 | Описание                                                                                 | По умолчанию |
| -------------------------- | ---------------------------------------------------------------------------------------- | ------------ |
| `ONEC_AI_TIMEOUT`          | Таймаут запросов к API (секунды). Влияет на connect/write/pool; SSE-чтение не ограничено | `30`         |
| `ONEC_AI_INPUT_MAX_LENGTH` | Максимальная длина входных данных (символы)                                              | `100000`     |

### Режим работы

| Переменная           | Описание                                                                     | По умолчанию |
| -------------------- | ---------------------------------------------------------------------------- | ------------ |
| `MCP_TOOL_CALL_MODE` | Режим вызова upstream: `direct` или `standard` (см. ниже)                    | `direct`     |
| `ONEC_AI_SKILL_NAME` | Режим сессии Напарника: `custom` (с инструментами) или `raw` (прямые ответы) | `custom`     |

### Языковые настройки

| Переменная                | Описание                       | По умолчанию |
| ------------------------- | ------------------------------ | ------------ |
| `ONEC_AI_UI_LANGUAGE`     | Язык интерфейса                | `russian`    |
| `ONEC_AI_SCRIPT_LANGUAGE` | Скриптовый язык: `ru` или `en` | `ru`         |

### Конфигурация 1С

| Переменная         | Описание                                                                                                         | По умолчанию |
| ------------------ | ---------------------------------------------------------------------------------------------------------------- | ------------ |
| `ONEC_CONFIG_NAME` | Название конфигурации 1С по умолчанию для инструмента `config_help` (например, `ERP`, `Бухгалтерия предприятия`) | *(пусто)*    |

### Управление сессиями

| Переменная            | Описание                                                 | По умолчанию |
| --------------------- | -------------------------------------------------------- | ------------ |
| `MAX_ACTIVE_SESSIONS` | Максимальное количество активных сессий (диалогов) с API | `10`         |
| `SESSION_TTL`         | Время жизни сессии в секундах                            | `3600`       |

### Транспорт

| Переменная  | Описание                                          | По умолчанию |
| ----------- | ------------------------------------------------- | ------------ |
| `USESSE`    | Использовать SSE-транспорт вместо streamable-http | `false`      |
| `HTTP_PORT` | Порт HTTP-сервера                                 | `8007`       |

## Режимы вызова инструментов

Переменная `MCP_TOOL_CALL_MODE` определяет, как MCP-инструменты взаимодействуют с API 1С.ai:

### Direct mode (по умолчанию)

```
MCP_TOOL_CALL_MODE=direct
```

Инструменты вызывают **upstream-инструменты** 1С.ai напрямую с точными аргументами. Обеспечивает более точные и структурированные результаты.

Маппинг upstream-инструментов:

| MCP-инструмент                   | Upstream-инструмент                               |
| -------------------------------- | ------------------------------------------------- |
| `check_1c_code` (синтаксис)      | `mcp__syntax-checker__validate`                   |
| `search_1c_documentation`        | `mcp__knowledge-hub__Search_Documentation`        |
| `onec_help`                      | `mcp__knowledge-hub__Search_Documentation`        |
| `its_help`                       | `mcp__knowledge-hub__Search_ITS`                  |
| `fetch_its`                      | `mcp__knowledge-hub__Fetch_ITS`                   |
| `diff_1c_documentation_versions` | `mcp__knowledge-hub__Diff_Documentation_Versions` |

При сбое direct-вызова сервер автоматически переключается на промпт-режим (fallback).

### Standard mode

```
MCP_TOOL_CALL_MODE=standard
```

Все инструменты используют **текстовые промпты** (natural language) для взаимодействия с API. Менее точный, но более устойчивый вариант.

{% hint style="info" %}
Если в ответах инструментов появляется `[DIRECT_TOOL_ERROR]`, это может означать временную недоступность upstream API. Установите `MCP_TOOL_CALL_MODE=standard` для переключения на промпт-режим.
{% endhint %}

## Пример docker run со всеми настройками

```powershell
docker run -d -p 8007:8007 `
  --name 1c_code_checker `
  -e LICENSE_KEY=YOUR_LICENSE_KEY `
  -e ONEC_AI_TOKEN=YOUR_NAPARNIR_TOKEN `
  -e MCP_TOOL_CALL_MODE=direct `
  -e ONEC_AI_TIMEOUT=60 `
  -e ONEC_CONFIG_NAME="ERP" `
  -e ONEC_AI_SKILL_NAME=custom `
  -e MAX_ACTIVE_SESSIONS=10 `
  -e SESSION_TTL=3600 `
  comol/1c-code-checker:latest
```

## Транспорт

По умолчанию сервер использует **streamable-http** транспорт. Для legacy-клиентов, которые поддерживают только SSE, установите `USESSE=true`.

| Режим                          | Переменная     | Эндпоинт                    |
| ------------------------------ | -------------- | --------------------------- |
| streamable-http (по умолчанию) | `USESSE=false` | `http://localhost:8007/mcp` |
| SSE                            | `USESSE=true`  | `http://localhost:8007/mcp` |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.onerpa.ru/mcp-servery-1c/servery/code-checker/konfiguraciya.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
