Skip to main content
Glama

seekrit — secrets for agents

restore_secret

Roll a secret back to an earlier version — the undo for a bad write. The stored ciphertext is replayed as a NEW version, so history is append-only and nothing is overwritten. Read list_secret_versions first to choose the version. No decryption happens, which is why this works here and not only on the local crypto plane. Returns { ok, name, restoredFrom, version } where version is the new head.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
appYesApplication slug or id, as returned by list_apps (e.g. "storefront").
envYesEnvironment slug or id within that application, as returned by list_envs (e.g. "production").
orgNoOrganization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs.
nameYesThe secret's name — the variable name it is injected as, e.g. "DATABASE_URL". Names come from list_secrets; this is never a value.
versionYesThe version number to restore, taken from list_secret_versions. Its ciphertext becomes a new version on top of history — the old version is not removed.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / app / description
      Added value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")."
    • addedInput schema / properties / env / description
      Added value: +"Environment slug or id within that application, as returned by list_envs (e.g. \"production\")."
    • addedInput schema / properties / name / description
      Added value: +"The secret's name — the variable name it is injected as, e.g. \"DATABASE_URL\". Names come from list_secrets; this is never a value."
    • addedInput schema / properties / org / description
      Added value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
    • addedInput schema / properties / version / description
      Added value: +"The version number to restore, taken from list_secret_versions. Its ciphertext becomes a new version on top of history — the old version is not removed."
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only state readOnlyHint=false, idempotentHint=false, and destructiveHint=false, but the description goes further by explaining that history is append-only, nothing is overwritten, the ciphertext is replayed as a new version, and no decryption happens. This meaningfully enriches the tool's behavioral profile.

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?

The description is compact and front-loaded with the core purpose, then adds the most important behavioral nuance, a prerequisite, and the return shape. Every sentence earns its place without unnecessary 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?

For a tool of this complexity, the description covers the action, side effects, prerequisite, non-destructive nature, and return value. Even without an output schema, the explicit return shape makes the tool fully callable by an agent.

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 schema already documents all parameters. The description reinforces that version comes from list_secret_versions and becomes a new head, but it does not add substantive parameter semantics beyond 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?

The description states a specific verb and resource: rolling a secret back to an earlier version, framed as 'the undo for a bad write.' It clearly distinguishes this from related operations like delete_secret by emphasizing append-only replay rather than overwrite or removal.

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?

The description gives clear context for when to use the tool and explicitly instructs the agent to read list_secret_versions first to choose the version. It does not enumerate explicit when-not-to-use cases, but the prerequisite and behavioral framing provide solid usage guidance.

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