Skip to main content
Glama

Redeem a fmrl.site key code

fmrl_redeem
Destructive

Redeem a one-time fmrl key code to set this machine's saved key; use only when given a code, and the current key remains if redemption fails.

Instructions

Trade a key code for the fmrl key it carries and make that this machine's key, saved in its credentials file. A key rotated from the fmrl.site keys page reaches its agent as a key code: 26 letters and digits in groups of four, like K7QX-M2PA-…, which works once, for 10 minutes. Use it only when the person gives you such a code, as in "Redeem my fmrl key code …"; to replace this machine's own secret, use fmrl_rotate. A replaced key's ring stays in the file. A spent or expired code fails and the current key is kept, and when FMRL_API_KEY sets the key nothing is redeemed.

Input Schema

NameRequiredDescriptionDefault
codeYesThe key code, as given; dashes, spaces and case don't matter.

Output Schema

NameRequiredDescriptionDefault
fileYes
prefixYes
replacedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.17.8
    • removedInput schema / additionalProperties
      Removed value: -false
  2. First observedv0.17.6

TDQS

A4.6/5.0
Behavior4/5

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

The annotations already declare destructiveHint=true and idempotentHint=false, and the description adds substantial context beyond them: the code works once, for 10 minutes, a spent or expired code fails with the current key kept, the replaced key's ring stays in the file, and FMRL_API_KEY short-circuits redemption. These are real failure-mode and side-effect disclosures. It could say more about what a rotation does to in-flight sessions, but the coverage is well above the bar the annotations set.

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?

Purpose is front-loaded in the first clause, followed by format, usage constraint, alternative, and failure behavior in a tight sequence with no filler. The single semicolon-linked paragraph is dense, and splitting the failure-mode sentence out would improve scanability.

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 one-parameter mutation whose return value is covered by an output schema, nothing an agent needs is missing: prerequisites, alternative tool, side effects, failure behavior, and the environment-variable override are all present.

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% and the schema already says dashes, spaces and case do not matter. The description still adds meaning by describing the code's shape: 26 letters and digits in groups of four, such as K7QX-M2PA-…, so an agent can recognise a valid code before calling. That goes slightly 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: trade a key code for the fmrl key it carries, then install it as this machine's key in its credentials file. It also explicitly names fmrl_rotate as the sibling it is not, so an agent can distinguish the two tools without comparing schemas.

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?

The description gives an explicit when: the person hands over a code, with the literal phrasing 'Redeem my fmrl key code …'. It gives an explicit when-not: to replace this machine's own secret, use fmrl_rotate. The condition that selects the alternative is named, not inferred.

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