Перейти к содержанию

ADR 0008: Стабильные контракты MCP и тестируемая инфраструктура

Статус: Accepted · Implemented
Дата: 2026-04-02

Связанные ADR

Вне ADR

Документ Роль
MCP-PROTOCOL.md MCP PROTOCOL

Снимок реализации

Элемент Значение
IIdeMcpActions, исполнитель MCP, контракты в MCP-PROTOCOL

Контекст

Агент взаимодействует с IDE через MCP. Внутри приложения нужны предсказуемые границы: иначе тулы дублируют бизнес-правила, а git/процессы невозможно подменить в тестах.

Решение

MCP

Контракты агента (IIdeMcpActions, DTO) — стабильные; изменения сознательно и с версионированием контракта там, где это принято в репо.

Реализация MCP делегирует в сервисы и ViewModels без дублирования одних и тех же бизнес-правил в каждом обработчике тула.

Внешний мир

Git, Process, длительные операции — за абстракцией, которую в тестах можно подменить (интерфейс или internal + InternalsVisibleTo — по ситуации).

Последствия

Новые тулы добавляются с опорой на существующие сервисы; тяжёлая логика не копируется в слой диспетчера MCP-команд.

Отклонённые альтернативы

  • Делать каждый тул самодостаточным с прямым доступом к файловой системе и процессам — отклонено как неподдерживаемое при росте числа команд.