INFATON MCP Server для 1С:Предприятие

Model Context Protocol (MCP) — сервер на стороне 1С:Предприятие, предоставляющий 51 инструмент для взаимодействия AI-ассистентов с базой данных 1С.
Протокол: JSON-RPC 2.0 (спецификация MCP)
📋 Состав репозитория
| Файл | Описание |
|---|
Module.bsl | Модуль HTTP-сервиса MCP — основной код, 51 инструмент (4 263 строки) |
index.mjs | Node.js stdio-обёртка для MCP-клиентов (Claude Desktop, Cursor и др.) |
glama.json | Манифест для каталога Glama.ai |
INFATON_MCP.cfe | Расширение конфигурации 1С v2.0.0 (бинарный пакет) |
HOW_TO_BUILD_CFE.md | Инструкция по сборке и установке .cfe |
🆕 Что нового в v2.1.0
Исправления (9 патчей)
| # | Инструмент | Баг | Исправление |
|---|
| P1 | get_list | Отсутствие ПЕРВЫЕ N — возвращал ВСЕ записи | Добавлен ПЕРВЫЕ с параметром limit (по умолчанию 100) |
| P2 | get_document_list | Фильтр по дате — Дата >= без параметра | Добавлен Запрос.УстановитьПараметр для дат |
| P3 | get_object_by_ref | Пустая ссылка → невнятная ошибка платформы | Добавлена проверка Если НЕ ЗначениеЗаполнено(Ссылка) |
| P4 | get_active_users / get_locks | Прямой обход коллекции сеансов → ошибка на сервере | Переход на МассивСеансов = ПолучитьСеансыИнформационнойБазы() |
| P5 | get_event_log | Дата передавалась строкой + поле «Метаданные» вместо представления | ПреобразоватьДату() + .МетаданныеПредставление |
| P6 | ПреобразоватьДату | Не обрабатывал 2026-05-14, 14.05.2026, 20260514 | Полная перезапись: ISO 8601 + 3 формата |
| P7 | fill_on_basis | Объект.Заполнить() → верный метод ЗаполнитьНаОсновании() | Исправлен вызов метода |
| P8 | execute_batch | Вложенный execute_batch → бесконечная рекурсия | Добавлен guard-флаг _batch_depth |
| P9 | — | Версия оставалась 2.0.0 | Обновлена до 2.1.0 |
Новые инструменты (10 штук, группа З)
| # | Инструмент | Назначение |
|---|
| 42 | get_balance | Остатки и обороты регистра бухгалтерии (любой план счетов) |
| 43 | get_register_totals | Итоги регистров накопления (остатки/обороты) |
| 44 | get_accounting_entries | Бухгалтерские проводки документа (Дт, Кт, сумма) |
| 45 | get_related_documents | Цепочка связанных документов (ввод на основании) |
| 46 | validate_document | Проверка заполнения документа без проведения |
| 47 | get_form_structure | Структура управляемой формы (реквизиты, команды) |
| 48 | get_rights | Права доступа текущего пользователя к объекту |
| 49 | find_duplicates | Поиск дублей в справочниках по реквизитам |
| 50 | get_print_form | Печатные формы через подсистему УправлениеПечатью |
| 51 | get_configuration_extensions | Список расширений конфигурации (CFE) |
🛠 Полный каталог: 51 инструмент
Группа А — Метаданные (8)
| # | Инструмент | Описание |
|---|
| 1 | get_metadata_tree | Дерево объектов метаданных конфигурации |
| 2 | get_object_metadata | Полная структура объекта (реквизиты, ТЧ, модули) |
| 3 | get_object_attributes | Список реквизитов объекта |
| 4 | get_object_tabular_sections | Табличные части объекта |
| 5 | get_enum_values | Значения перечисления |
| 6 | get_register_dimensions | Измерения, ресурсы и реквизиты регистра |
| 7 | get_document_movements | Движения документа по регистрам |
| 8 | search_metadata | Поиск по метаданным (по имени/синониму) |
Группа Б — Чтение данных (7)
| # | Инструмент | Описание |
|---|
| 9 | execute_query | Выполнение произвольного запроса 1С |
| 10 | get_object_by_ref | Получение объекта по ссылке/GUID |
| 11 | get_list | Список элементов справочника/документа с фильтрами |
| 12 | find_by_code | Поиск элемента по коду |
| 13 | find_by_name | Поиск элемента по наименованию |
| 14 | get_register_records | Записи регистра с фильтрами |
| 15 | get_document_list | Список документов с фильтрами по дате/номеру |
Группа В — CRUD (7)
| # | Инструмент | Описание |
|---|
| 16 | create_object | Создание нового объекта (справочник/документ) |
| 17 | update_object | Изменение реквизитов объекта |
| 18 | delete_object | Пометка на удаление |
| 19 | post_document | Проведение документа |
| 20 | unpost_document | Отмена проведения |
| 21 | copy_object | Копирование объекта |
| 22 | set_attribute | Изменение отдельного реквизита |
Группа Г — Код и отчёты (4)
| # | Инструмент | Описание |
|---|
| 23 | execute_code | Выполнение произвольного кода на встроенном языке |
| 24 | evaluate_expression | Вычисление выражения и возврат результата |
| 25 | get_module_text | Получение текста модуля объекта |
| 26 | generate_report | Формирование отчёта (СКД) |
Группа Д — Администрирование (6)
| # | Инструмент | Описание |
|---|
| 27 | get_active_users | Список активных пользователей и сеансов |
| 28 | get_event_log | Журнал регистрации с фильтрами |
| 29 | get_locks | Текущие блокировки данных |
| 30 | get_server_info | Информация о платформе, конфигурации, сервере |
| 31 | check_references | Проверка ссылочной целостности |
| 32 | run_scheduled_job | Запуск регламентного задания |
Группа Е — Интеграция (3)
| # | Инструмент | Описание |
|---|
| 33 | exchange_execute | Выполнение обмена данными |
| 34 | get_exchange_log | Журнал обмена |
| 35 | import_data | Импорт данных из JSON |
Группа Ж — Расширенные операции v2.0 (6)
| # | Инструмент | Описание |
|---|
| 36 | fill_on_basis | Заполнение документа на основании другого |
| 37 | write_register_records | Запись набора записей регистра |
| 38 | update_tabular_section | Обновление табличной части объекта |
| 39 | subscribe_events | Подписка на события журнала |
| 40 | execute_batch | Пакетное выполнение инструментов |
| 41 | get_changes_since | Получение изменений с метки времени (CDC) |
Группа З — Бухгалтерия, аудит, формы v2.1 (10) 🆕
| # | Инструмент | Описание |
|---|
| 42 | get_balance | Остатки/обороты регистра бухгалтерии |
| 43 | get_register_totals | Итоги регистров накопления |
| 44 | get_accounting_entries | Проводки документа (Дт/Кт/Сумма) |
| 45 | get_related_documents | Связанные документы (цепочка оснований) |
| 46 | validate_document | Проверка заполнения без проведения |
| 47 | get_form_structure | Структура управляемой формы |
| 48 | get_rights | Права доступа текущего пользователя |
| 49 | find_duplicates | Поиск дублей по реквизитам |
| 50 | get_print_form | Печатные формы через УправлениеПечатью |
| 51 | get_configuration_extensions | Список расширений конфигурации (CFE) |
🚀 Быстрый старт
Вариант 1: Через Claude Desktop / Cursor (stdio)
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"1c-erp": {
"command": "node",
"args": ["/path/to/MCP35/index.mjs"],
"env": {
"ONEC_URL": "https://your-server/base/hs/mcp/",
"ONEC_USER": "Username",
"ONEC_PASSWORD": "Password"
}
}
}
}
Вариант 2: Прямой HTTP-вызов
1. Установите расширение
- Откройте Конфигуратор базы 1С
- Конфигурация → Расширения конфигурации → Добавить
- Выберите файл
INFATON_MCP.cfe (или соберите по инструкции из Module.bsl)
- Обновите конфигурацию БД (F7)
2. Проверьте подключение
curl -u 'Логин:Пароль' -X POST \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"initialize","id":1}' \
https://ваш-сервер/база/hs/mcp/
Ожидаемый ответ:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"protocolVersion": "2024-11-05",
"capabilities": { "tools": {} },
"serverInfo": { "name": "infaton-1c-mcp", "version": "2.1.0" }
}
}
3. Вызовите инструмент
curl -u 'Логин:Пароль' -X POST \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"tools/call","id":2,"params":{"name":"get_balance","arguments":{"account_code":"41.01","period_from":"2026-01-01T00:00:00","period_to":"2026-03-31T23:59:59"}}}' \
https://ваш-сервер/база/hs/mcp/
📐 Архитектура
┌─────────────────────────┐
│ AI Assistant │ Claude / GPT / Qwen / Gemini / ...
│ (MCP Client) │
└────────┬────────────────┘
│ stdio (JSON-RPC 2.0)
▼
┌─────────────────────────┐
│ index.mjs │ Node.js stdio → HTTP proxy
│ (MCP Transport) │
└────────┬────────────────┘
│ HTTP POST (Basic Auth)
▼
┌─────────────────────────┐
│ HTTP-сервис /hs/mcp/ │ Расширение INFATON_MCP.cfe
│ Module.bsl │ 51 инструмент (4 263 строки)
│ (MCP Server) │
└────────┬────────────────┘
│ Встроенный язык 1С
▼
┌─────────────────────────┐
│ База 1С:Предприятие │ ERP / УПП / Бухгалтерия / УТ / КА
│ Данные, метаданные │
└─────────────────────────┘
📝 Совместимость
| Параметр | Значение |
|---|
| Платформа 1С | 8.3.20+ (тестировалось на 8.3.27.1989) |
| Конфигурации | ERP 2.5, УПП 1.3, Бухгалтерия 3.0, УТ 11, КА 2 |
| MCP Протокол | 2024-11-05 |
| Транспорт | HTTP (Basic Auth), stdio (через index.mjs) |
| Node.js | 18+ (для stdio-обёртки) |
📊 История версий
| Версия | Дата | Инструментов | Изменения |
|---|
| v2.1.0 | 2026-05-14 | 51 | +10 инструментов (бухгалтерия, аудит, формы), 9 багфиксов |
| v2.0.0 | 2026-05-08 | 41 | +6 инструментов (batch, CDC, fill_on_basis и др.) |
| v1.0.0 | 2026-04-28 | 35 | Первый публичный релиз |
📄 Лицензия
MIT © 2024-2026 INFATON — Привалов С.Ю.
Подробная инструкция по сборке .cfe — см. HOW_TO_BUILD_CFE.md