Skip to main content
Glama
oneguard-mcp

oneguard-mcp

Official
by oneguard-sa

Create an API key

oneguard_keys_create

Creates a new API key with permissions, vault scope, and lifetime capped by the current key, and returns the raw secret once. Call only when explicitly requested.

Instructions

Creates a new API key and returns the raw secret exactly once. The new key can never be broader than the current key: no extra permission, vault scope, capabilities or lifetime. Use oneguard_keys_list first if you need the current key scope. Only call this when the user explicitly asked to create a key.

Input Schema

NameRequiredDescriptionDefault
nameYesName of the new key.
neverNoThe key never expires. Cannot outlive the current key.
vaultsNoVault ids or id prefixes, or "all". Omit or pass [] for all vaults. Restricted to the current key vault scope.
permissionNoread or write.read
duration_daysNoDays until expiry. Defaults to 30. Ignored when never is true.
can_create_keysNoLet the new key create and manage other keys. Requires the current key to have this permission.
can_create_vaultsNoLet the new key create vaults (write keys only). Requires the current key to have this permission.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.0

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (which only say this is a non-read-only, non-destructive write), the description discloses the critical irreversibility that the raw secret is returned exactly once and the privilege-inheritance rule that a new key can never exceed the current key's permissions, vault scope, capabilities or lifetime. This is exactly the context an agent needs before an unrecoverable mutation.

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?

Three short sentences, front-loaded with the action and the irreversible return, then the scope constraint, then the consent condition. No filler or repetition.

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 a 7-parameter mutation with no output schema, the description covers the response ('raw secret exactly once') and the privilege ceiling. A minor gap is not stating what to do if the secret is lost (e.g. revoke and recreate), but nothing essential to invoking it 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 description coverage is 100%, so the baseline is 3; the description adds cross-cutting meaning by framing every optional field as bounded by the current key's scope. It does not restate individual fields such as never/duration_days interplay, but the schema already carries that.

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 ("Creates a new API key") plus the key return behavior, which cleanly separates it from oneguard_keys_list, oneguard_keys_update and oneguard_keys_revoke. An agent can identify the operation 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?

Gives an explicit precondition ("Only call this when the user explicitly asked to create a key") and routes to the sibling oneguard_keys_list when the current scope is unknown. Both the when and the when-not are stated.

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