Skip to main content
Glama

list_node_pools

Retrieve a list of node pools in a specified GKE cluster by providing the GCP project ID, cluster name, and location. Simplify cluster management within the GCP MCP system.

Instructions

List node pools in a GKE cluster. Args: project_id: The ID of the GCP project cluster_name: The name of the GKE cluster location: The location (region or zone) of the cluster Returns: List of node pools in the specified GKE cluster

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cluster_nameYes
locationYes
project_idYes

Implementation Reference

  • The handler function for the 'list_node_pools' MCP tool. It is decorated with @mcp.tool() which also serves as registration. The function uses the Google Cloud Container client to list node pools in a GKE cluster, formats the information including machine types, autoscaling settings, and labels, and returns a formatted string.
    @mcp.tool() def list_node_pools(project_id: str, cluster_name: str, location: str) -> str: """ List node pools in a GKE cluster. Args: project_id: The ID of the GCP project cluster_name: The name of the GKE cluster location: The location (region or zone) of the cluster Returns: List of node pools in the specified GKE cluster """ try: from google.cloud import container_v1 # Initialize the GKE client client = container_v1.ClusterManagerClient() # List node pools cluster_path = f"projects/{project_id}/locations/{location}/clusters/{cluster_name}" node_pools = client.list_node_pools(parent=cluster_path) # Format the response pools_list = [] for pool in node_pools.node_pools: machine_type = pool.config.machine_type disk_size_gb = pool.config.disk_size_gb autoscaling = "Enabled" if pool.autoscaling and pool.autoscaling.enabled else "Disabled" min_nodes = pool.autoscaling.min_node_count if pool.autoscaling and pool.autoscaling.enabled else "N/A" max_nodes = pool.autoscaling.max_node_count if pool.autoscaling and pool.autoscaling.enabled else "N/A" initial_nodes = pool.initial_node_count pool_info = [ f"- {pool.name}:", f" Machine Type: {machine_type}", f" Disk Size: {disk_size_gb}GB", f" Initial Node Count: {initial_nodes}", f" Autoscaling: {autoscaling}" ] if autoscaling == "Enabled": pool_info.append(f" Min Nodes: {min_nodes}") pool_info.append(f" Max Nodes: {max_nodes}") if pool.config.labels: labels = [f"{k}: {v}" for k, v in pool.config.labels.items()] pool_info.append(f" Labels: {', '.join(labels)}") pools_list.append("\n".join(pool_info)) if not pools_list: return f"No node pools found in GKE cluster {cluster_name} in location {location}." pools_str = "\n".join(pools_list) return f""" Node Pools in GKE Cluster {cluster_name} (Location: {location}): {pools_str} """ except Exception as e: return f"Error listing node pools: {str(e)}"
  • The register_tools function that defines and registers all Kubernetes tools, including list_node_pools, by nesting the tool definitions inside it with @mcp.tool() decorators.
    def register_tools(mcp): """Register all kubernetes tools with the MCP server."""

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/henihaddad/gcp-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server