<mxfile host="ai-architect-catalog"><diagram id="enterprise-mcp-tool-hub-gcp" name="Enterprise MCP tool hub / gcp"><mxGraphModel grid="1" gridSize="10"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="clients" value="Agent clients
Person" data-role="user" data-service="external" data-class="internal" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#8AB4FF33;strokeColor=#8AB4FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="40" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="catalog-ui" value="Tool catalog and consent
Cloud Run" data-role="experience" data-service="gcp.cloud-run" data-class="internal" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#8AB4FF33;strokeColor=#8AB4FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="340" y="400" width="252" height="112" as="geometry"/></mxCell><mxCell id="authz" value="Authorization server
Identity Platform" data-role="identity" data-service="gcp.identity-platform" data-class="identity" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#B9A7FF33;strokeColor=#B9A7FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="340" y="40" width="252" height="112" as="geometry"/></mxCell><mxCell id="edge" value="Edge protection
Cloud Armor + Load Balancing" data-role="edge" data-service="gcp.cloud-armor" data-class="operational" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#B9A7FF33;strokeColor=#B9A7FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="340" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="mcp-gateway" value="MCP policy gateway
Apigee (AI gateway policies)" data-role="gateway" data-service="gcp.apigee" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#B9A7FF33;strokeColor=#B9A7FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="640" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="guardrail" value="Content guardrail
Model Armor" data-role="guardrail" data-service="gcp.model-armor" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#B9A7FF33;strokeColor=#B9A7FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="640" y="40" width="252" height="112" as="geometry"/></mxCell><mxCell id="servers" value="Domain MCP servers
MCP server on Cloud Run" data-role="tools" data-service="gcp.cloud-run-mcp" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#5EE6CF33;strokeColor=#5EE6CF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="940" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="broker" value="Credential broker
Secret Manager" data-role="secrets" data-service="gcp.secret-manager" data-class="secret" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#B9A7FF33;strokeColor=#B9A7FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="940" y="40" width="252" height="112" as="geometry"/></mxCell><mxCell id="systems" value="Systems of record
External system" data-role="system" data-service="external" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#8AB4FF33;strokeColor=#8AB4FF;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="1240" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="registry" value="Tool registry
Firestore" data-role="store" data-service="gcp.firestore" data-class="internal" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FFC07A33;strokeColor=#FFC07A;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="640" y="400" width="252" height="112" as="geometry"/></mxCell><mxCell id="audit" value="Audit ledger
BigQuery + Looker Studio" data-role="analytics" data-service="gcp.bigquery" data-class="confidential" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FFC07A33;strokeColor=#FFC07A;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="1240" y="400" width="252" height="112" as="geometry"/></mxCell><mxCell id="owners" value="Tool owners
Review console on Cloud Run" data-role="review" data-service="gcp.review-console" data-class="internal" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FF9FCB33;strokeColor=#FF9FCB;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="940" y="400" width="252" height="112" as="geometry"/></mxCell><mxCell id="traces" value="Traces and alerts
Cloud Logging, Monitoring, Trace" data-role="observability" data-service="gcp.observability" data-class="operational" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FF9FCB33;strokeColor=#FF9FCB;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="1240" y="40" width="252" height="112" as="geometry"/></mxCell><mxCell id="contracts" value="Tool contract tests
Evaluation service (Agent Platform)" data-role="evals" data-service="gcp.evaluation" data-class="internal" style="rounded=1;whiteSpace=wrap;html=0;arcSize=10;fillColor=#FF9FCB33;strokeColor=#FF9FCB;fontColor=#0f1017;fontSize=12;" vertex="1" parent="1"><mxGeometry x="1540" y="220" width="252" height="112" as="geometry"/></mxCell><mxCell id="discover" value="List tools" data-kind="data" data-class="internal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="clients" target="mcp-gateway" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="authorize" value="OAuth consent, audience-bound token" data-kind="control" data-class="identity" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="clients" target="authz" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="consent" value="Grant or revoke scopes" data-kind="control" data-class="identity" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="catalog-ui" target="authz" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="call" value="Tool call with token" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="clients" target="edge" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="admit" value="Rate-checked call" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="edge" target="mcp-gateway" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="inspect" value="Input and output scan" data-kind="control" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="mcp-gateway" target="guardrail" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="policy" value="Scope and version lookup" data-kind="control" data-class="internal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="mcp-gateway" target="registry" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="forward" value="Authorized call" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="mcp-gateway" target="servers" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="exchange" value="Token exchange" data-kind="control" data-class="secret" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="servers" target="broker" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="execute" value="Backend call as the user" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="servers" target="systems" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="log" value="Call record" data-kind="data" data-class="confidential" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;" edge="1" source="mcp-gateway" target="audit" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="approve" value="Approve tool or scope change" data-kind="control" data-class="internal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="owners" target="registry" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="telemetry" value="Latency and errors" data-kind="telemetry" data-class="operational" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;dashPattern=1 3;" edge="1" source="mcp-gateway" target="traces" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="verify" value="Contract tests per version" data-kind="control" data-class="internal" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=0;fontSize=10;dashed=1;" edge="1" source="contracts" target="servers" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell></root></mxGraphModel></diagram></mxfile>
