Skip to main content
Glama

apply_k8s_manifest

DestructiveIdempotent

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dryRunNoOptional. If true, run in dry-run mode.
parentYesRequired. The cluster to apply the manifest to. Format: projects/{project}/locations/{location}/clusters/{cluster}
yamlManifestYesRequired. The YAML manifest to apply.
forceConflictsNoOptional. If true, force conflicts resolution when applying.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorsNoErrors encountered during apply. If this field is populated, some resources may not have been applied.
resultNoResult of the apply operation, e.g., resources created/configured. This might be a summary string or structured data.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals the use of server-side apply, which is a meaningful behavioral trait (conflict handling, ownership semantics). Annotations already indicate idempotent and destructive hints, and the description does not contradict them. It adds value beyond annotations by specifying the apply method, though it doesn't detail side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main purpose, and contains no redundant information. The kubectl analogy is valuable and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of a full input schema, annotations, and an output schema, the description provides sufficient contextual information for an agent to select and invoke the tool. It covers the core function and method, and does not need to explain return values due to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional parameter semantics beyond what's already in the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Applies') and resource ('Kubernetes manifest'), and distinguishes it from sibling tools by specifying server-side apply and the kubectl analogy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (applying manifests to a cluster) but does not explicitly mention alternatives or exclusions. The analogy to kubectl apply helps set expectations but doesn't reference other mutation tools like patch_k8s_resource.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.6/5.0
Disambiguation4/5

Most tools target distinct actions and resources, but a few pairs could confuse agents, such as get_cluster (GKE cluster details) vs get_k8s_cluster_info (kubectl cluster-info), or apply_k8s_manifest vs patch_k8s_resource. Overall, descriptions help clarify the differences.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in lowercase snake_case (e.g., create_cluster, list_node_pools, get_k8s_logs). There are no mixed conventions or unpredictable naming variations.

Tool Count4/5

With 23 tools, the server covers both GKE cluster management and in-cluster Kubernetes operations, which justifies the count. It is slightly on the heavier side but remains within a reasonable scope for such a broad domain.

Completeness3/5

The tool surface covers create, read, update, and list operations for clusters and node pools, but notably lacks delete_cluster and delete_node_pool. This leaves an obvious lifecycle gap that agents cannot work around without additional tooling.

Resources