develop feature/agent-framework-poc fix/editor-text-visibility-chrome main docs / adr / 0008-mcp-contracts-and-testable-infrastructure.md markdown deeb25a21 # ADR 0008: Стабильные контракты MCP и тестируемая инфраструктура 2 3 **Статус:** Accepted · Implemented 4 **Дата:** 2026-04-02 5 ## Связанные ADR 6 7 ### Вне ADR 8 9 | Документ | Роль | 10 |----------|------| 11 | [MCP-PROTOCOL.md](../MCP-PROTOCOL.md) | MCP PROTOCOL | 12 13 ### Снимок реализации 14 15 | Элемент | Значение | 16 |---------|----------| 17 | — | `IIdeMcpActions`, исполнитель MCP, контракты в MCP-PROTOCOL | 18 19 --- 20 ## Контекст 21 22 Агент взаимодействует с IDE через MCP. Внутри приложения нужны предсказуемые границы: иначе тулы дублируют бизнес-правила, а git/процессы невозможно подменить в тестах. 23 24 ## Решение 25 26 ### MCP 27 28 Контракты агента (`IIdeMcpActions`, DTO) — **стабильные**; изменения сознательно и с версионированием контракта там, где это принято в репо. 29 30 Реализация MCP **делегирует** в сервисы и ViewModels без дублирования одних и тех же бизнес-правил в каждом обработчике тула. 31 32 ### Внешний мир 33 34 Git, `Process`, длительные операции — за **абстракцией**, которую в тестах можно подменить (интерфейс или `internal` + `InternalsVisibleTo` — по ситуации). 35 36 ## Последствия 37 38 Новые тулы добавляются с опорой на существующие сервисы; тяжёлая логика не копируется в слой диспетчера MCP-команд. 39 40 ## Отклонённые альтернативы 41 42 - Делать каждый тул самодостаточным с прямым доступом к файловой системе и процессам — отклонено как неподдерживаемое при росте числа команд. 43
View only · write via MCP/CIDE