Skip to main content
Glama

GreatWait

Rotate an API credential

credentials_rotate
Destructive

Replaces a credential with a new one and gives the original a deadline, so consumers can pick up the new secret before the old stops working. The replacement is a new credential with its own identifier and the same authority and scopes; the original keeps working until it expires, then refuses with credential_expired rather than credential_revoked. overlapSeconds may only shorten the window — the default is also the maximum — and zero retires the original immediately. The new secret is in this response and in no other. Some calls need more: credentials:administer is required as well when the target was not created by the caller, and the call is refused scope_missing without it.

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": {
      "credentialId": "<credentialId>"
    },
    "name": "credentials_rotate"
  }
}

Input Schema

NameRequiredDescriptionDefault
credentialIdYesThe `credentialId` this operation acts on.
overlapSecondsNo

Output Schema

NameRequiredDescriptionDefault
retiredYes
credentialYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • removedOutput schema / properties / credential / properties / environmentKind
      Removed value: -{
      -  "enum": [
      -    "test",
      -    "live"
      -  ],
      -  "type": "string"
      -}
    • changedOutput schema / properties / credential / required
      Previous value: -[
      -  "createdAt",
      -  "displayPrefix",
      -  "environmentKind",
      -  "id",
      -  "project",
      -  "scopes",
      -  "secret",
      -  "shownOnce"
      -]New value: +[
      +  "createdAt",
      +  "displayPrefix",
      +  "id",
      +  "project",
      +  "scopes",
      +  "secret",
      +  "shownOnce"
      +]
    • removedOutput schema / properties / retired / properties / environmentKind
      Removed value: -{
      -  "enum": [
      -    "test",
      -    "live"
      -  ],
      -  "type": "string"
      -}
    • changedOutput schema / properties / retired / required
      Previous value: -[
      -  "createdAt",
      -  "displayPrefix",
      -  "environmentKind",
      -  "id",
      -  "project",
      -  "scopes"
      -]New value: +[
      +  "createdAt",
      +  "displayPrefix",
      +  "id",
      +  "project",
      +  "scopes"
      +]
  2. Changed2 schema fields changed
    • addedOutput schema / properties / credential / properties / name
      Added value: +{
      +  "maxLength": 80,
      +  "minLength": 1,
      +  "pattern": "^[^\\p{C}]+$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / retired / properties / name
      Added value: +{
      +  "maxLength": 80,
      +  "minLength": 1,
      +  "pattern": "^[^\\p{C}]+$",
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the destructiveHint/not-idempotent annotations: discloses that the new secret appears only in this response, that the original keeps functioning until expiry and then fails with a specific error code, and that an additional `credentials:administer` permission is required when the target was not created by the caller, with a `scope_missing` refusal otherwise. These are exactly the authorization and irreversibility details an agent cannot infer from the schema or annotations.

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 behavior, then layered with window semantics, secret exposure, and permission requirements — each sentence carries operational weight. Some sentences are long and pack multiple facts (the overlap and the zero case), but there is no filler.

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?

An output schema exists so return values needn't be described, yet the description still flags the critical fact that the new secret is returned only here and nowhere else. Combined with the permission caveat and expiry semantics, an agent has everything needed to invoke this destructive, non-idempotent operation correctly.

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 50% and `overlapSeconds` is undocumented in the schema, so the description must carry it — and it does, explaining that the value may only shorten the window, that the default is also the maximum, and that zero retires the original immediately. It never states the numeric maximum or default value, which the agent must consult the schema for, so it falls just short of full compensation.

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 precise verb+resource ('Replaces a credential with a new one') and immediately clarifies the resulting state — the original survives with a deadline rather than dying instantly. This sharply distinguishes it from the sibling credentials_revoke, which the description implicitly contrasts by naming the `credential_expired` vs `credential_revoked` distinction.

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?

Clear context for use: rotate when consumers need to pick up a new secret before the old stops working, and the overlap window controls that transition. It does not explicitly say when to prefer credentials_revoke over rotation (e.g., for compromised credentials), so the exclusion side is implied rather than stated.

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