Skip to main content
Glama
hardware-tooling-mcp
by Pheem49

play_test_tone

Generates a pure sine wave test tone on host speakers to verify I2S or ADC microphone sensor input on an MCU, with adjustable frequency and duration.

Instructions

Play a pure sine wave test tone on the host speakers (useful for testing I2S/ADC mic sensors on an MCU).

Args: frequency_hz: Tone frequency in Hz (default 440Hz A4). duration_sec: Duration in seconds (0.5 to 10.0, default 2.0).

Input Schema

NameRequiredDescriptionDefault
duration_secNo
frequency_hzNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full behavioral burden. It discloses the output target (host speakers, not the MCU) and the duration range, but says nothing about whether the call blocks for the tone's duration, whether it can be interrupted, or what happens if no audio device is available.

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 and use case are front-loaded in the first sentence, with parameter detail following in a conventional Args block. Every line carries information, though the docstring-style formatting is slightly more verbose than a single tight sentence would be.

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 simple two-parameter, zero-required-parameter tool with an output schema, the description covers purpose, use case, units, defaults, and one bound. What remains missing is invocation timing (blocking vs. fire-and-forget), which matters somewhat given durations up to 10 seconds.

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 0%, so the description must compensate, and it largely does: frequency is defined in Hz with a default of 440 (A4) and duration is given an explicit valid range of 0.5 to 10.0 seconds with a default of 2.0. The only gap is the absence of a permitted frequency range.

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 ("Play a pure sine wave test tone on the host speakers") and immediately scopes it with the concrete use case of testing I2S/ADC mic sensors on an MCU. That parenthetical also distinguishes it from neighboring audio tools like set_audio_volume and record_audio_sample.

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 when-to-use condition: verifying that an MCU mic/sensor path is actually capturing audio. It stops short of naming alternatives or stating when not to use it (e.g., instead of set_audio_volume for real playback), so it is clear context without exclusions.

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