Skip to main content
Glama

Elevate cluster access

elevate_cluster_access
Destructive

Break-glass: give yourself - the caller, never anyone else - time-boxed Kubernetes access to one cluster (the twin of ankra cluster access elevate). Needs kube_access.elevate or kube_access.manage, and is always held to the organisation access policy's self-elevation bounds, whoever calls it: it must expire within the policy's elevated lifetime, carry a reason when the policy requires one, and stay under the role ceiling. Only your own elevation is re-timed by a repeat. Always have the user confirm the cluster, role, lifetime and reason first.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "role": "<role>"
    },
    "name": "elevate_cluster_access"
  }
}

Input Schema

NameRequiredDescriptionDefault
roleYesKubernetes role the grant carries; must not exceed the organisation access policy's max_grant_role (get_cluster_access_policy).
scopeNocluster (default) for the whole cluster, namespace for one namespace.
reasonNoWhy the access is needed. The organisation access policy may require it for elevated roles (require_reason_from_role).
namespaceNoThe namespace, required with scope namespace and refused otherwise (a DNS-1123 label).
cluster_idNoUUID of the cluster. Optional when a cluster is selected.
expires_atNoWhen the grant ends, an RFC 3339 timestamp at least a minute ahead. Give this or expires_in.
expires_inNoHow long the grant lasts: whole days (7d) or a duration (30m, 4h, 1h30m), at least 1m. Give this or expires_at.
cluster_nameNoExact name of the cluster. Optional when a cluster is selected.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations: it discloses the permission requirements, that the grant is always bounded by the organisation access policy (lifetime ceiling, required reason, max role), and that a repeat call re-times the existing elevation rather than stacking a second one — important given idempotentHint=false. That last detail is exactly the kind of behavior an agent cannot infer from destructiveHint/readOnlyHint alone.

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?

One front-loaded paragraph that opens with the 'Break-glass' framing and then layers permissions, policy bounds and the confirmation step. Every clause carries information — no filler, no restatement of the title.

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

Completeness4/5

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

For an 8-parameter privileged mutation with no output schema, it covers permissions, policy limits, repeat-call behavior and the human-confirmation requirement. It does not say what the response contains (grant id, expiry, kubeconfig retrieval) or how this interacts with an already-existing elevation of a different role, which an agent would want before calling.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real cross-parameter meaning: expires_at/expires_in must fall inside the policy's elevated lifetime, role must stay under the role ceiling, and reason becomes mandatory at a policy-defined threshold. It does not restate the expires_at vs expires_in exclusivity, but that is already in the schema.

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?

States a specific verb and resource ('give yourself ... time-boxed Kubernetes access to one cluster') and pins the scope tightly with 'the caller, never anyone else'. It also maps itself to the CLI equivalent (`ankra cluster access elevate`), which makes it immediately distinguishable from grant_cluster_access and revoke_cluster_access.

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?

Use context is clear: break-glass self-elevation, gated on kube_access.elevate or kube_access.manage, plus an explicit operational rule to have the user confirm cluster, role, lifetime and reason before calling. It stops short of naming the sibling tools (grant_cluster_access for others, revoke_cluster_access to end it) as explicit alternatives, so the routing is implied rather than spelled out.

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.