Skip to main content
Glama
identity-aiops

identity-aiops

rotate_client_secret

Destructive

Rotate a client's secret to invalidate the old value and issue a replacement. Preview safely with dry_run; masked fingerprints only, and self-rotation is refused.

Instructions

[WRITE][risk=high] Rotate a client's secret. IRREVERSIBLE — the old secret is invalidated; only masked fingerprints are recorded/returned, never the value.

Refuses to rotate the client this tool authenticates as: that would revoke its own credential with no undo to fall back on — including under dry_run, which must report a refusal rather than preview a call that will be refused. Rotate that one from the admin console and re-store it with 'identity-aiops secret set'.

Every deployment using this client must be updated with the new secret (fetch it from the admin console over a trusted channel). Pass dry_run=True to preview.

Args: client_id: Client internal id, from list_clients. dry_run: If True, preview without rotating. target: IdP target name from config; omit for the default.

Input Schema

NameRequiredDescriptionDefault
targetNo
dry_runNo
client_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark this destructive/non-idempotent, and the description adds substantive beyond-annotation context: irreversibility, that only masked fingerprints are recorded/returned, the self-rotation refusal, and that the refusal also applies under dry_run (reporting a refusal rather than previewing). This is exactly the behavioral detail an agent needs before an irreversible write.

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 [WRITE][risk=high] tag and the IRREVERSIBLE warning, which is the right ordering. Slightly verbose in places (the admin console is referenced twice and the refusal rationale is belabored), but every paragraph carries actionable content.

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?

With no output schema, the description still explains what is returned (masked fingerprints, never the value). Combined with prerequisite handling, side effects, the dry_run caveat, and full arg coverage, nothing an agent needs to invoke this safely is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must carry all parameter meaning and does: client_id (from list_clients), dry_run (preview semantics), and target (IdP target name from config, omit for default). Each parameter's role and sourcing are made explicit.

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+resource (rotate a client's secret) and immediately qualifies it with the consequence (IRREVERSIBLE, old secret invalidated). This is clearly distinguishable from sibling writes like update_client_redirect_uris or disable_user.

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

Usage Guidelines5/5

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

Gives explicit when/when-not rules: it refuses to rotate the client it authenticates as, and tells the agent to use the admin console plus 'identity-aiops secret set' for that case. It also directs where to source client_id (list_clients) and what to do with the new secret (update every deployment).

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