Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Onec Config

БесплатноНе проверен

Enables searching through 1C:Enterprise configuration source code (XML+BSL) with full-text indexing, providing tools to find code, metadata objects, procedures,

GitHubEmbed

Описание

Enables searching through 1C:Enterprise configuration source code (XML+BSL) with full-text indexing, providing tools to find code, metadata objects, procedures, and modules.

README

MCP-сервер для поиска по исходному коду конфигураций 1С:Предприятие прямо из Claude Code.

Индексирует выгрузки конфигураций (XML + BSL) в локальную SQLite-базу с полнотекстовым поиском (FTS5) и предоставляет 11 инструментов для поиска кода, объектов метаданных, процедур и функций.

Возможности

  • Полнотекстовый поиск по BSL-коду с поддержкой FTS5-синтаксиса (AND, OR, NOT, "фраза")
  • Поиск объектов метаданных по имени (общие модули, справочники, документы и т.д.)
  • Получение полного кода модуля по имени объекта
  • Поиск определения процедуры или функции с номером строки
  • Получение тела процедуры/функции и карты модуля (список процедур без исходника) без чтения всего файла
  • Граф вызовов: кто вызывает процедуру / что вызывает она сама
  • Автоматическая переиндексация при изменении файлов (watchdog)
  • Поддержка нескольких конфигураций одновременно

Требования

Установка

git clone https://github.com/ASGDeveloper/onec-config-mcp
cd onec-config-mcp
pip install -e .

Настройка

Отредактируйте config.json:

{
  "db_path": "C:/Users/user/Documents/GitHub/onec-config-mcp/index.db",
  "configs": [
    {
      "name": "МояКонфигурация",
      "path": "C:/path/to/exported/config",
      "object_types": "all",
      "index_forms": true,
      "watch": true
    },
    {
      "name": "БП",
      "path": "C:/path/to/exported/acc30",
      "object_types": "base",
      "index_forms": false
    }
  ]
}
Поле Описание
db_path Путь к файлу базы данных SQLite (будет создан автоматически)
name Имя конфигурации (используется как фильтр в инструментах)
path Путь к корню выгруженной конфигурации
object_types Какие типы объектов индексировать: "all" (по умолчанию, все типы из списка ниже), "base" (только Catalogs, Documents, InformationRegisters, Enums) или явный список, например ["Catalogs", "Documents", "CommonModules"]
index_forms true (по умолчанию) — индексировать формы (код и метаданные); false — полностью пропускать формы для этой конфигурации
watch true — автоматически переиндексировать при изменении файлов

Типовые конфигурации (БП, БГУ, УТ, УНФ и т.п.), используемые в основном как справочник данных, обычно достаточно индексировать с "object_types": "base", "index_forms": false — это заметно уменьшает размер базы. Для своей конфигурации и библиотек, по которым нужен полный поиск кода (БСП и т.п.), используйте "object_types": "all", "index_forms": true.

Важно: db_path не должен находиться в AppData\Local — Claude Code работает в UWP-sandbox и перенаправляет этот путь. Используйте папку Documents или другое место.

Индексирование

# Проиндексировать все конфигурации
python indexer.py

# Проиндексировать только одну конфигурацию
python indexer.py --only МояКонфигурация

# Показать статистику индекса
python indexer.py --stats

При повторном запуске данные конфигурации полностью перезаписываются.

После обновления схемы БД (например, при обновлении самого onec-config-mcp) удалите index.db и файлы index.db-wal/index.db-shm перед запуском indexer.py — старая база несовместима с новой схемой и не мигрируется автоматически.

Подключение к Claude Code

Добавьте сервер в глобальный файл ~/.claude/.mcp.json:

{
  "mcpServers": {
    "onec-config-mcp": {
      "command": "python",
      "args": ["C:/path/to/onec-config-mcp/server.py"]
    }
  }
}

Перезапустите Claude Code. Сервер запустится автоматически и будет доступен во всех проектах.

Разрешения для проекта (.claude/settings.local.json):

{
  "allowedTools": [
    "mcp__onec-config-mcp__search_code",
    "mcp__onec-config-mcp__find_object",
    "mcp__onec-config-mcp__get_module",
    "mcp__onec-config-mcp__list_objects",
    "mcp__onec-config-mcp__find_procedure",
    "mcp__onec-config-mcp__list_configs",
    "mcp__onec-config-mcp__get_object_metadata",
    "mcp__onec-config-mcp__get_procedure_body",
    "mcp__onec-config-mcp__get_module_outline",
    "mcp__onec-config-mcp__get_callers",
    "mcp__onec-config-mcp__get_callees"
  ]
}

Инструменты

search_code

Полнотекстовый поиск по BSL-коду. Возвращает сниппеты с контекстом.

query       — текст или FTS5-выражение ("ПроверитьПрава" OR "CheckRights")
config_name — фильтр по конфигурации (опционально)
obj_type    — фильтр по типу объекта: CommonModules, Catalogs, Documents, ...
limit       — максимум результатов (по умолчанию 20)

find_procedure

Найти определение процедуры или функции по имени. Возвращает файл и номер строки.

proc_name   — имя процедуры/функции
config_name — конфигурация (опционально)

get_module

Получить полный код BSL-модуля. При размере >200 КБ — усекается с предупреждением.

obj_name    — имя объекта (например, Доки_Авторизация)
config_name — конфигурация (опционально)
module_type — Module / ObjectModule / ManagerModule / FormModule
form_name   — имя формы (при module_type=FormModule)

find_object

Полнотекстовый поиск по именам объектов метаданных. Возвращает xml_summary с синонимом и флагами.

list_objects

Список объектов по типу и/или конфигурации.

get_object_metadata

Метаданные объекта: xml_summary и список модулей с количеством строк.

list_configs

Показать проиндексированные конфигурации с датой и статистикой.

get_procedure_body

Получить исходный текст тела процедуры/функции по точному имени, без чтения всего модуля.

proc_name   — имя процедуры/функции
config_name — конфигурация (опционально)

get_module_outline

Карта модуля: список процедур/функций (имя, тип, признак Экспорт, номер строки) без вывода исходника.

obj_name    — имя объекта
config_name — конфигурация (опционально)
module_type — Module / ObjectModule / ManagerModule / FormModule
form_name   — имя формы (при module_type=FormModule)

get_callers

Найти все места вызова процедуры/функции — кто её вызывает.

proc_name   — имя процедуры/функции
config_name — конфигурация (опционально)

get_callees

Найти, какие процедуры/функции вызываются внутри заданной. Эвристика на regex — не различает вызовы методов объекта (Объект.Метод()) от вызовов глобальных функций модуля.

proc_name   — имя процедуры/функции
config_name — конфигурация (опционально)

Структура проекта

onec-config-mcp/
  server.py       # MCP-сервер (stdio transport) + watchdog
  indexer.py      # CLI для индексирования
  db.py           # Схема SQLite, FTS5-триггеры
  parser.py       # Парсер XML+BSL
  tools.py        # Обработчики MCP-инструментов
  config.json     # Конфигурация путей (не коммитить!)
  pyproject.toml  # Зависимости

Поддерживаемые типы объектов

CommonModules, Catalogs, Documents, DataProcessors, Reports, InformationRegisters, AccumulationRegisters, AccountingRegisters, BusinessProcesses, Tasks, ExchangePlans, CommonForms, Constants, Enums, ChartOfCharacteristicTypes, ChartOfAccounts, ScheduledJobs

Логирование

Сервер пишет лог в server.log рядом с server.py. Там же отображаются события watchdog и ошибки переиндексации.

# Следить за логом в реальном времени
Get-Content server.log -Wait -Tail 20

Лицензия

MIT

from github.com/ASGDeveloper/onec-config-mcp

Установка Onec Config

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/ASGDeveloper/onec-config-mcp

FAQ

Onec Config MCP бесплатный?

Да, Onec Config MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Onec Config?

Нет, Onec Config работает без API-ключей и переменных окружения.

Onec Config — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Onec Config в Claude Desktop, Claude Code или Cursor?

Открой Onec Config на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Onec Config with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development