# Google Kubernetes Engine (GKE) MCP server

> Manage GKE clusters and node pools and inspect Kubernetes resources, events, logs and rollouts from your assistant.

- Listing: https://mcp.tc/i/gke
- Connect: use the server's own URL `https://container.googleapis.com/mcp` (OAuth sign-in at the server); clients connect to it directly. The listing link is a page, not an MCP endpoint.
- Type: remote (Streamable HTTP)
- Auth: OAuth sign-in
- Category: [Cloud & DevOps](https://mcp.tc/c/cloud-devops)
- Vendor: Google Cloud
- Verified: yes, mcp.tc checked that this is the official server (https://mcp.tc/verify). It says who runs the server, not that it is safe.
- Homepage: <https://docs.cloud.google.com/kubernetes-engine/docs/how-to/use-gke-mcp>

## About

Connects to the Google Kubernetes Engine API and to the Kubernetes API of your clusters. You can list, create and update clusters and node pools, track GKE operations, and run kubectl-style actions such as get, describe, logs, events, rollout status and auth checks. It can also apply manifests, patch resources and delete resources.

Runs as a hosted streamable HTTP endpoint at https://container.googleapis.com/mcp. Access uses Google OAuth 2.0 and is governed by IAM permissions on your project and clusters. Several tools change or delete resources, so review calls before approving them.

## What it can do

- List, get, create and update GKE clusters
- Create, list, inspect and update node pools
- List, inspect and cancel GKE operations
- Get and describe Kubernetes resources like kubectl
- Read pod logs and cluster events
- Check rollout status and permissions (auth can-i)
- Apply manifests, patch and delete Kubernetes resources

## Tools (23)

- `list_k8s_api_resources`: List API groups and resources in a cluster, like kubectl api-resources. (read-only)
- `check_k8s_auth`: Check whether an action is allowed on a resource, like kubectl auth can-i. (read-only)
- `describe_k8s_resource`: Show details of a Kubernetes resource, like kubectl describe. (read-only)
- `list_k8s_events`: Retrieve events from a Kubernetes cluster. (read-only)
- `get_k8s_resource`: Get resources filtered by type, name, namespace or labels, returned as YAML. (read-only)
- `get_k8s_cluster_info`: Get cluster endpoint information. (read-only)
- `get_k8s_version`: Get Kubernetes client and server versions for a cluster. (read-only)
- `get_k8s_rollout_status`: Check the rollout status of a Kubernetes resource. (read-only)
- `list_clusters`: List GKE clusters in a project and location. (read-only)
- `create_cluster`: Create a GKE cluster, Autopilot by default.
- `update_cluster`: Update a specific GKE cluster. (can modify or delete data)
- `get_cluster`: Get details of a specific GKE cluster. (read-only)
- `list_operations`: List GKE operations in a project and location. (read-only)
- `get_operation`: Get details of a specific GKE operation. (read-only)
- `cancel_operation`: Cancel a specific GKE operation. (can modify or delete data)
- `create_node_pool`: Create a node pool in a GKE cluster.
- `list_node_pools`: List node pools of a GKE cluster. (read-only)
- `get_node_pool`: Get details of a node pool. (read-only)
- `update_node_pool`: Update a node pool within a GKE cluster. (can modify or delete data)
- `get_k8s_logs`: Get logs from a container in a pod, like kubectl logs. (read-only)
- `apply_k8s_manifest`: Apply a manifest using server-side apply, with optional dry run. (can modify or delete data)
- `delete_k8s_resource`: Delete a Kubernetes resource, with optional dry run. (can modify or delete data)
- `patch_k8s_resource`: Patch a Kubernetes resource, like kubectl patch. (can modify or delete data)

## Example prompts

- "List all GKE clusters in my project my-project across all locations."
- "Show the logs of the last crashed container for pod web-0 in namespace prod."
- "Check the rollout status of the checkout deployment in the shop namespace."
- "Create a new node pool in cluster demo-cluster in us-central1."

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

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

2. Start Claude Code, type `/mcp`, pick **gke** and choose **Authenticate**. A browser window opens for the Google Cloud sign-in.

Add `--scope user` to make it available in every project, not just this one.

### Claude Desktop

1. Open **Settings → Connectors** and click **Add custom connector**.

2. Name it **Google Kubernetes Engine (GKE)** and paste this URL:

```url
https://container.googleapis.com/mcp
```

3. Click **Add**, then **Connect**, and sign in when Google Cloud asks.

Claude Desktop’s JSON config file only starts local servers. Remote servers go through Connectors, and connectors you add on claude.ai show up here too.

### claude.ai

1. Open the connector form on claude.ai. This button fills in the name and URL for you:

[Add to claude.ai](<https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Google%20Kubernetes%20Engine%20%28GKE%29&connectorUrl=https%3A%2F%2Fcontainer.googleapis.com%2Fmcp>) (opens connector settings)

2. Check that the URL reads `https://container.googleapis.com/mcp` and click **Add**.

3. Click **Connect** and sign in when Google Cloud asks.

Free plans allow one custom connector. On Team and Enterprise plans an owner adds it under **Organization settings → Connectors**.

### ChatGPT

1. On chatgpt.com, open **Settings → Security and login** and turn on **Developer mode**.

2. Go to `chatgpt.com/plugins` and click **+** to create an app for a remote MCP server.

3. Paste `https://container.googleapis.com/mcp` as the server URL and choose **OAuth**. ChatGPT sends you to Google Cloud to sign in.

Developer mode is available on the web for Plus, Pro, Business, Enterprise and Education accounts.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=gke&config=eyJ1cmwiOiJodHRwczovL2NvbnRhaW5lci5nb29nbGVhcGlzLmNvbS9tY3AifQ%3D%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "gke": {
      "url": "https://container.googleapis.com/mcp"
    }
  }
}
```

Cursor shows **Needs login** next to the server. Click it to sign in.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=gke&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fcontainer.googleapis.com%2Fmcp%22%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"gke","type":"http","url":"https://container.googleapis.com/mcp"}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

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

VS Code asks you to sign in the first time the server starts.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "gke": {
      "serverUrl": "https://container.googleapis.com/mcp"
    }
  }
}
```

2. Refresh the MCP server list in Cascade and sign in when asked.

Devin Desktop is the new name for Windsurf. It reads `serverUrl` (or `url`) for remote servers.

### Codex

```bash
codex mcp add gke --url https://container.googleapis.com/mcp
codex mcp login gke
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

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

### Gemini CLI

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

Then, inside Gemini CLI, run `/mcp auth gke` to sign in.

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients accept this shape. Some name the URL field differently: `serverUrl` in Devin Desktop, `httpUrl` in Gemini CLI’s settings file.

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

Zed puts servers under `context_servers` in its settings. Cline needs `"type": "streamableHttp"`, or it assumes SSE.

Client only starts local servers? Bridge it with `npx -y mcp-remote https://container.googleapis.com/mcp`.

## Details

- Server version: ESF
- MCP protocol version: 2025-11-25
- Last checked: 2026-10-03 (reachable)
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/gke (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
