MCP-сервер для анализа метаданных конфигураций 1С:Предприятие 7.7.
Позволяет LLM-клиентам (например, Claude Code) получать доступ к структуре конфигурации 1С 7.7, включая справочники, документы, регистры, модули форм и исходный код модулей объектов.
- Парсинг файлов 1Cv7.MD — чтение метаданных напрямую из файлов конфигурации
- Web-интерфейс — удобная загрузка файлов через браузер
- MCP over SSE — интеграция с Claude Code и другими MCP-клиентами
- Поддерживаемые объекты:
- Справочники (Catalogs)
- Документы (Documents)
- Регистры (Registers)
- Перечисления (Enums)
- Константы (Constants)
- Отчёты/Обработки (Reports)
- Журналы документов (Document Journals)
- Виды расчётов (CalcVars)
- План счетов (Chart of Accounts)
- Глобальный модуль — извлечение исходного кода глобального модуля (стрим
TypedText/ModuleText_Number1) - Поиск по модулям — полнотекстовый поиск по коду всех модулей конфигурации
- Кеширование модулей — декомпрессированные модули кешируются для ускорения повторных вызовов
- Python 3.11+
git clone <repo-url>
cd 77MCP
pip install -e .python -m mcp_1c77Сервер запустится на http://localhost:8080.
- Откройте
http://localhost:8080в браузере - Перетащите файл
1Cv7.MDв зону загрузки - После загрузки вы увидите статистику по конфигурации
Добавьте MCP-сервер в Claude Code:
claude mcp add --transport sse 1c77-metadata http://localhost:8080/sseТеперь вы можете использовать инструменты MCP в диалоге с Claude.
| Инструмент | Описание |
|---|---|
reload_configuration |
Перезагрузить конфигурацию или загрузить другой файл |
list_objects |
Список объектов метаданных с возможностью фильтрации по типу |
get_object |
Детальная информация об объекте (реквизиты, табличные части) |
get_module |
Исходный код модуля объекта; диапазон строк или авто-усечение |
get_form |
Получить описание формы объекта |
get_global_module |
Глобальный модуль; диапазон строк или авто-усечение |
list_modules |
Список всех модулей конфигурации (включая глобальный) |
search_in_modules |
Поиск по модулям с контекстом и лимитом |
search |
Поиск по объектам (имя, синоним, комментарий) |
get_configuration_info |
Общая информация о конфигурации |
validate_field_path |
Проверить валидность пути обращения к реквизиту (напр. "Товар.Артикул") |
validate_query |
Проверить все пути обращений к реквизитам в тексте запроса/кода |
search_field |
Найти все объекты, содержащие реквизит с данным именем |
get_objects_batch |
Пакетное получение метаданных нескольких объектов за один вызов |
resolve_id |
Определить тип и имя объекта по его внутреннему ID |
В Claude Code после подключения MCP-сервера:
# Получить список всех документов
list_objects(object_type="Документ")
# Получить детальную информацию о документе
get_object(object_type="Документ", name="РасходнаяНакладная")
# Проверить путь обращения к реквизиту
validate_field_path(object_type="Документ", name="РасходнаяНакладная", path="Товар.Артикул")
# Найти все объекты с реквизитом "Сумма"
search_field(field_name="Сумма")
# Получить глобальный модуль конфигурации (авто-усечение для больших модулей)
get_global_module()
# Прочитать конкретный диапазон строк глобального модуля
get_global_module(start_line=9148, end_line=9235)
# Прочитать строки модуля объекта
get_module(object_type="Документ", name="РасходнаяНакладная", start_line=1, end_line=50)
# Список всех модулей
list_modules()
# Найти использование функции в модулях
search_in_modules(query="глТорговля")
# Поиск с контекстом (3 строки до и после совпадения)
search_in_modules(query="глТорговля", context_lines=3)
# Ограничить число совпадений
search_in_modules(query="глТорговля", limit=10)
# Определить объект по ID
resolve_id(object_id="552")
# Проверить запрос на ошибки в путях реквизитов
validate_query(query_text="SELECT Документ.Товар.Артикул FROM Документ.РасходнаяНакладная AS Документ")
docker-compose up --buildСервер будет доступен на http://localhost:8080.
| Переменная | Описание | По умолчанию |
|---|---|---|
MCP_DATA_DIR |
Директория для хранения загруженных файлов | /data |
src/mcp_1c77/
├── __init__.py
├── __main__.py # Точка входа для запуска сервера
├── server.py # MCP-сервер (FastMCP)
├── web.py # Web-интерфейс + SSE-транспорт
├── tools.py # Реализация MCP-инструментов
├── metadata.py # Парсер метаданных 1C 7.7
├── models.py # Pydantic модели данных
├── ole_reader.py # Чтение OLE-контейнеров 1C
└── bracket_parser.py # Парсер скобочного синтаксиса 1C
Файл конфигурации 1Cv7.MD 1С:Предприятие 7.7 представляет собой:
- OLE-контейнер — Compound Document Binary Format
- Внутренняя структура — текстовое представление в скобочном синтаксисе
- Кодировка — обычно Windows-1251
Парсер выполняет:
- Извлечение содержимого из OLE-контейнера
- Разбор скобочного синтаксиса в дерево объектов
- Парсинг модулей форм и объектов
- Построение связей между объектами
pytestПроект следует стандартам PEP 8.
MIT