Model Context Protocol (MCP) — сервер на стороне 1С:Предприятие, предоставляющий 91 инструмент для взаимодействия AI-ассистентов с базой данных 1С.
Протокол: JSON-RPC 2.0 (спецификация MCP)
Часть платформы INFATON — цифровые двойники и AI-агенты над 1С:ERP. Компания: infaton.ru · Продукт: chatmcp.ru (ChatMCP — чат-двойник над вашей 1С:ERP).
INFATON MCP Server — движок доступа AI к 1С в продуктах платформы INFATON:
- eventcode.ru — платформа заказной разработки: AI-агенты ведут проекты и работают с 1С:ERP заказчика через этот MCP-сервер.
- chatmcp.ru — ChatMCP, цифровой двойник над 1С:ERP: чат-интерфейс и рабочие места (АРМ) поверх этого MCP-сервера.
Сервер открыт (MIT) — используйте в своём продукте, см. Быстрый старт.
| Файл | Описание |
|---|---|
Module.bsl |
Модуль HTTP-сервиса MCP — основной код, 91 инструмент (7 055 строк) |
index.mjs |
Node.js stdio-обёртка для MCP-клиентов (Claude Desktop, Cursor и др.) |
package.json |
npm-манифест для публикации и запуска через npx |
glama.json |
Манифест для каталога Glama.ai |
INFATON_MCP.cfe |
Расширение конфигурации 1С v6.0.2 (бинарный пакет) |
HOW_TO_BUILD_CFE.md |
Инструкция по сборке и установке .cfe |
EXAMPLES.md |
Примеры агентских сценариев (7 кейсов) |
CHANGELOG.md |
История версий |
59 → 91 инструмент (+32): отчёты СКД под типовые конфигурации 1С:ERP (run_report, get_report_options…), аудит прав (get_rights_for_user, export_role_matrix), пользовательские настройки (set_constant, set_functional_option, set_user_setting…), снимки и сравнение (snapshot_document_state, compare_snapshots, document_chain), бизнес-данные ЕРП (get_stock_by_warehouse, get_unfulfilled_order_lines, get_reservation_status). Плюс запись ссылочных полей и перечислений (резолв _guid для шапки И строк табличных частей). Полный перечень — в CHANGELOG.md.
| # | Инструмент | Баг | Исправление |
|---|---|---|---|
| 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 |
| # | Инструмент | Назначение |
|---|---|---|
| 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 инструмент, группы А–З). В v6.0.2 добавлены ещё 32 (отчёты/СКД, права, пользовательские настройки, снимки, бизнес-данные 1С:ERP) — полный список из 91 в
Module.bslи CHANGELOG.md.
| # | Инструмент | Описание |
|---|---|---|
| 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 |
Поиск по метаданным (по имени/синониму) |
| # | Инструмент | Описание |
|---|---|---|
| 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 |
Список документов с фильтрами по дате/номеру |
| # | Инструмент | Описание |
|---|---|---|
| 16 | create_object |
Создание нового объекта (справочник/документ) |
| 17 | update_object |
Изменение реквизитов объекта |
| 18 | delete_object |
Пометка на удаление |
| 19 | post_document |
Проведение документа |
| 20 | unpost_document |
Отмена проведения |
| 21 | copy_object |
Копирование объекта |
| 22 | set_attribute |
Изменение отдельного реквизита |
| # | Инструмент | Описание |
|---|---|---|
| 23 | execute_code |
Выполнение произвольного кода на встроенном языке |
| 24 | evaluate_expression |
Вычисление выражения и возврат результата |
| 25 | get_module_text |
Получение текста модуля объекта |
| 26 | generate_report |
Формирование отчёта (СКД) |
| # | Инструмент | Описание |
|---|---|---|
| 27 | get_active_users |
Список активных пользователей и сеансов |
| 28 | get_event_log |
Журнал регистрации с фильтрами |
| 29 | get_locks |
Текущие блокировки данных |
| 30 | get_server_info |
Информация о платформе, конфигурации, сервере |
| 31 | check_references |
Проверка ссылочной целостности |
| 32 | run_scheduled_job |
Запуск регламентного задания |
| # | Инструмент | Описание |
|---|---|---|
| 33 | exchange_execute |
Выполнение обмена данными |
| 34 | get_exchange_log |
Журнал обмена |
| 35 | import_data |
Импорт данных из JSON |
| # | Инструмент | Описание |
|---|---|---|
| 36 | fill_on_basis |
Заполнение документа на основании другого |
| 37 | write_register_records |
Запись набора записей регистра |
| 38 | update_tabular_section |
Обновление табличной части объекта |
| 39 | subscribe_events |
Подписка на события журнала |
| 40 | execute_batch |
Пакетное выполнение инструментов |
| 41 | get_changes_since |
Получение изменений с метки времени (CDC) |
| # | Инструмент | Описание |
|---|---|---|
| 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) |
{
"mcpServers": {
"1c-erp": {
"command": "npx",
"args": ["infaton-mcp"],
"env": {
"ONEC_URL": "https://your-server/base/hs/mcp/",
"ONEC_USER": "Username",
"ONEC_PASSWORD": "Password"
}
}
}
}{
"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"
}
}
}
}- Откройте Конфигуратор базы 1С
- Конфигурация → Расширения конфигурации → Добавить
- Выберите файл
INFATON_MCP.cfe(или соберите по инструкции изModule.bsl) - Обновите конфигурацию БД (F7)
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" }
}
}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 | Первый публичный релиз |
| Требование | Почему важно |
|---|---|
| HTTPS | Basic Auth передаёт логин/пароль в base64. По HTTP они видны любому в сети |
| Отдельный пользователь 1С | Создайте пользователя mcp_agent с минимальными правами — только нужные объекты |
ONEC_ALLOWED_TOOLS |
Ограничьте список инструментов для конкретного сценария |
Следующие инструменты требуют явного разрешения и должны использоваться осознанно:
| Инструмент | Риск | Рекомендация |
|---|---|---|
execute_code |
Выполняет произвольный BSL-код в привилегированном режиме | Запрещать через ONEC_ALLOWED_TOOLS если не нужен |
delete_object |
Помечает объекты на удаление | Запрещать в аналитических сценариях |
run_scheduled_job |
Запускает регламентные задания | Запрещать если не нужен |
import_data |
Массовое создание/изменение объектов | Запрещать в read-only сценариях |
post_document / unpost_document |
Изменяет проведение документов и движения по регистрам | Только для операционных сценариев |
ONEC_ALLOWED_TOOLS="get_metadata_tree,execute_query,get_object_by_ref,get_list,find_by_code,find_by_name,get_register_records,get_document_list,get_server_info,get_event_log,get_balance,get_register_totals,get_accounting_entries,get_related_documents,get_form_structure,get_rights,find_duplicates"Подробнее — см. EXAMPLES.md.
MIT © 2024-2026 INFATON — Привалов С.Ю.
Платформа: infaton.ru · Продукт: chatmcp.ru (ChatMCP).
Подробная инструкция по сборке .cfe — см. HOW_TO_BUILD_CFE.md
Примеры агентских сценариев — см. EXAMPLES.md
История изменений — см. CHANGELOG.md
Статья на портале Инфостарт: INFATON MCP Server v2.1 — 51 инструмент для AI-интеграции с 1С:Предприятие