Skip to main content
Glama

describe_resource

Read-only

Get detailed YAML/JSON for a Kubernetes resource. Provide name to fetch a single resource: a status summary (per-container restarts and last termination), then the body minus managedFields, shaped to fit (omitted names what was left out; section reads it); omit name to list the kind as summary rows (name, namespace and the kind's status fields) with total, returned, truncated and scope. A list of a namespaced kind needs namespace or all_namespaces=true; cluster-scoped kinds need neither. The full body of any listed object is one named read away.

Input Schema

NameRequiredDescriptionDefault
kindYesResource kind (e.g., 'Pod', 'Deployment', 'Service').
nameNoResource name. Omit to list all instances of the kind.
sectionNoRead one member whole by dotted path from omitted, e.g. spec.containers.NAME. Needs name.
namespaceNoKubernetes namespace. A named read needs it only for namespaced kinds; a list of a namespaced kind needs it or all_namespaces=true (cluster-scoped kinds need neither).
cluster_idYesAnkra cluster id (UUID) the call targets. Discover ids with list_clusters.
api_versionNoAPI version (e.g., 'v1', 'apps/v1'). Omit it for well-known kinds - the API group is resolved from the kind (Deployment -> apps/v1, StorageClass -> storage.k8s.io/v1). Pass it explicitly for CRDs and for a non-default version.
all_namespacesNoSet true to list the kind across every namespace deliberately. Read only when name is omitted; a list of a namespaced kind with neither namespace nor this flag is refused (error_code scope_required).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / section
      Added value: +{
      +  "description": "Read one member whole by dotted path from omitted, e.g. spec.containers.NAME. Needs name.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Despite readOnlyHint already marking it safe, the description discloses substantive behavior: the response shape (status summary with restarts and last termination, body with managedFields stripped, `omitted` recording exclusions), the list payload fields (total, returned, truncated, scope), and a concrete failure mode (error_code scope_required). That is well beyond what annotations convey.

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

Conciseness4/5

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

Front-loaded with the core action, then structured by mode. Individual sentences are dense and sometimes overloaded with parenthetical clauses ('shaped to fit (omitted names what was left out; section reads it)'), but nearly every clause carries real information.

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?

Covers both call modes, scoping rules, output shape in the absence of an output schema, and the recovery path via `section`. With 7 parameters at full schema coverage, nothing an agent needs to invoke it correctly is missing.

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 baseline is 3. The description restates the name/section/namespace rules in flowing prose and clarifies that `section` reads a path from `omitted`, but adds little semantically that the schema doesn't already say almost verbatim.

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

Purpose4/5

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

Opens with a specific verb+resource: 'Get detailed YAML/JSON for a Kubernetes resource', and then distinguishes its two modes (named read vs. list). It never names the sibling it competes with (describe_resources, get_pods, cluster_query), so 5 is not warranted, but an agent can tell what the tool does.

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?

Gives concrete branching guidance: supply `name` for a single resource, omit it to list, and states that a namespaced list requires namespace or all_namespaces=true while cluster-scoped kinds need neither. It also hints at the follow-up path ('The full body of any listed object is one named read away'). Missing is any comparison to the large set of sibling read tools.

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.

Resources