remove_node_label
Remove a specific label from a Kubernetes node by specifying the context name, node name, and label key. Returns the updated node labels as a JSON string. Streamlines label management in multi-cluster Kubernetes environments.
Instructions
Remove a label from a node.
Args: context_name: The Kubernetes context name node_name: The name of the node to modify label_key: The label key to remove
Returns: JSON string containing the updated node labels
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| context_name | Yes | ||
| label_key | Yes | ||
| node_name | Yes |
Implementation Reference
- tools/node.py:141-187 (handler)The main handler function for the 'remove_node_label' tool. It reads the current node, removes the specified label if present, patches the node via Kubernetes API, and returns the updated labels as JSON.@mcp.tool() @use_current_context def remove_node_label(context_name: str, node_name: str, label_key: str): """ Remove a label from a node. Args: context_name: The Kubernetes context name node_name: The name of the node to modify label_key: The label key to remove Returns: JSON string containing the updated node labels """ core_v1: CoreV1Api = get_api_clients(context_name)["core"] # Get the current node node = core_v1.read_node(node_name) # Check if the node has labels if not node.metadata.labels or label_key not in node.metadata.labels: result = { "name": node_name, "labels": node.metadata.labels, "message": f"Label '{label_key}' not found on node" } return json.dumps(result) # Update the labels labels = dict(node.metadata.labels) del labels[label_key] # Apply the patch body = { "metadata": { "labels": labels } } patched_node = core_v1.patch_node(node_name, body) result = { "name": patched_node.metadata.name, "labels": patched_node.metadata.labels } return json.dumps(result)
- tools/node.py:141-141 (registration)The @mcp.tool() decorator registers this function as an MCP tool named 'remove_node_label'.@mcp.tool()