Hosting
Enterprise deployments
Enterprise customers can be provisioned with dedicated GCP projects that include isolated Spanner instances, storage buckets, and service accounts, providing complete data and compute isolation.Container isolation
Every MCP server runs in its own isolated container with multiple layers of protection:gVisor sandboxing
All MCP server pods run with gVisor (runtimeClassName: gvisor), a kernel-level sandbox that intercepts system calls. Customer code never executes directly on the host kernel. This prevents container escape attacks and limits the blast radius of any vulnerability in user code.
No cloud credentials
MCP server pods use a Kubernetes service account with no GCP Workload Identity annotation. This means customer code has zero access to GCP APIs, metadata servers, or any cloud resources. All GCP operations (logging, credential retrieval, token validation) are proxied through the Gumstack backend over HTTPS.Network policies
A strict KubernetesNetworkPolicy is enforced on all MCP server pods:
This prevents:
- One customer’s server from accessing another’s
- Lateral movement to internal services or databases
- Access to the GCP metadata server (
169.254.169.254)
Namespace isolation
All MCP servers deploy to a dedicatedgumstack-mcp Kubernetes namespace, separate from the backend API and other platform components.
Network architecture
Traffic flow (MCP clients)
Traffic flow (API)
Domain mapping
Each MCP server gets a unique subdomain (e.g.,your-server.gumstack.com) via Knative DomainMapping, with Google-managed TLS certificates.
TLS and encryption in transit
Build pipeline security
When you deploy an MCP server, Gumstack builds a Docker container from your code:Runtime containers
Deployed containers run with:- gVisor sandboxing (kernel-level isolation)
- No cloud credentials (dedicated service account with no GCP bindings)
- Strict network policies (no private IP egress)
- Readiness and liveness probes for health monitoring
Scaling and availability
MCP servers (Knative)
Backend API
Node pool auto-scaling
GKE node pools scale automatically based on demand. Production capacity ranges from 2-20 nodes for MCP workloads and 6-72 nodes for backend services.Deployment rollback
Knative creates a new revision for each deployment. If a revision fails readiness checks, the previous revision continues serving traffic. Explicit rollback is also available via the Gumstack API, which re-deploys a previous image version. Every deployment is tracked in the database with status transitions (BUILDING → DEPLOYING → LIVE or FAILED), and build status is reported back to GitHub commits for visibility.
Internal API security
The Gumstack backend exposes/internal/* endpoints that MCP servers call for token validation, RBAC checks, and activity logging. These endpoints:
- Require authentication on every request (OAuth JWT, GumCP API key, or Firebase token)
- Resolve the full user profile from the database before processing
- Are org-scoped to prevent cross-organization access
Related docs
Security Overview
High-level security posture
Data Protection
Encryption, secrets, and credential management
Deploying
Deployment process and environment variables
Internal MCP Servers
Server management and configuration
