Onec Config
БесплатноНе проверенEnables searching through 1C:Enterprise configuration source code (XML+BSL) with full-text indexing, providing tools to find code, metadata objects, procedures,
Описание
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)
- Поддержка нескольких конфигураций одновременно
Требования
- Python 3.11+
- Выгруженные конфигурации 1С в формате XML+BSL (через Конфигуратор или 1C:EDT)
Установка
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
Установка Onec Config
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/ASGDeveloper/onec-config-mcpFAQ
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
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Onec Config with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
