kd2-rules-mcp
README.md
# kd-rules-mcp — правила обмена 1С через агента: «Конвертация данных» 2 и 3
[](https://github.com/egordoronchenko/kd-rules-mcp/actions/workflows/checks.yml)
MCP-сервер, с которым агент (Claude Code, Cursor и другие MCP-клиенты) читает, собирает, правит и проверяет
правила обмена для 1С. Без Конфигуратора «Конвертации данных» и ручной работы в её базе.
- **«Конвертация данных 2»** — `ПравилаОбмена` формата 2.01, правила регистрации и правила корреспондента по
структурам метаданных двух конфигураций.
- **«Конвертация данных 3»** (обмен через универсальный формат, EnterpriseData) — модуль менеджера обмена:
разбор, проверка против схемы формата и конфигурации, доработка типового обмена расширением, собственный
модуль правил с нуля или импортом типового и перенос правил регистрации с КД 2.
## Как это работает
Вы ставите задачу агенту обычным языком: «добавь справочник в обмен», «почему задваиваются контрагенты».
Агент работает с тремя источниками:
- **kd-rules-mcp** — этот сервер. Читает XML-выгрузки конфигураций (данные базы не нужны), разбирает и пишет
правила, предлагает кандидатов сопоставления и проверяет результат;
- **MCP-серверы 1С** — код и метаданные конфигураций, синтакс-чекер, справка, сервер данных базы-песочницы
([с чем работает в паре](docs/features.md#с-чем-работает-в-паре));
- **скиллы** — порядок работы и грабли обменов с доказательствами по коду БСП.
Сервер детерминированный: разбирает выгрузки и правила, предлагает кандидатов сопоставления, пишет результат и
проверяет его. Что во что конвертировать, решает агент — и показывает решения в отчёте и в диффе.
Так выглядит проверка после того, как агент добавил справочник в правила (синтетические данные из `tests/data`):
```text
rules_validate: Ошибок: 1, предупреждений: 1
ошибка structure.pko_missing ПКО «Номенклатура» / ПКС Владелец
Нет ПКО для типов СправочникСсылка.Контрагенты: значения этих типов не выгрузятся
(свойство пропускается) — создайте ПКО или укажите правило конвертации в ПКС
```
Агент создаёт недостающее ПКО, проверка проходит, `rules_diff` показывает, что изменилось. Пример целиком, от
постановки до диффа, и проверка модуля КД 3 — [usage.md, «Как это выглядит»](docs/usage.md#3-как-это-выглядит).
## Возможности
- **Метаданные** — из XML-выгрузки конфигурации и расширений или из файла MD83Exp.
- **КД 2** — чтение и запись правил без потерь, подсказки сопоставления, правка ПКО, ПКС, ПВД и других правил,
правила регистрации, черновик обратного направления.
- **КД 3** — разбор модуля менеджера обмена, сверка со схемой формата и конфигурацией, доработка типового обмена
расширением, собственный модуль правил, перенос правил и регистрации с КД 2.
- **Проверки** — от формата и структур до штатной загрузки правил БСП и живого обмена между песочницами;
боевые базы — никогда.
- **Папка обмена** — агенту видны обе базы обмена сразу.
Подробно — **[docs/features.md](docs/features.md)**.
## Установка
Пошагово, с проверкой после каждого шага и разбором ошибок — **[docs/INSTALL.md](docs/INSTALL.md)**. Поручить
установку агенту: «Установи kd-rules-mcp по
https://github.com/egordoronchenko/kd-rules-mcp/blob/main/.claude/skills/kd-install/SKILL.md».
Ниже — коротко, для тех, кто знаком с Docker и MCP.
Для готового образа нужен Docker с Compose. Для сборки из клона — ещё Python 3.12 с
[`uv`](https://docs.astral.sh/uv/); для необязательных финальных проверок — Windows с платформой 1С 8.3
([проверки](docs/checks.md)). «Конвертация данных» для работы сервера не нужна.
### Быстрый старт (образ)
Выберите выпущенный тег `vX.Y.Z` с образом в [релизах](https://github.com/egordoronchenko/kd-rules-mcp/releases)
и замените `X.Y.Z` в командах. Между первой и второй командой скопируйте примеры в `projects.yaml` и
`projects.local.yaml`, заполните свои проекты и **абсолютные пути на вашей машине**:
```powershell
'docker-compose.yml','projects.example.yaml','projects.local.example.yaml' | ForEach-Object { Invoke-WebRequest "https://raw.githubusercontent.com/egordoronchenko/kd-rules-mcp/vX.Y.Z/$_" -OutFile $_ }
docker run --rm -v "${PWD}:/work" ghcr.io/egordoronchenko/kd-rules-mcp:X.Y.Z setup
docker compose up -d
```
Скиллы — `kd-rules-mcp-skills-claude-X.Y.Z.zip` (Claude Code, Cursor, OpenCode) или
`kd-rules-mcp-skills-agents-X.Y.Z.zip` (Codex) из того же релиза. Команды для sh и cmd, проверка без клона и
откат — [INSTALL, готовый образ](docs/INSTALL.md#готовый-образ-без-клона).
### Из исходников
```powershell
git clone https://github.com/egordoronchenko/kd-rules-mcp.git
cd kd-rules-mcp
copy projects.example.yaml projects.yaml # описать свои проекты и базы
copy projects.local.example.yaml projects.local.yaml # указать папки проектов на этой машине
uv sync
uv run python scripts/setup_local.py # пишет docker-compose.override.yml и .mcp.json
docker compose up -d --build
```
Дальше — запустить `claude` в папке репозитория и одобрить серверы из `.mcp.json` (проверка — `claude mcp list`)
или включить серверы в настройках MCP Cursor. Что в каких файлах настроек, сервер для команды (`bind`, `token`),
своё расширение и правила в репозитории проекта — [INSTALL, установка из исходников](docs/INSTALL.md#установка-из-исходников-альтернатива).
### В папку проекта 1С и папку обмена
Скиллы и подключение сервера в папку проекта 1С:
```powershell
uv run python scripts/build_packs.py --dest <папка проекта> --client claude
```
Папка обмена — отдельная папка вне папок проектов баз, из которой агенту видны серверы обеих сторон:
```powershell
uv run python scripts/build_packs.py --dest <папка обмена> --side bp=<папка проекта БП> --side do=<папка проекта ДО>
```
Зачем она и что внутри — [возможности, папка обмена](docs/features.md#папка-обмена-агент-видит-обе-базы); шаги и
проверка — [INSTALL, папка обмена](docs/INSTALL.md#папка-обмена-правите-обмен-двух-баз).
### Переход с kd2-rules-mcp
Проект переименован в `kd-rules-mcp`. Если сервер уже стоял:
```powershell
git pull
uv sync
uv run python scripts/setup_local.py
docker compose up -d --build
```
Затем в проектах 1С — снова `scripts/build_packs.py --dest <папка> --client claude`. Имена инструментов MCP,
идентификаторы проверок, коды ошибок и переменные окружения `KD2_*` не менялись. Подробно —
[INSTALL, переход с kd2-rules-mcp](docs/INSTALL.md#переход-с-kd2-rules-mcp).
## Документация
| Что | Где |
|---|---|
| Возможности подробно: КД 2, КД 3, скиллы, папка обмена, с чем работает в паре | [docs/features.md](docs/features.md) |
| Установка пошагово, обновление, откат | [docs/INSTALL.md](docs/INSTALL.md) |
| Что нужно на входе, как ставить задачу агенту, ограничения | [docs/usage.md](docs/usage.md) |
| Проверки перед переносом: команды, что доказывают, ложные замечания | [docs/checks.md](docs/checks.md) |
| Рабочая папка, проекты правил, правила в репозитории проекта | [docs/workflow.md](docs/workflow.md) |
| Если что-то не так | [docs/troubleshooting.md](docs/troubleshooting.md) |
| Инструменты сервера: параметры, ответы, коды ошибок | [docs/tools.md](docs/tools.md) |
| Словарь: ПКО, ПКС, ПВД, БСП, MD83Exp и термины сервера | [docs/glossary.md](docs/glossary.md) |
| Устройство сервера | [docs/architecture.md](docs/architecture.md) |
| Разработка, тесты, план развития | [docs/development.md](docs/development.md) |
| Что изменилось по версиям | [CHANGELOG.md](CHANGELOG.md) |
## Участие
Ошибки, идеи и жалобы на обмен — в [Issues](https://github.com/egordoronchenko/kd-rules-mcp/issues): для
проблемы с обменом там есть шаблон, что приложить. Pull request не принимаются — разработка идёт в отдельном
репозитории, а этот собирается из него; предложение правки опишите в issue.
## Лицензия
MIT — см. [LICENSE](LICENSE). «1С», «1С:Предприятие», «Конвертация данных», БСП — продукты и товарные знаки
фирмы «1С»; конфигураций и поставки КД в репозитории нет (в тестовых данных — короткие выдержки формата).
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessResponsive