Source system to BigQuery, curated views, MCP Toolbox on Cloud Run, an agent runtime with no database access of its own. Here is why each piece is there.
After several of these builds the architecture has settled into a shape. This is the shape, and the reasoning behind each part, so you can push back on it intelligently.
SAP / warehouse / SQL Server
│ (extract tool of record, timestamp-delta merge)
▼
BigQuery raw tables
│
▼
BigQuery curated views ← business rules live here
│
▼
MCP Toolbox on Cloud Run ← fixed, parameterised tools
│
▼
Vertex AI Agent Engine ← runtime SA has NO BigQuery access
│
▼
Gemini Enterprise ← the surface users see
Which MRP elements count as demand, whether inspection stock is usable, how transit time is added to lead time — these are decisions. They belong in SQL that a data engineer can read, diff and test, not in a system instruction that changes meaning when the model version changes. The agent's job is to pick the right view and narrate what it returns.
The toolbox exposes named tools with typed parameters. The agent cannot compose arbitrary SQL. That is the point: it turns "the agent might query anything" into "the agent can call these nineteen things", which is a sentence a security reviewer can work with. It also makes the tool list the contract between the data team and the agent team.
The service account the agent runs as gets run.invoker on the toolbox and secretAccessor for what it needs. Nothing else. If the agent is compromised or simply confused, the blast radius is the toolbox's read-only view set. This is the single design choice that most shortens the security conversation.
Tell us what system the answer lives in and who needs it. We'll reply with a view on whether it's a two-week assessment, a five-week pilot, or something else.