Skip to main content
Glama

revoke_api_key

Destructive

REVOKES a CHILD key that the calling key issued (create_api_key): it stops authenticating immediately. Revokes ONLY the DIRECT children of the calling key (emitted_by_key_id) — not a sibling key, an account key set up from the settings, or the calling key itself; any other identifier is refused with a message saying so, nothing is written. RESERVED for MCP calls authenticated by a key carrying the emit_keys scope (the same family as create_api_key). This is the action of the orchestrator process that mints one key per agent: when the agent stops, it revokes its key instead of leaving a live key behind. Repeating the call on an already revoked key is harmless (alreadyRevoked: true). Frees a slot under the cap of live child keys per parent key.

Input Schema

NameRequiredDescriptionDefault
keyIdYesIdentifier (UUID) of a DIRECT CHILD key of the calling key — the one returned by `create_api_key` in `apiKey.id`. A key that was not issued by the calling key (a sibling, an account key, the calling key itself) is refused.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / keyId / description
      Previous value: -"Identifiant (UUID) d’une clé FILLE DIRECTE de la clé appelante — celui rendu par `create_api_key` dans `apiKey.id`. Une clé qui n’a pas été émise par la clé appelante (une sœur, une clé du compte, la clé appelante elle-même) est refusée."New value: +"Identifier (UUID) of a DIRECT CHILD key of the calling key — the one returned by `create_api_key` in `apiKey.id`. A key that was not issued by the calling key (a sibling, an account key, the calling key itself) is refused."
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds substantial extra behavior: revocation takes effect immediately, non-child identifiers are refused without any write, repeat calls are idempotent (`alreadyRevoked: true`), and the action frees a slot in the live-child-key cap. This is far beyond what the 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-loads the core action and scope constraint in the first sentence, then layers preconditions and edge cases. Dense but every sentence carries distinct information (scope, auth, idempotency, cap effect); borderline verbose with some repeated wording about direct children.

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?

No output schema exists, and the description supplies the relevant return signal (`alreadyRevoked: true`), the authorization requirement, the target-scope constraint, and the idempotency guarantee. Nothing an agent needs to call this correctly is missing.

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; the description reinforces the parameter's meaning by tying it to the `apiKey.id` returned by `create_api_key` and restating the refusal conditions for non-child keys. Much of this overlaps with the schema's own parameter description, which caps the value modestly above baseline.

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 (REVOKES) and a precisely scoped resource (a CHILD key issued by the calling key), with the contrast to `create_api_key` named directly. The agent can distinguish this from sibling key-management tools without opening the schema.

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?

Explicitly gives when-to-use (orchestrator tearing down an agent's key at shutdown), when-not-to-use (siblings, account keys, the calling key — all refused), and the required precondition (`emit_keys` scope on the calling key). Alternatives and exclusion conditions are all 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.