Skip to main content
Glama

get_button_events

Read-only

Reads button press and release events after a given ID without consuming them, enabling polling of recent hardware button activity and push-to-talk speech recording/release actions.

Instructions

Read button press/release events after an ID without consuming them. At most 100 recent events are kept. IDs reset when session_id changes; then restart from after_id=0. When the push-to-talk bridge is running, holding this button records speech and release sends it to Hardware Voice.

Input Schema

NameRequiredDescriptionDefault
after_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true; the description reinforces this by clarifying that events are not consumed and adds genuinely new facts: a 100-event retention buffer, ID reset on session change, and the push-to-talk side effect of holding the button. It does not describe the shape of returned events, which matters since there is no output 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?

Three front-loaded sentences; the cursor semantics come first and the retention limit and bridge side effect follow. The final sentence about push-to-talk is slightly tangential to a read tool but earns its place as context for what the events mean.

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?

With no output schema, the description should ideally indicate what an event record contains; that is the main omission. Everything else an agent needs — cursor behavior, buffer limit, reset condition — is 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?

The single parameter has 0% schema description coverage, so the description must carry it, and it does: it explains after_id is an exclusive cursor that survives between calls and that polling must restart at 0 after a session change. It never spells out the integer semantics of a default of 0 beyond that, but the meaning is clear.

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 ('Read button press/release events') plus a key scope qualifier ('without consuming them'), which is exactly the distinction an agent needs. It is clearly separated from mutation-style siblings like press_bot.

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 concrete polling instructions: read after an ID, and restart from after_id=0 when IDs reset on session_id change. It stops short of naming an alternative sibling or saying explicitly when not to use it, but the operational context is clear.

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