Skip to main content
Glama

Release every key this server holds

gma3_hardkeys_release_all

Release every key held by this server's bridge session, newest first, and optionally retry unresolved releases after shortcuts are restored. Use when input is disabled to recover stuck keys.

Instructions

Release every key held by this server's bridge session, newest first, with the stored press tuples (never re-resolved), and with recover: true also re-attempt the releases that stayed unresolved (a remapped or disabled shortcut, a release that raised). Works while input is disabled: this is the recovery path. A release on the keyboard backend is 'dispatched' (no per-key readback), an unresolved one is reported as unknown and stays as a record until it succeeds or the operator runs Plugin "gma3_mcp_bridge" "input recover". Only this server's keys are affected; another client's or a physical operator's keys are not.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
recoverNoAlso re-attempt this server's unresolved releases (after the operator restored a remapped route or re-enabled shortcuts).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers: release ordering (newest first), that stored press tuples are never re-resolved, that the keyboard backend only 'dispatches' with no per-key readback, that unresolved releases are reported as unknown and persist until they succeed, and exactly whose keys are affected. These are non-obvious behavioral traits an agent could not infer from the schema.

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?

The core action and its scope are front-loaded, and nearly every clause adds operational information. It is a single dense run-on sentence with strained phrasing ('with recover: true also re-attempt the releases that stayed unresolved') and a slightly redundant closing scope sentence, so readability suffers even though little is truly wasted.

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?

No output schema and no annotations, so the description must cover behavior and results, and it does: it explains what a successful dispatch looks like, how unresolved releases surface, and that records persist. The only loose end is what the call actually returns (list of keys, counts), which an agent calling this would likely want.

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 schema already documents the single 'recover' boolean and the baseline is 3. The description goes beyond it by explaining the concrete failure conditions recover addresses (a remapped or disabled shortcut, a release that raised) and the persistence semantics of unresolved records.

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 with scope: 'Release every key held by this server's bridge session'. The qualifier 'this server's bridge session' and the closing scope sentence ('another client's or a physical operator's keys are not') distinguish it cleanly from siblings like gma3_hardkeys_status or gma3_keyboard.

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?

Gives a clear conditional context: 'Works while input is disabled: this is the recovery path', which tells the agent when this tool is the right choice. It also names the operator-side recovery command. It does not, however, explicitly contrast with the sibling status/release tools by name, so the routing guidance is contextual rather than exhaustive.

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