# Request architecture

Runku keeps the MCP Forge and AI Gateway data planes separate while applying
the same security posture to both.

## MCP Forge path

```mermaid
flowchart LR
  A[Agent] --> T[Typed MCP tool]
  T --> I[Verified identity]
  I --> P[Declarative plan]
  P --> E{Policy engine}
  E -->|Allowed| D[Parameterized driver]
  E -->|Blocked| U[Audit event]
  D --> B[(Customer database)]
  D --> U
```

```text
MCP client
  → typed generated tool
  → authenticated identity
  → declarative query or mutation plan
  → policy decision
  → parameterized driver execution
  → local audit
```

There is no tool that accepts SQL supplied by an agent.

## AI Gateway path

```mermaid
flowchart LR
  C[IDE or application] --> K[rk_ai_ consumer key]
  K --> Q{Model and quota policy}
  Q --> G[Gateway proxy]
  G --> V[Encrypted credential vault]
  V --> M[LLM provider]
  G --> A[Local usage audit]
```

```text
IDE or application
  → consumer key
  → model and quota checks
  → optional local cache
  → server-side provider credential
  → upstream model
  → local usage audit
```

Provider credentials never return to the client.

## Product separation

The products use separate binaries, portals, stores and client contracts. They
can share a visual language without becoming one monolithic runtime.
