%% Governed MCP connection: reference architecture
%% Reference architecture: a reusable pattern, not a live client integration
flowchart TB
subgraph z0["Customer-controlled: host, gateway, adapter"]
host["MCP host
IDE, chat app or agent platform"]
gateway["MCP gateway or registry
allowlists, policies, logs"]
adapter["Custom MCP adapter
proposed, only for gaps"]
end
subgraph z1["Vendor-operated platforms"]
authz["Authorization server
vendor OAuth, per user"]
sfmcp["Salesforce Hosted MCP
vendor-run, GA 29 Apr 2026"]
brazemcp["Braze MCP server
vendor-run, remote"]
sforg["Salesforce org
CRUD, FLS and sharing enforced"]
brazews["Braze workspace
non-PII data via MCP"]
end
user["Business user or developer
works in an AI client"]
other["Other approved APIs
called by the adapter only"]
user -->|"prompts and approvals"| host
host -.->|"OAuth with PKCE"| authz
host -->|"MCP requests"| gateway
gateway -->|"allowlisted tool calls"| sfmcp
gateway -->|"allowlisted tool calls"| brazemcp
gateway -->|"allowlisted tool calls"| adapter
sfmcp -->|"runs as the user"| sforg
brazemcp -->|"dashboard permissions"| brazews
adapter -->|"scoped API calls"| other
classDef salesforce stroke:#125BD8,fill:#e8f0fd
class sfmcp,sforg salesforce
classDef engagement stroke:#5747AF,fill:#efedfa
class brazemcp,brazews engagement
classDef ai stroke:#5747AF,fill:#f6f4fd
class host ai
classDef integration stroke:#334155,fill:#eef2f6
class adapter integration
classDef security stroke:#1f2937,fill:#f3f4f6
class authz,gateway security
classDef external stroke:#64748b,fill:#ffffff
class other external
classDef people stroke:#125BD8,fill:#ffffff
class user people