Rules MCP: разбор правил обмена 1С
rules-mcp
MCP-сервер разбирает правила обмена 1С формата Конвертация данных 2.0 и отвечает на вопросы о них в чате, без модели в самом разборе
Низкий риск
Низкий уровень ставим, когда запись в основном дает агенту инструкции и справочные материалы.
Почему такой уровень
- Только читает локальные файлы правил обмена, не подключается к боевой базе
- Инструмент перечитывания правил защищен паролем
Установка
В терминале, через SkillFoxx CLI
npx skillfoxx add mcp/rules-mcpОпределит агенты на машине, проверит риск и зафиксирует версию.
Другие способы установки
Собрано автоматически, проверьте перед установкой.
Выполните в терминале
claude mcp add --transport http rules-mcp http://rules-mcp:8000/mcpИли добавьте в файл .mcp.json, в проекте
{
"mcpServers": {
"rules-mcp": {
"type": "http",
"url": "http://rules-mcp:8000/mcp"
}
}
}Если файл уже есть, добавьте сервер внутрь ключа mcpServers.
Ключи и настройки
GITLAB_REPOнеобязательная- Адрес репозитория с правилами по HTTPS. Пусто — работать с тем, что уже лежит в RULES_DIR
GITLAB_TOKENсекрет, необязательная- Токен на чтение репозитория
GITLAB_BRANCHнеобязательная- Ветка с правилами. Пусто — ветка по умолчанию
RULES_SUBDIRнеобязательная- Подкаталог внутри репозитория, если папки направлений лежат не в корне
REFRESH_INTERVALнеобязательная- Период опроса, секунды. 0 — не опрашивать
REFRESH_PASSWORDсекрет, необязательная- Пароль для refresh_rules. Не задан — команда недоступна
RULES_DIRнеобязательная- Каталог с направлениями. При работе из репозитория клон кладётся в /data/checkout
HOSTнеобязательная- Адрес прослушивания
PORTнеобязательная- Порт прослушивания
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Кнопка откроет агент и предложит добавить сервер. Если ничего не произошло, скопируйте конфиг ниже.
Добавьте в файл ~/.cursor/mcp.json, для всех проектов
{
"mcpServers": {
"rules-mcp": {
"url": "http://rules-mcp:8000/mcp"
}
}
}Если файл уже есть, добавьте сервер внутрь ключа mcpServers. Для одного проекта тот же блок кладут в .cursor/mcp.json.
Ключи и настройки
GITLAB_REPOнеобязательная- Адрес репозитория с правилами по HTTPS. Пусто — работать с тем, что уже лежит в RULES_DIR
GITLAB_TOKENсекрет, необязательная- Токен на чтение репозитория
GITLAB_BRANCHнеобязательная- Ветка с правилами. Пусто — ветка по умолчанию
RULES_SUBDIRнеобязательная- Подкаталог внутри репозитория, если папки направлений лежат не в корне
REFRESH_INTERVALнеобязательная- Период опроса, секунды. 0 — не опрашивать
REFRESH_PASSWORDсекрет, необязательная- Пароль для refresh_rules. Не задан — команда недоступна
RULES_DIRнеобязательная- Каталог с направлениями. При работе из репозитория клон кладётся в /data/checkout
HOSTнеобязательная- Адрес прослушивания
PORTнеобязательная- Порт прослушивания
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Кнопка откроет агент и предложит добавить сервер. Если ничего не произошло, скопируйте конфиг ниже.
Выполните в терминале
code --add-mcp '{"name":"rules-mcp","type":"http","url":"http://rules-mcp:8000/mcp"}'Или добавьте в файл .vscode/mcp.json, в проекте
{
"servers": {
"rules-mcp": {
"type": "http",
"url": "http://rules-mcp:8000/mcp"
}
}
}Если файл уже есть, добавьте сервер внутрь ключа servers.
Ключи и настройки
GITLAB_REPOнеобязательная- Адрес репозитория с правилами по HTTPS. Пусто — работать с тем, что уже лежит в RULES_DIR
GITLAB_TOKENсекрет, необязательная- Токен на чтение репозитория
GITLAB_BRANCHнеобязательная- Ветка с правилами. Пусто — ветка по умолчанию
RULES_SUBDIRнеобязательная- Подкаталог внутри репозитория, если папки направлений лежат не в корне
REFRESH_INTERVALнеобязательная- Период опроса, секунды. 0 — не опрашивать
REFRESH_PASSWORDсекрет, необязательная- Пароль для refresh_rules. Не задан — команда недоступна
RULES_DIRнеобязательная- Каталог с направлениями. При работе из репозитория клон кладётся в /data/checkout
HOSTнеобязательная- Адрес прослушивания
PORTнеобязательная- Порт прослушивания
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Выполните в терминале
codex mcp add rules-mcp --url http://rules-mcp:8000/mcpИли добавьте в файл ~/.codex/config.toml, для всех проектов
[mcp_servers.rules-mcp]
url = "http://rules-mcp:8000/mcp"Если файл уже есть, допишите блок в конец.
Ключи и настройки
GITLAB_REPOнеобязательная- Адрес репозитория с правилами по HTTPS. Пусто — работать с тем, что уже лежит в RULES_DIR
GITLAB_TOKENсекрет, необязательная- Токен на чтение репозитория
GITLAB_BRANCHнеобязательная- Ветка с правилами. Пусто — ветка по умолчанию
RULES_SUBDIRнеобязательная- Подкаталог внутри репозитория, если папки направлений лежат не в корне
REFRESH_INTERVALнеобязательная- Период опроса, секунды. 0 — не опрашивать
REFRESH_PASSWORDсекрет, необязательная- Пароль для refresh_rules. Не задан — команда недоступна
RULES_DIRнеобязательная- Каталог с направлениями. При работе из репозитория клон кладётся в /data/checkout
HOSTнеобязательная- Адрес прослушивания
PORTнеобязательная- Порт прослушивания
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Выполните в терминале
gemini mcp add -s user -t http rules-mcp http://rules-mcp:8000/mcpИли добавьте в файл ~/.gemini/settings.json, для всех проектов
{
"mcpServers": {
"rules-mcp": {
"httpUrl": "http://rules-mcp:8000/mcp"
}
}
}Если файл уже есть, добавьте сервер внутрь ключа mcpServers.
Ключи и настройки
GITLAB_REPOнеобязательная- Адрес репозитория с правилами по HTTPS. Пусто — работать с тем, что уже лежит в RULES_DIR
GITLAB_TOKENсекрет, необязательная- Токен на чтение репозитория
GITLAB_BRANCHнеобязательная- Ветка с правилами. Пусто — ветка по умолчанию
RULES_SUBDIRнеобязательная- Подкаталог внутри репозитория, если папки направлений лежат не в корне
REFRESH_INTERVALнеобязательная- Период опроса, секунды. 0 — не опрашивать
REFRESH_PASSWORDсекрет, необязательная- Пароль для refresh_rules. Не задан — команда недоступна
RULES_DIRнеобязательная- Каталог с направлениями. При работе из репозитория клон кладётся в /data/checkout
HOSTнеобязательная- Адрес прослушивания
PORTнеобязательная- Порт прослушивания
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Добавьте в файл ~/.config/devin/mcp_config.json, для всех проектов
{
"mcpServers": {
"rules-mcp": {
"serverUrl": "http://rules-mcp:8000/mcp"
}
}
}Если файл уже есть, добавьте сервер внутрь ключа mcpServers. В легаси Cascade конфиг MCP лежит в ~/.codeium/windsurf/mcp_config.json.
Ключи и настройки
GITLAB_REPOнеобязательная- Адрес репозитория с правилами по HTTPS. Пусто — работать с тем, что уже лежит в RULES_DIR
GITLAB_TOKENсекрет, необязательная- Токен на чтение репозитория
GITLAB_BRANCHнеобязательная- Ветка с правилами. Пусто — ветка по умолчанию
RULES_SUBDIRнеобязательная- Подкаталог внутри репозитория, если папки направлений лежат не в корне
REFRESH_INTERVALнеобязательная- Период опроса, секунды. 0 — не опрашивать
REFRESH_PASSWORDсекрет, необязательная- Пароль для refresh_rules. Не задан — команда недоступна
RULES_DIRнеобязательная- Каталог с направлениями. При работе из репозитория клон кладётся в /data/checkout
HOSTнеобязательная- Адрес прослушивания
PORTнеобязательная- Порт прослушивания
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Бывший Windsurf.
Добавьте в файл cline_mcp_settings.json, для всех проектов
{
"mcpServers": {
"rules-mcp": {
"type": "streamableHttp",
"url": "http://rules-mcp:8000/mcp"
}
}
}Если файл уже есть, добавьте сервер внутрь ключа mcpServers. Файл настроек открывается в Cline: вкладка MCP Servers, кнопка Configure MCP Servers.
Ключи и настройки
GITLAB_REPOнеобязательная- Адрес репозитория с правилами по HTTPS. Пусто — работать с тем, что уже лежит в RULES_DIR
GITLAB_TOKENсекрет, необязательная- Токен на чтение репозитория
GITLAB_BRANCHнеобязательная- Ветка с правилами. Пусто — ветка по умолчанию
RULES_SUBDIRнеобязательная- Подкаталог внутри репозитория, если папки направлений лежат не в корне
REFRESH_INTERVALнеобязательная- Период опроса, секунды. 0 — не опрашивать
REFRESH_PASSWORDсекрет, необязательная- Пароль для refresh_rules. Не задан — команда недоступна
RULES_DIRнеобязательная- Каталог с направлениями. При работе из репозитория клон кладётся в /data/checkout
HOSTнеобязательная- Адрес прослушивания
PORTнеобязательная- Порт прослушивания
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Добавьте в файл .roo/mcp.json, в проекте
{
"mcpServers": {
"rules-mcp": {
"type": "streamable-http",
"url": "http://rules-mcp:8000/mcp"
}
}
}Если файл уже есть, добавьте сервер внутрь ключа mcpServers.
Ключи и настройки
GITLAB_REPOнеобязательная- Адрес репозитория с правилами по HTTPS. Пусто — работать с тем, что уже лежит в RULES_DIR
GITLAB_TOKENсекрет, необязательная- Токен на чтение репозитория
GITLAB_BRANCHнеобязательная- Ветка с правилами. Пусто — ветка по умолчанию
RULES_SUBDIRнеобязательная- Подкаталог внутри репозитория, если папки направлений лежат не в корне
REFRESH_INTERVALнеобязательная- Период опроса, секунды. 0 — не опрашивать
REFRESH_PASSWORDсекрет, необязательная- Пароль для refresh_rules. Не задан — команда недоступна
RULES_DIRнеобязательная- Каталог с направлениями. При работе из репозитория клон кладётся в /data/checkout
HOSTнеобязательная- Адрес прослушивания
PORTнеобязательная- Порт прослушивания
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Форк Roo Code, папки .roo те же.
Добавьте в файл opencode.json, в проекте
{
"mcp": {
"rules-mcp": {
"type": "remote",
"url": "http://rules-mcp:8000/mcp"
}
}
}Если файл уже есть, добавьте сервер внутрь ключа mcp.
Ключи и настройки
GITLAB_REPOнеобязательная- Адрес репозитория с правилами по HTTPS. Пусто — работать с тем, что уже лежит в RULES_DIR
GITLAB_TOKENсекрет, необязательная- Токен на чтение репозитория
GITLAB_BRANCHнеобязательная- Ветка с правилами. Пусто — ветка по умолчанию
RULES_SUBDIRнеобязательная- Подкаталог внутри репозитория, если папки направлений лежат не в корне
REFRESH_INTERVALнеобязательная- Период опроса, секунды. 0 — не опрашивать
REFRESH_PASSWORDсекрет, необязательная- Пароль для refresh_rules. Не задан — команда недоступна
RULES_DIRнеобязательная- Каталог с направлениями. При работе из репозитория клон кладётся в /data/checkout
HOSTнеобязательная- Адрес прослушивания
PORTнеобязательная- Порт прослушивания
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Добавьте в файл ~/.config/zed/settings.json, для всех проектов
{
"context_servers": {
"rules-mcp": {
"url": "http://rules-mcp:8000/mcp"
}
}
}Если файл уже есть, добавьте сервер внутрь ключа context_servers.
Ключи и настройки
GITLAB_REPOнеобязательная- Адрес репозитория с правилами по HTTPS. Пусто — работать с тем, что уже лежит в RULES_DIR
GITLAB_TOKENсекрет, необязательная- Токен на чтение репозитория
GITLAB_BRANCHнеобязательная- Ветка с правилами. Пусто — ветка по умолчанию
RULES_SUBDIRнеобязательная- Подкаталог внутри репозитория, если папки направлений лежат не в корне
REFRESH_INTERVALнеобязательная- Период опроса, секунды. 0 — не опрашивать
REFRESH_PASSWORDсекрет, необязательная- Пароль для refresh_rules. Не задан — команда недоступна
RULES_DIRнеобязательная- Каталог с направлениями. При работе из репозитория клон кладётся в /data/checkout
HOSTнеобязательная- Адрес прослушивания
PORTнеобязательная- Порт прослушивания
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Разложи выгрузку правил обмена КД 2.0 по папкам направлений в корне репозитория, настрой переменные окружения из .env.example, запусти сервер командой docker compose up или напрямую server.py, и подключи rules-mcp к Open WebUI.
Другие способы из описания автора
docker compose up -dЗапуск сервера в Docker после настройки .env по примеру .env.example.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер один раз разбирает многомегабайтные XML-файлы правил обмена (ExchangeRules.xml и RegistrationRules.xml формата КД 2.0) в индекс в памяти обычной программой, без участия модели, и токены тратятся только на ответы. Восемь инструментов отвечают на вопросы: обзор направлений обмена, трассировка документа от регистрации до приемника, карточка правила конвертации целиком, поиск по коду или тексту, полный текст обработчика правила или реквизита постранично с номерами строк, разбор запросов обработчика на отдельные запросы и временные таблицы, требования правил к реквизитам приемника для сверки с конфигурацией. Инструменты понимают и общие алгоритмы, которые правила вызывают через Выполнить(Алгоритмы.Имя), и обработчики отдельных реквизитов.
Для кого. Для 1С-разработчиков, которые разбирают или отлаживают обмены на Конвертации данных 2.0 и хотят задавать вопросы о правилах прямо в чате.
Подходит, если
- Нужно быстро понять, что делает конкретное правило конвертации, не открывая XML руками
- Нужна трассировка, где и как обрабатывается документ при обмене
- Нужна сверка того, что правила ожидают от конфигурации приемника, с реальными реквизитами
Не подходит, если
- Обмен построен на Конвертации данных 3 (EnterpriseData): сервер поддерживает только КД 2.0
- Нужен готовый MCP-сервер для чтения самой конфигурации 1С: rules-mcp работает только с файлами правил обмена
Пример запроса к агенту
Покажи, что происходит с документом РеализацияТоваровУслуг при обмене УПП в ERP, и где стоит вызов каждого правилаОграничения
Поддерживается только Конвертация данных 2.0, EnterpriseData (КД 3) не читается. Правила должны лежать локально в определенной структуре папок по направлению обмена. Файл CorrespondentExchangeRules.xml не читается. Индекс живет в памяти без базы данных, инструмент refresh_rules для перечитывания защищен паролем.
Как отключить. Остановите контейнер или процесс сервера и удалите запись rules-mcp из настроек MCP-клиента Open WebUI.
MCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
| Переменные окружения | |
|---|---|
| RULES_REFRESH_PASSWORD секрет | Пароль для инструмента refresh_rules, который перечитывает правила из репозитория. |
Проверка безопасности
- Только читает локальные файлы правил обмена, не подключается к боевой базе
- Инструмент перечитывания правил защищен паролем
Коротко о README
README объясняет проблему: правила обмена это десятки мегабайт XML со встроенным кодом, читать их вслепую или целиком нельзя. Сервер разбирает их один раз в индекс и отвечает точечно. Перечислены восемь инструментов с назначением, структура папок для хранения правил по направлениям обмена и идея связки с отдельным сервером, читающим конфигурации 1С, для автоматической сверки.
Частые вопросы
Участвует ли языковая модель в разборе правил?
Нет, разбор XML делает обычная программа, токены модели тратятся только на то, что инструмент вернул в чат.
Можно ли сверить правила с реальной конфигурацией?
Да, если рядом подключен сервер, читающий конфигурации 1С, например rlm-tools-bsl, модель сравнивает данные из rules-mcp с реальными реквизитами.
Похожие
Набор скиллов, который задает агенту процесс разработки: уточнение задачи, план, TDD, субагенты и ревью кода
Скиллы Мэтта Покока для инженеров
Skills For Real Engineers
Небольшие компонуемые скиллы для инженерной работы с агентом: интервью по плану, TDD, диагностика багов, ревью и архитектура
Набор GitHub для разработки от спецификации: CLI specify ставит в проект команды и скиллы для агента, от принципов до реализации
Референсные MCP-серверы
Model Context Protocol servers
Официальные референсные MCP-серверы: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time и Everything