ADR 0008: Stable MCP contracts and testable infrastructure¶
Status: Accepted · Implemented
Date: 2026-04-02
Related ADRs¶
Outside ADR¶
| Document | Role |
|---|---|
| MCP-PROTOCOL.md | MCP PROTOCOL |
Implementation snapshot¶
| Element | Meaning |
|---|---|
| — | IIdeMcpActions, MCP executor, contracts in MCP-PROTOCOL |
Context¶
The agent communicates with the IDE via MCP. Within the application, predictable boundaries are needed: otherwise the tools duplicate business rules, and git/processes cannot be replaced in tests.
Solution¶
MCP¶
Agent contracts (IIdeMcpActions, DTO) - stable; changes consciously and with versioning of the contract where this is accepted in the repo.
The MCP implementation delegates to services and ViewModels without duplicating the same business rules in each tool handler.
Outside world¶
Git, Process, long-term operations are behind abstraction, which can be replaced in tests (interface or internal + InternalsVisibleTo - depending on the situation).
Consequences¶
New tools are added based on existing services; heavy logic is not copied to the MCP command manager layer.
Rejected alternatives¶
- Making each tool self-sufficient with direct access to the file system and processes - rejected as unsupported as the number of commands grows.