onec-config-mcp

onec-config-mcp

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

Category
Visit Server

README

onec-config-mcp

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

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

Возможности

  • Полнотекстовый поиск по 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",
      "is_bsl": false,
      "watch": true
    },
    {
      "name": "БСП",
      "path": "C:/path/to/bsl-library",
      "is_bsl": true
    }
  ]
}
Поле Описание
db_path Путь к файлу базы данных SQLite (будет создан автоматически)
name Имя конфигурации (используется как фильтр в инструментах)
path Путь к корню выгруженной конфигурации
is_bsl true — конфигурация является BSL-библиотекой (БСП)
watch true — автоматически переиндексировать при изменении файлов

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

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

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

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

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

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

Подключение к 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"
  ]
}

Инструменты

search_code

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

query       — текст или FTS5-выражение ("ПроверитьПрава" OR "CheckRights")
config_name — фильтр по конфигурации (опционально)
obj_type    — фильтр по типу объекта: CommonModules, Catalogs, Documents, ...
is_bsl      — true/false — фильтр по BSL-библиотеке
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

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

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

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured