Mcp Deployment Config
McpDeploymentConfig
Per-environment runtime configuration for an MCP server.
Provides environment-specific overrides — version, scaling, container spec, ports, and request/shutdown timeouts — layered on top of a shared McpConfig manifest so one server can be tuned per environment (e.g. staging vs production) when deployed to Cloud Run. This is the MCP equivalent of DeploymentConfig: the same parent relationship to Project and the same per-environment versioning pattern, with fields specific to MCP server deployments.
| Property | Type | Description |
|---|---|---|
| apiVersion | string | API schema version. Pins the manifest to a specific schema contract for backward-compatibility. Must be the constant lowops.manifests.v1. |
| kind | string | Resource kind discriminator. Identifies this document as an McpDeploymentConfig so the engine routes it to the correct defaulter, validator, computer, and executor. Must be the constant McpDeploymentConfig. |
| metadata | map | Classification labels and graph linkage. Free-form key/value pairs used to classify the manifest. Certain reserved keys (e.g. project, environment) are read by the engine to resolve this manifest's identity, its parent Project, and the McpConfig it deploys. |
| spec | Spec | Desired MCP server deployment configuration. The authoritative, user-authored specification for this MCP server deployment. See Spec. |
PortsEntry
| Property | Type | Description |
|---|---|---|
| key | int64 | |
| value | string |
Spec
Per-environment deployment overrides.
Environment-specific configuration for the MCP server deployment: the container image version to roll out, autoscaling bounds, container overrides, exposed ports, and request/shutdown timeouts. The linked McpConfig is matched by name within the parent Project.
| Property | Type | Description |
|---|---|---|
| description | string | Human-readable description of this deployment configuration. Optional free text describing the role of this config. Propagated onto the provisioned Cloud Run service and the Agent Registry entry, and used as context by AI assistants when reasoning about the manifest. |
| version | string | Container image version tag. Required. The version tag pushed during CI (e.g. 0.1.0, 1.2.3-rc1) identifying which built image to deploy from the source registry. Applied as the image tag on the Cloud Run container. |
| scaling | ScalingConfig | Autoscaling bounds for this deployment. See ScalingConfig. Sets the min/max instance count on the Cloud Run service; when omitted the executor applies defaults of 0 (min) and 3 (max). |
| container | ContainerSpec | Main container overrides. Environment-specific overrides for the MCP server container: command, args, environment variables, and resource limits/requests. See ContainerSpec. Command, args, and resource limits are applied to the Cloud Run container, and the container's environment variables are merged into the resolved runtime environment. |
| ports | list of PortsEntry | Exposed ports and their protocols. Map of port number to protocol (e.g. http, grpc). Each entry produces a named container port on the Cloud Run service so traffic can reach the server on that port. |
| health | Health | Health probe settings for this deployment. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it); the Cloud Run service is deployed without custom health probes. See Health. Intended future behavior: derive Cloud Run startup and liveness probes from these settings. |
| volumes | list of VolumesEntry | Volume mounts for the container. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it); the executor mounts only a fixed in-memory /tmp volume. Intended future behavior: mount each in-container path to its volume source (see ContainerVolumeMount). |
| requestTimeout | int64 | Per-request timeout, in seconds. Maximum time a single request may run before being terminated; maps to the Cloud Run RevisionTemplate.timeout. Only applied when greater than 0; when unset the Cloud Run default applies (e.g. 300s). Must be between 0 and 3600. |
| terminationGracePeriodSeconds | int64 | Graceful shutdown period, in seconds. Time to wait after SIGTERM before forcibly killing the container; maps to the Cloud Run service-level termination grace period. Only applied when greater than 0; when unset the platform default applies. Must be between 0 and 3600. |
Health
Container health probes.
Startup and liveness probe definitions for the MCP server container.
| Property | Type | Description |
|---|---|---|
| startup | HostHealthConfig | NOT YET IMPLEMENTED. Declared to configure the container's startup probe (see HostHealthConfig) but currently ignored by the executor, which does not set any startup probe on the Cloud Run service. |
| liveness | HostHealthConfig | NOT YET IMPLEMENTED. Declared to configure the container's liveness probe (see HostHealthConfig) but currently ignored by the executor, which does not set any liveness probe on the Cloud Run service. |
PortsEntry
| Property | Type | Description |
|---|---|---|
| key | int64 | |
| value | string |
ScalingConfig
Instance autoscaling bounds.
Lower and upper limits on the number of running instances, balancing latency against cost. Applied to the Cloud Run service's min/max instance settings.
| Property | Type | Description |
|---|---|---|
| min | int64 | Minimum number of instances to keep running. Floor for the Cloud Run autoscaler. When scaling is unset the platform default of 0 (scale to zero) applies. |
| max | int64 | Maximum number of instances to scale out to. Ceiling for the Cloud Run autoscaler. When scaling is unset the platform default of 3 applies. |
VolumesEntry
| Property | Type | Description |
|---|---|---|
| key | string | |
| value | ContainerVolumeMount |
ContainerSpec
Core configuration block for defining a runtime container.
Overrides default container behavior from the base image, defining entrypoints, variables, and compute constraints. Translates directly to elements like resources and env within google_cloud_run_v2_service or Kubernetes specifications.
| Property | Type | Description |
|---|---|---|
| enabled | bool | Whether this container is enabled. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it). Intended future behavior: allow toggling this container off without removing its definition. |
| command | list of string | Container entrypoint. Overrides the image entrypoint (maps to the container command). Applied to the provisioned Cloud Run service or Kubernetes container. |
| args | list of string | Container arguments. Arguments passed to the entrypoint (maps to the container args). |
| env | list of EnvVariableDefinition | Static environment variables. Literal name/value environment variables merged into the container's computed environment alongside variables injected via secrets and access control. |
| uid | string | Process user ID. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it). Intended future behavior: run the container process as this UID. |
| gid | string | Process group ID. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it). Intended future behavior: run the container process as this GID. |
| resources | ContainerResources | Compute resource requests and limits. CPU/memory requests and limits applied to the container on the provisioned Cloud Run service or Kubernetes pod. See ContainerResources. |
HostHealthConfig
Configuration for uptime and health checks on host endpoints.
Translates into google_compute_health_check and backend service parameters, driving routing decisions within GCP load balancers.
| Property | Type | Description |
|---|---|---|
| protocol | string | Probe protocol. The protocol the health check uses to reach the endpoint: one of http, http2, https, grpc, or tcp. Drives both the container startup/liveness probes (Cloud Run, GKE) and the compute backend health check for VMs. |
| port | int64 | Probe port. The TCP port the health check targets on the workload. |
| checkIntervalSec | int64 | Check interval, in seconds. How often the health check runs. Defaulted to 30 by the ingress defaulter when the probe is generated automatically. |
| timeoutSec | int64 | Probe timeout, in seconds. How long to wait for a single probe response before treating it as a failure. The ingress defaulter sets this to 10 when generating probes automatically. |
| healthyThreshold | int64 | Healthy threshold. The number of consecutive successful probes required to mark the endpoint healthy. Defaulted to 1 by the ingress defaulter. |
| unhealthyThreshold | int64 | Unhealthy threshold. The number of consecutive failed probes required to mark the endpoint unhealthy. Defaulted to 2 by the ingress defaulter. |
| enableLogs | bool | Enable health-check logging. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it). Intended future behavior: enable request/response logging on the generated google_compute_health_check. |
| path | string | Probe request path. The HTTP request path for HTTP-family probes. Defaults to /. Used as the request path on the container probe and the compute backend health check. |
ContainerVolumeMount
Maps generated files to a container volume.
Specifies the layout of files to be mounted, typically corresponding to config maps or secrets in K8s, or files written in Cloud Run.
| Property | Type | Description |
|---|---|---|
| files | list of FilesEntry | Files to materialize in the volume. Map of relative file path to its synthesized contents; each entry becomes a file written into the mounted volume. See VolumeMountFile. |
FilesEntry
| Property | Type | Description |
|---|---|---|
| key | string | |
| value | VolumeMountFile |
ContainerResources
Defines compute requirements and constraints for a container.
Maps to the resource requests and limits in Kubernetes Pods or Cloud Run service configurations to ensure adequate scaling and scheduling semantics.
| Property | Type | Description |
|---|---|---|
| requests | ContainerResource | The minimum CPU/memory guaranteed to the container (maps to resource requests). |
| limits | ContainerResource | The maximum CPU/memory the container may consume (maps to resource limits). |
EnvVariableDefinition
Defines a static environment variable to be injected.
Appended to the environment variable array of the corresponding compute resource container definition.
| Property | Type | Description |
|---|---|---|
| name | string | The environment variable name. |
| value | string | The literal value assigned to the environment variable. |
ContainerResource
Single resource boundary definition.
Translates to either requests or limits for CPU or memory within a container specification.
| Property | Type | Description |
|---|---|---|
| cpu | string | CPU quantity for this boundary, in Kubernetes/Cloud Run notation (e.g. "500m", "1", "2"). |
| memory | string | Memory quantity for this boundary, in Kubernetes/Cloud Run notation (e.g. "256Mi", "1Gi"). |
VolumeMountFile
Defines a synthesized file content within a volume mount.
Handled by startup scripts to create physical files on disk with the necessary text or binary payloads.
| Property | Type | Description |
|---|---|---|
| mimeType | string | MIME type of the file. Content type recorded for the synthesized file; defaulted by the deployment config computer when left empty. Carried into the computed volume-mount file entry. |
| content | string | File contents. The literal payload written to the file at the mount path. Interpreted as base64 when base64_encoded is set, otherwise as plain text. |
| base64Encoded | bool | Content is base64-encoded. When true, content is decoded from base64 before being written, allowing binary files. Carried into the computed volume-mount file entry. |