Skip to content

Architecture

The architecture keeps MCP transport, Bazel execution, policy, evidence storage, and deterministic reduction separate.

MCP client
│ stdio JSON-RPC
bazel-mcp-server ── policy ── runner ── Bazel
┌────────────────┴──────────────┐
▼ ▼
Build Event Protocol stdout/stderr
│ │
└────────► local store ◄────────┘
deterministic reducers
bounded run/inspect results

Only the server crate depends on the MCP implementation library. Domain types, policy, process management, storage, Build Event Protocol ingestion, and reducers remain usable without MCP transport concerns.

Production invocation storage is database-free filesystem storage. Raw evidence stays local while model-visible results, durable metadata, and telemetry pass through redaction and fixed byte budgets.

The repository keeps detailed decisions as reviewable specifications:

These are implementation records rather than a first-stop user guide. Start with how it works for the product model.