# com.googleapis.container/mcp (remote · container.googleapis.com)

Provides read access to your GKE and Kubernetes resources.

- Trust score: 62/100 (medium)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `container.googleapis.com`: 62/100 (this document), [markdown](https://verifymcp.io/servers/com-googleapis-container-mcp/container.md), [page](https://verifymcp.io/servers/com-googleapis-container-mcp/container)

## Channel facts

- Endpoint: `https://container.googleapis.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_cluster).
  - HTTPS not yet verified: we couldn't determine whether a plaintext access path exists.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3084 tokens (~134/item across 23 items; 23 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-googleapis-container-mcp https://container.googleapis.com/mcp
```

### Codex

```toml
[mcp_servers.com-googleapis-container-mcp]
url = "https://container.googleapis.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-googleapis-container-mcp": {
      "type": "remote",
      "url": "https://container.googleapis.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-googleapis-container-mcp --url https://container.googleapis.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-googleapis-container-mcp:
    url: "https://container.googleapis.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-googleapis-container-mcp": {
      "type": "http",
      "url": "https://container.googleapis.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 60, −2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 62, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 60, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 59)

First indexed and scored.

## MCP tools (23)

### `list_k8s_api_resources` (~69 tokens)

Retrieves the available API groups and resources from a Kubernetes cluster. This is similar to running `kubectl api-resources`.

Input parameters:

- `parent` (string, required): Required. The cluster, which owns this collection of resource types. Format: projects/{project}/locations/{location}/clusters/{cluster}

Output parameters:

- `errors` (array): Errors encountered during discovery.
- `groups` (array): The list of API group discovery.

### `check_k8s_auth` (~174 tokens)

Checks whether an action is allowed on a Kubernetes resource. This is similar to running `kubectl auth can-i`.

Input parameters:

- `namespace` (string): Optional. The namespace of the resource. If not specified, "default" is used for namespace-scoped resources.
- `parent` (string, required): Required. The cluster to check authorization against. Format: projects/{project}/locations/{location}/clusters/{cluster}
- `resource` (string): Optional. The name of the resource to check.
- `resourceType` (string, required): Required. The type of resource to check. e.g. "pods", "deployments", "services".
- `verb` (string, required): Required. The verb to check. e.g. "get", "list", "watch", "create", "update", "patch", "delete".

Output parameters:

- `errors` (array): Errors encountered during auth check.
- `result` (string): The result of auth can-i check.

### `describe_k8s_resource` (~101 tokens)

Shows the details of a specific Kubernetes resource. This is similar to running `kubectl describe`.

Input parameters:

- `labelSelector` (string): Optional. A label selector to filter resources.
- `name` (string): Optional. The name of the resource.
- `namespace` (string): Optional. The namespace of the resource.
- `parent` (string, required): Required. The parent cluster.
- `resourceType` (string, required): Required. The type of the resource.

Output parameters:

- `description` (string): The description of the resource.
- `errors` (array): Errors encountered during description retrieval.

### `list_k8s_events` (~164 tokens)

Retrieves events from a Kubernetes cluster. This is similar to running `kubectl events`.

Input parameters:

- `allNamespaces` (boolean): Optional. If true, retrieve events from all namespaces.
- `limit` (string): Optional. The maximum number of events to return. If not specified, 500 is used.
- `name` (string): Optional. The name of the resource to retrieve events for.
- `namespace` (string): Optional. The namespace of the resource. If not specified and all_namespaces is false, "default" is used.
- `parent` (string, required): Required. The parent cluster. Format: projects/{project}/locations/{location}/clusters/{cluster}
- `resourceType` (string): Optional. The type of the resource to retrieve events for.

Output parameters:

- `errors` (array): Errors encountered during events retrieval.
- `events` (string): The events in string format.

### `get_k8s_resource` (~299 tokens)

Gets one or more Kubernetes resources from a cluster. Resources can be filtered by type, name, namespace, and label selectors. Returns the resources in YAML format. This is similar to running `kubectl get`.

Input parameters:

- `customColumns` (string): Optional. The field mask to specify columns to display. Use a single "*" to get all fields. When both custom_columns and output_format are specified, output_format is ignored.
- `fieldSelector` (string): Optional. A field selector to filter resources.
- `labelSelector` (string): Optional. A label selector to filter resources.
- `name` (string): Optional. The name of the resource to retrieve. If not specified, all resources of the given type are returned.
- `namespace` (string): Optional. The namespace of the resource. If not specified, all namespaces are searched.
- `outputFormat` (string): Optional. The output format. One of: (table, wide, yaml, json). If not specified, defaults to table. When both custom_columns and output_format are specified, output_format is ignored.
- `parent` (string, required): Required. The cluster, which owns this collection of resources. Format: projects/{project}/locations/{location}/clusters/{cluster}
- `resourceType` (string, required): Required. The type of resource to retrieve. Kubernetes resource/kind name in singular form, lower case. e.g. "pod", "deployment", "service".

Output parameters:

- `errors` (array): Errors encountered during retrieval.
- `output` (string): The output of the command in the requested format. It may contain resources in YAML or JSON format, or a table in plain text, or errors.

### `get_k8s_cluster_info` (~54 tokens)

Gets cluster endpoint information. This is similar to running `kubectl cluster-info`.

Input parameters:

- `parent` (string, required): Required. The parent cluster. Format: projects/{project}/locations/{location}/clusters/{cluster}

Output parameters:

- `clusterInfo` (string): The cluster info of the resource. Displays address and port information about the Kubernetes control plane and other services running within the cluster such as CoreDNS and Metrics-server. Example: "…
- `errors` (array): Errors encountered during cluster info retrieval.

### `get_k8s_version` (~61 tokens)

Retrieves Kubernetes client and server versions for a given cluster. This is similar to running `kubectl version`.

Input parameters:

- `parent` (string, required): Required. The cluster to get version information from, in the format `projects/*/locations/*/clusters/*`.

Output parameters:

- `errors` (array): Errors encountered during version retrieval.
- `serverVersion` (string): The server version.

### `get_k8s_rollout_status` (~140 tokens)

Checks the current rollout status of a Kubernetes resource. This is similar to running `kubectl rollout status`.

Input parameters:

- `name` (string, required): Required. The name of the resource to check.
- `namespace` (string): Optional. The namespace of the resource. If not specified, "default" is used for namespace-scoped resources.
- `parent` (string, required): Required. The cluster to check rollout status in. Format: projects/{project}/locations/{location}/clusters/{cluster}
- `resourceType` (string, required): Required. The type of resource to check. e.g. "deployment", "daemonset", "statefulset".

Output parameters:

- `errors` (array): Errors encountered during rollout status check.
- `result` (string): The result of the rollout status check.

### `list_clusters` (~184 tokens)

Lists GKE clusters in a given project and location. Location can be a region, zone, or '-' for all locations.

Input parameters:

- `parent` (string, required): Required. The parent (project and location) where the clusters will be listed. Specified in the format `projects/*/locations/*`. Location "-" matches all zones and all regions.
- `readMask` (string): Optional. The field mask to specify the fields to be returned in the response. Use a single "*" to get all fields. Default: clusters.autopilot,clusters.createTime,clusters.currentMasterVersion,cluste…

Output parameters:

- `clusters` (array): A string representing the ListClustersResponse object.
- `errors` (array): Errors encountered during cluster listing.

### `create_cluster` (~188 tokens)

Creates a new GKE cluster in a given project and location. It's recommended to read the [GKE documentation](https://docs.cloud.google.com/kubernetes-engine/docs/concepts/configuration-overview) to understand cluster configuration options. Cluster creation will default to Autopilot mode, as recommended by GKE best practices. If the user explicitly wants to create a Standard cluster, you need to set autopilot.enabled=false in the cluster configuration. This is similar to running `gcloud container clusters create-auto` or `gcloud container clusters create`.

Input parameters:

- `cluster` (string, required): Required. A [cluster resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters) represented as a string using JSON format.
- `parent` (string, required): Required. The parent (project and location) where the cluster will be created. Specified in the format `projects/*/locations/*`.

Output parameters:

- `errors` (array): Errors encountered during the operation.
- `operation` (string): JSON string of the GKE Operation object. See: https://docs.cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.operations

### `update_cluster` (~117 tokens)

Updates a specific GKE cluster.

Input parameters:

- `name` (string, required): Required. The name (project, location, cluster) of the cluster to update. Specified in the format `projects/*/locations/*/clusters/*`.
- `update` (string, required): Required. A description of the update represented as a string using JSON format. The full update request object can be found at https://cloud.google.com/container-engine/reference/rest/v1/projects.lo…

Output parameters:

- `errors` (array): Errors encountered during the operation.
- `operation` (string): JSON string of the GKE Operation object. See: https://docs.cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.operations

### `get_cluster` (~142 tokens)

Gets the details of a specific GKE cluster.

Input parameters:

- `name` (string, required): Required. The name (project, location, cluster) of the cluster to retrieve. Specified in the format `projects/*/locations/*/clusters/*`.
- `readMask` (string): Optional. The field mask to specify the fields to be returned in the response. Use a single "*" to get all fields. Default: autopilot,createTime,currentMasterVersion,currentNodeCount,currentNodeVersi…

Output parameters:

- `cluster` (string): A string representing the Cluster object in JSON format.
- `errors` (array): Errors encountered during cluster retrieval.

### `list_operations` (~76 tokens)

Lists GKE operations in a given project and location. Location can be a region, zone, or '-' for all locations.

Input parameters:

- `parent` (string, required): Required. The parent (project and location) where the operations will be listed. Specified in the format `projects/*/locations/*`. Location "-" matches all zones and all regions.

Output parameters:

- `errors` (array): Errors encountered during operations listing.
- `operations` (array): A list of JSON strings of GKE Operation objects. See: https://docs.cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.operations

### `get_operation` (~57 tokens)

Gets the details of a specific GKE operation.

Input parameters:

- `name` (string, required): Required. The name (project, location, operation id) of the operation to get. Specified in the format `projects/*/locations/*/operations/*`.

Output parameters:

- `errors` (array): Errors encountered during the operation.
- `operation` (string): JSON string of the GKE Operation object. See: https://docs.cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.operations

### `cancel_operation` (~85 tokens)

Cancels a specific GKE operation.

Input parameters:

- `name` (string, required): Required. The name (project, location, operation id) of the operation to cancel. Specified in the format `projects/*/locations/*/operations/*`.
- `parent` (string, required): Required. The parent cluster of the operation. Specified in the format `projects/*/locations/*/clusters/*`.

Output parameters:

- `errors` (array): Errors encountered during operation cancellation.

### `create_node_pool` (~113 tokens)

Creates a node pool for a specific GKE cluster.

Input parameters:

- `nodePool` (string, required): Required. The node pool to create represented as a string using JSON format. The full node pool object can be found at https://docs.cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.…
- `parent` (string, required): Required. The parent (project, location, cluster name) where the node pool will be created. Specified in the format `projects/*/locations/*/clusters/*`.

Output parameters:

- `errors` (array): Errors encountered during the operation.
- `operation` (string): JSON string of the GKE Operation object. See: https://docs.cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.operations

### `list_node_pools` (~62 tokens)

Lists the node pools for a specific GKE cluster.

Input parameters:

- `parent` (string, required): Required. The parent (project, location, cluster name) where the node pools will be listed. Specified in the format `projects/*/locations/*/clusters/*`.

Output parameters:

- `errors` (array): Errors encountered during node pool listing.
- `nodePools` (array): A string representing the ListNodePoolsResponse object.

### `get_node_pool` (~70 tokens)

Gets the details of a specific node pool within a GKE cluster.

Input parameters:

- `name` (string, required): Required. The name (project, location, cluster, node pool id) of the node pool to get. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.

Output parameters:

- `errors` (array): Errors encountered during node pool retrieval.
- `nodePool` (string): A string representing the NodePool object in JSON format.

### `update_node_pool` (~108 tokens)

Updates a specific node pool within a GKE cluster.

Input parameters:

- `name` (string, required): Required. The name (project, location, cluster, node pool) of the node pool to update. Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
- `update` (string, required): Required. A [node pool update request](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters.nodePools/update) represented as a string using JSON format.

Output parameters:

- `errors` (array): Errors encountered during the operation.
- `operation` (string): JSON string of the GKE Operation object. See: https://docs.cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.operations

### `get_k8s_logs` (~319 tokens)

Gets logs from a Kubernetes container in a pod. This is similar to running `kubectl logs`.

Input parameters:

- `allContainers` (boolean): Optional. If true, retrieve logs from all containers in the pod.
- `container` (string): Optional. The name of the container to retrieve logs from. If not specified, logs from the first container are returned.
- `name` (string, required): Required. The name of the resource to retrieve logs from. This can be a pod name (e.g. "my-pod") or a type/name (e.g. "deployment/my-deployment"). If a type is not specified, "pod" is assumed.
- `namespace` (string): Optional. The namespace of the resource. If not specified, "default" is used.
- `parent` (string, required): Required. The cluster to retrieve logs from. Format: projects/{project}/locations/{location}/clusters/{cluster}
- `previous` (boolean): Optional. If true, retrieve logs from the previous instantiation of the container.
- `since` (string): Optional. Retrieve logs since this duration ago (e.g. "1h", "10m").
- `sinceTime` (string): Optional. Retrieve logs since this time (RFC3339). e.g. "2024-08-30T06:00:00Z".
- `tail` (string): Optional. The number of lines from the end of the logs to show.
- `timestamps` (boolean): Optional. If true, include timestamps in the log output.

Output parameters:

- `errors` (array): Errors encountered during log retrieval.
- `logs` (string): The logs from the resources.

### `apply_k8s_manifest` (~118 tokens)

Applies a Kubernetes manifest to a cluster using server-side apply. This is similar to running `kubectl apply --server-side`.

Input parameters:

- `dryRun` (boolean): Optional. If true, run in dry-run mode.
- `forceConflicts` (boolean): Optional. If true, force conflicts resolution when applying.
- `parent` (string, required): Required. The cluster to apply the manifest to. Format: projects/{project}/locations/{location}/clusters/{cluster}
- `yamlManifest` (string, required): Required. The YAML manifest to apply.

Output parameters:

- `errors` (array): Errors encountered during apply. If this field is populated, some resources may not have been applied.
- `result` (string): Result of the apply operation, e.g., resources created/configured. This might be a summary string or structured data.

### `delete_k8s_resource` (~198 tokens)

Deletes a Kubernetes resource from a cluster. This is similar to running `kubectl delete`.

Input parameters:

- `cascade` (string): Optional. The cascading deletion policy to use. If not specified, 'background' is used. Valid values are 'background', 'foreground', and 'orphan'.
- `dryRun` (boolean): Optional. If true, run in dry-run mode.
- `name` (string, required): Required. The name of the resource to delete.
- `namespace` (string): Optional. The namespace of the resource. If not specified, "default" is used.
- `parent` (string, required): Required. The cluster, which owns this collection of resources. Format: projects/{project}/locations/{location}/clusters/{cluster}
- `resourceType` (string, required): Required. The type of resource to delete. Kubernetes resource/kind name in singular form, lower case. e.g. "pod", "deployment", "service".

Output parameters:

- `errors` (array): Errors encountered during deletion.
- `result` (string): Result of the delete operation.

### `patch_k8s_resource` (~185 tokens)

Patches a Kubernetes resource. This is similar to running `kubectl patch`.

Input parameters:

- `name` (string, required): Required. The name of the resource to patch.
- `namespace` (string): Optional. The namespace of the resource. If not specified, "default" is used.
- `parent` (string, required): Required. The cluster to patch the resource in. Format: projects/{project}/locations/{location}/clusters/{cluster}
- `patch` (string, required): Required. The patch to apply in JSON format.
- `patchType` (string): Optional. The patch strategy to apply. Valid values are "strategic", "merge", or "json". If not specified, "strategic" patch type will be used.
- `resourceType` (string, required): Required. The type of resource to patch. e.g. "pods", "deployments", "services".

Output parameters:

- `errors` (array): Errors encountered during patching.
- `result` (string): The result of the patch operation.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-googleapis-container-mcp/container#diagnostics

## Score history

- 2026-08-03: 62
- 2026-08-02: 61
- 2026-08-01: 61
- 2026-07-31: 60
- 2026-07-30: 62
- 2026-07-29: 61
- 2026-07-28: 61
- 2026-07-27: 60
- 2026-07-26: 59

## Links

- Remote endpoint: https://container.googleapis.com/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-googleapis-container-mcp/container/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-googleapis-container-mcp/container/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-googleapis-container-mcp/container
