A Model Context Protocol (MCP) server acts as a proxy between an external service that provides context, data, or capabilities to a Large Language Model (LLM) or AI application. MCP servers connect AI applications to external systems such as databases and web services, translating their responses into a format that the AI application can understand.
Server Setup
You must enable MCP servers and set up authentication before use. For more information about using Google and Google Cloud remote MCP servers, see Google Cloud MCP servers overview.
This is an MCP server which provides tools to manage Google Kubernetes Engine (GKE) clusters and their Kubernetes resources.
Server Endpoints
An MCP service endpoint is the network address and communication interface (usually a URL) of the MCP server that an AI application (the Host for the MCP client) uses to establish a secure, standardized connection. It is the point of contact for the LLM to request context, call a tool, or access a resource. Google MCP endpoints can be global or regional.
The container.googleapis.com MCP server has the following MCP endpoints:
- https://container.googleapis.com/mcp
- https://container.googleapis.com/mcp/read-only
- https://container.googleapis.com/mcp/delete-tools
MCP Tools
An MCP tool is a function or executable capability that an MCP server exposes to a LLM or AI application to perform an action in the real world.
The container.googleapis.com MCP server has the following tools:
| MCP Tools | |
|---|---|
| list_k8s_api_resources |
Retrieves the available API groups and resources from a Kubernetes cluster. This is similar to running kubectl api-resources.
|
| check_k8s_auth |
Checks whether an action is allowed on a Kubernetes resource. This is similar to running kubectl auth can-i.
|
| describe_k8s_resource |
Shows the details of a specific Kubernetes resource. This is similar to running kubectl describe.
|
| list_k8s_events |
Retrieves events from a Kubernetes cluster. This is similar to running kubectl events.
|
| get_k8s_resource |
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.
|
| get_k8s_cluster_info |
Gets cluster endpoint information. This is similar to running kubectl cluster-info.
|
| get_k8s_version |
Retrieves Kubernetes client and server versions for a given cluster. This is similar to running kubectl version.
|
| get_k8s_rollout_status |
Checks the current rollout status of a Kubernetes resource. This is similar to running kubectl rollout status.
|
| list_clusters | Lists GKE clusters in a given project and location. Location can be a region, zone, or '-' for all locations. |
| create_cluster |
Creates a new GKE cluster in a given project and location. It's recommended to read the GKE documentation 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.
|
| delete_cluster | Deletes a specific GKE cluster. |
| update_cluster | Updates a specific GKE cluster. |
| get_cluster | Gets the details of a specific GKE cluster. |
| list_operations | Lists GKE operations in a given project and location. Location can be a region, zone, or '-' for all locations. |
| get_operation | Gets the details of a specific GKE operation. |
| cancel_operation | Cancels a specific GKE operation. |
| create_node_pool | Creates a node pool for a specific GKE cluster. |
| list_node_pools | Lists the node pools for a specific GKE cluster. |
| get_node_pool | Gets the details of a specific node pool within a GKE cluster. |
| update_node_pool | Updates a specific node pool within a GKE cluster. |
| delete_node_pool | Deletes a specific node pool from a GKE cluster. |
| get_k8s_logs |
Gets logs from a Kubernetes container in a pod. This is similar to running kubectl logs.
|
| apply_k8s_manifest |
Applies a Kubernetes manifest to a cluster using server-side apply. This is similar to running kubectl apply --server-side.
|
| delete_k8s_resource |
Deletes a Kubernetes resource from a cluster. This is similar to running kubectl delete.
|
| patch_k8s_resource |
Patches a Kubernetes resource. This is similar to running kubectl patch.
|
Get MCP tool specifications
To get the MCP tool specifications for all tools in an MCP server, use the tools/list method. The following example demonstrates how to use curl to list all tools and their specifications currently available within the MCP server.
| Curl Request |
|---|
curl --location 'https://container.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/list", "jsonrpc": "2.0", "id": 1 }' |