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

Сводная таблица переменных окружения для всех MCP-серверов.

## Общие переменные

Эти переменные используются большинством серверов:

| Переменная       | Описание                            | Обязательная | По умолчанию                          |
| ---------------- | ----------------------------------- | ------------ | ------------------------------------- |
| `LICENSE_KEY`    | Лицензионный ключ                   | Да           | —                                     |
| `RESET_DATABASE` | Переиндексировать данные            | Нет          | `true` / `false` (зависит от сервера) |
| `RESET_CACHE`    | Перезагрузить модель                | Нет          | `true`                                |
| `USESSE`         | SSE транспорт (для legacy клиентов) | Нет          | `false`                               |

## Embedding модели (LM Studio / Ollama / OpenRouter)

| Переменная             | Описание                                                                       | Пример                                |
| ---------------------- | ------------------------------------------------------------------------------ | ------------------------------------- |
| `OPENAI_API_BASE`      | URL API. Суффикс `/v1` добавляется автоматически                               | `http://host.docker.internal:1234/v1` |
| `OPENAI_API_KEY`       | Ключ API                                                                       | `lm-studio`                           |
| `OPENAI_MODEL`         | Модель embedding                                                               | `Qwen3-Embedding-4B`                  |
| `EMBEDDING_DIMENSIONS` | Явное указание размерности эмбеддингов (для моделей с переменной размерностью) | *(авто)*                              |

## Embedding модели (CPU)

| Переменная        | Описание              | Пример                          |
| ----------------- | --------------------- | ------------------------------- |
| `EMBEDDING_MODEL` | Модель с Hugging Face | `intfloat/multilingual-e5-base` |

{% hint style="info" %}
Если указан `OPENAI_API_KEY`, используется внешнее API. Иначе — встроенная CPU модель.
{% endhint %}

## Настройки индексации

Эти переменные управляют процессом индексации и доступны в серверах, где указано:

| Переменная               | Описание                                       | По умолчанию | Серверы             |
| ------------------------ | ---------------------------------------------- | ------------ | ------------------- |
| `INDEX_BATCH_SIZE`       | Размер пакета при добавлении в ChromaDB        | `25`–`50`    | CodeMetadata, Graph |
| `CHUNK_SIZE`             | Размер фрагмента текста при разбивке           | `1000`       | CodeMetadata        |
| `CHUNK_SIZE_UNIT`        | Единица измерения чанков: `chars` или `tokens` | `chars`      | CodeMetadata        |
| `CHUNK_OVERLAP`          | Перекрытие чанков                              | `100`        | CodeMetadata        |
| `CHUNK_OVERLAP_CODE`     | Перекрытие чанков для BSL-кода                 | `100`        | CodeMetadata        |
| `CHUNK_OVERLAP_TEXT`     | Перекрытие чанков для метаданных/XML/справки   | `200`        | CodeMetadata        |
| `MAX_TOKENS_PER_BATCH`   | Максимум токенов в одном пакете API            | `7500`       | Graph               |
| `EMBEDDING_MAX_TOKENS`   | Максимум токенов на текст для эмбеддингов      | *(авто)*     | Graph               |
| `REINDEX_INTERVAL_HOURS` | Интервал автоматической переиндексации (часы)  | `24`         | CodeMetadata        |
| `ENABLE_RERANKER`        | Нейронный реранкер (cross-encoder)             | `false`      | CodeMetadata        |
| `RERANKER_MODEL`         | Модель реранкера                               | *(авто)*     | CodeMetadata        |
| `RERANKER_TOP_K`         | Макс. кандидатов для реранкера                 | `20`         | CodeMetadata        |

## Переменные по серверам

### HelpSearchServer (порт 8003)

| Переменная       | Описание                | По умолчанию |
| ---------------- | ----------------------- | ------------ |
| `LICENSE_KEY`    | Лицензионный ключ       | Обязательно  |
| `1C_BIN_PATH`    | Путь к bin в контейнере | `/1c_docs`   |
| `RESET_DATABASE` | Переиндексировать       | `true`       |
| `RESET_CACHE`    | Перезагрузить модель    | `true`       |

### CodeMetadataSearchServer (порт 8000)

| Переменная               | Описание                                           | По умолчанию     |
| ------------------------ | -------------------------------------------------- | ---------------- |
| `LICENSE_KEY`            | Лицензионный ключ                                  | Обязательно      |
| `METADATA_PATH`          | Путь к метаданным                                  | `/app/metadata`  |
| `CODE_PATH`              | Путь к коду                                        | `/app/code`      |
| `MCP_HOST`               | Хост для привязки сервера                          | `0.0.0.0`        |
| `MCP_PORT`               | Порт сервера                                       | `8000`           |
| `MCP_PATH`               | Путь MCP-эндпоинта                                 | `/mcp`           |
| `CHROMA_DB_PATH`         | Путь к директории ChromaDB                         | `/app/chroma_db` |
| `RESET_DATABASE`         | Переиндексировать                                  | `false`          |
| `REINDEX_INTERVAL_HOURS` | Интервал автоматической переиндексации (часы)      | `24`             |
| `INDEX_BATCH_SIZE`       | Размер пакета индексации                           | `25`             |
| `CHUNK_SIZE`             | Размер фрагмента текста                            | `1000`           |
| `CHUNK_SIZE_UNIT`        | Единица измерения: `chars` или `tokens`            | `chars`          |
| `CHUNK_OVERLAP`          | Перекрытие чанков                                  | `100`            |
| `CHUNK_OVERLAP_CODE`     | Перекрытие чанков для BSL-кода                     | `100`            |
| `CHUNK_OVERLAP_TEXT`     | Перекрытие чанков для метаданных/XML/справки       | `200`            |
| `CONTEXT_EXPANSION`      | Расширение контекста: `none`, `siblings`, `window` | `none`           |
| `CONTEXT_WINDOW_SIZE`    | Размер окна для режима `window`                    | `1`              |
| `BM25_ALPHA`             | Вес семантического поиска (0–1)                    | `0.5`            |
| `OVERFETCH_MULTIPLIER`   | Множитель расширения выборки перед BM25            | `2`              |
| `MIN_SCORE_THRESHOLD`    | Минимальный порог оценки результата (0–1)          | `0.15`           |
| `EMBEDDING_CACHE_SIZE`   | Размер LRU-кэша эмбеддингов запросов               | `256`            |
| `EMBEDDING_DIMENSIONS`   | Размерность эмбеддингов                            | *(авто)*         |
| `ENABLE_RERANKER`        | Включить нейронный реранкер (cross-encoder)        | `false`          |
| `RERANKER_MODEL`         | Модель реранкера                                   | *(авто)*         |
| `RERANKER_TOP_K`         | Макс. кандидатов для реранкера                     | `20`             |
| `LOG_LEVEL`              | Уровень логирования: `debug`, `normal`, `none`     | `normal`         |

### SSLSearchServer (порт 8008)

| Переменная                            | Описание                                      | По умолчанию |
| ------------------------------------- | --------------------------------------------- | ------------ |
| `LICENSE_KEY`                         | Лицензионный ключ                             | Обязательно  |
| `SSL_VERSION`                         | Версия БСП                                    | Обязательно  |
| `RESET_DATABASE`                      | Переиндексировать                             | `false`      |
| `EMBEDDING_DIMENSIONS`                | Размерность эмбеддингов                       | *(авто)*     |
| `EMBEDDING_INPUT_TYPE_ENABLED`        | Различение query/document для эмбеддингов     | `true`       |
| `FORCE_REINDEX_ON_DIMENSION_MISMATCH` | Автопересоздание при несовпадении размерности | `true`       |

### Graph Metadata Search (порт 8006)

| Переменная                              | Описание                                  | По умолчанию          |
| --------------------------------------- | ----------------------------------------- | --------------------- |
| `LICENSE_KEY`                           | Лицензионный ключ                         | Обязательно           |
| `NEO4J_URI`                             | URI Neo4j                                 | `bolt://neo4j:7687`   |
| `NEO4J_USERNAME`                        | Пользователь                              | `neo4j`               |
| `NEO4J_PASSWORD`                        | Пароль                                    | Обязательно           |
| `METADATA_DIRECTORY`                    | Путь к метаданным                         | `/app/metadata`       |
| `PROJECT_NAME`                          | Название проекта                          | `1C Metadata Project` |
| `INDEX_BATCH_SIZE`                      | Размер пакета индексации                  | `50`                  |
| `MAX_TOKENS_PER_BATCH`                  | Макс. токенов на пакет API                | `7500`                |
| `OPENAI_EMBEDDING_DIMENSIONS`           | Размерность эмбеддингов                   | *(авто)*              |
| `ENABLE_CODE_SEARCH`                    | Поиск по BSL-коду                         | `true`                |
| `ENABLE_BUSINESS_SEARCH`                | Семантический поиск по бизнес-описаниям   | `true`                |
| `CALCULATE_BUSINESS_INFO`               | Генерировать AI бизнес-описания           | `false`               |
| `ENABLE_METADATA_DESCRIPTION_EMBEDDING` | Эмбеддинги для описательных полей         | `false`               |
| `MCP_HOST`                              | Хост MCP-сервера                          | `0.0.0.0`             |
| `MCP_PORT`                              | Порт MCP                                  | `8006`                |
| `MCP_PATH`                              | URL-путь MCP эндпоинта                    | `/mcp`                |
| `EMBEDDING_ALLOW_OFFLINE_FALLBACK`      | Автопереход на локальную модель           | `true`                |
| `TEMPLATE_MODE_ENABLED`                 | Шаблонный режим (JSON-запросы без LLM)    | `true`                |
| `TEMPLATE_MODE_ONLY`                    | Только шаблоны, без LLM                   | `false`               |
| `CODE_SEARCH_MAX_FILE_SIZE`             | Макс. размер BSL-файла (байт)             | `50000`               |
| `CODE_EXPORT_PATH`                      | Путь к XML-выгрузке в файлы               | —                     |
| `LOAD_BSL_SIGNATURES`                   | Загружать BSL-граф (Module/Routine/CALLS) | `false`               |
| `ENABLE_ROUTINE_EMBEDDINGS`             | Эмбеддинги для процедур/функций           | `true`                |
| `LOAD_FORMS_FROM_XML`                   | Загружать структуру форм из XML           | `false`               |
| `LOAD_EVENT_SUBSCRIPTIONS`              | Загружать подписки на события             | `false`               |
| `LOAD_PREDEFINED_VALUES`                | Загружать предопределённые элементы       | `false`               |
| `LOAD_ROLE_RIGHTS`                      | Загружать права ролей                     | `false`               |
| `LOAD_HELP_FROM_HTML`                   | Загружать справку из HTML                 | `false`               |
| `EXTENSION_NAME`                        | Имя расширения                            | —                     |
| `EXTENSION_BASE_PROJECT`                | Имя базового проекта для расширения       | —                     |

### 1CCodeChecker (порт 8007)

| Переменная                     | Описание                                                                 | По умолчанию         |
| ------------------------------ | ------------------------------------------------------------------------ | -------------------- |
| `LICENSE_KEY`                  | Лицензионный ключ                                                        | Обязательно          |
| `ONEC_AI_TOKEN`                | Токен 1С:Напарник                                                        | Обязательно          |
| `MCP_TOOL_CALL_MODE`           | Режим вызова upstream: `direct` (прямые вызовы) или `standard` (промпты) | `direct`             |
| `ONEC_AI_BASE_URL`             | Базовый URL API 1С.ai                                                    | `https://code.1c.ai` |
| `ONEC_AI_TIMEOUT`              | Таймаут запросов к API (секунды)                                         | `30`                 |
| `ONEC_AI_SKILL_NAME`           | Режим сессии: `custom` (с инструментами) или `raw`                       | `custom`             |
| `ONEC_AI_INPUT_MAX_LENGTH`     | Максимальная длина входных данных                                        | `100000`             |
| `ONEC_AI_UI_LANGUAGE`          | Язык интерфейса                                                          | `russian`            |
| `ONEC_AI_PROGRAMMING_LANGUAGE` | Язык программирования                                                    | *(пусто)*            |
| `ONEC_AI_SCRIPT_LANGUAGE`      | Скриптовый язык (`ru` / `en`)                                            | `ru`                 |
| `ONEC_CONFIG_NAME`             | Конфигурация 1С по умолчанию для `config_help`                           | *(пусто)*            |
| `MAX_ACTIVE_SESSIONS`          | Макс. активных сессий                                                    | `10`                 |
| `SESSION_TTL`                  | Время жизни сессии (секунды)                                             | `3600`               |
| `HTTP_PORT`                    | Порт HTTP-сервера                                                        | `8007`               |

### SyntaxCheckServer (порт 8002)

| Переменная    | Описание          | По умолчанию |
| ------------- | ----------------- | ------------ |
| `LICENSE_KEY` | Лицензионный ключ | Обязательно  |
| `USESSE`      | SSE транспорт     | `false`      |

### TemplatesSearchServer (порт 8004)

| Переменная             | Описание                | По умолчанию |
| ---------------------- | ----------------------- | ------------ |
| `LICENSE_KEY`          | Лицензионный ключ       | Обязательно  |
| `RESET_DATABASE`       | Переиндексировать       | `true`       |
| `HTTP_PORT`            | Порт HTTP-сервера       | `8004`       |
| `EMBEDDING_DIMENSIONS` | Размерность эмбеддингов | *(авто)*     |

## Примеры

### Минимальный набор (CPU)

```powershell
-e LICENSE_KEY=YOUR_LICENSE_KEY
```

### С LM Studio

```powershell
-e LICENSE_KEY=YOUR_LICENSE_KEY `
-e RESET_DATABASE=false `
-e OPENAI_API_BASE=http://host.docker.internal:1234/v1 `
-e OPENAI_API_KEY=lm-studio `
-e OPENAI_MODEL=Qwen3-Embedding-4B
```

### С OpenRouter

```powershell
-e LICENSE_KEY=YOUR_LICENSE_KEY `
-e RESET_DATABASE=false `
-e OPENAI_API_BASE=https://openrouter.ai/api `
-e OPENAI_API_KEY=YOUR_OPENROUTER_KEY `
-e OPENAI_MODEL=qwen/qwen3-embedding-8b
```

### С Ollama

```powershell
-e LICENSE_KEY=YOUR_LICENSE_KEY `
-e RESET_DATABASE=false `
-e OPENAI_API_BASE=http://host.docker.internal:11434/v1 `
-e OPENAI_API_KEY=ollama `
-e OPENAI_MODEL=qwen3:embedding-4b
```


---

# 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/prilozhenia/peremennye-okruzheniya.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.
