Skip to main content
Glama

Design one RBJ-cookbook biquad and report its numerical behaviour.

biquadDesign

Design one RBJ-cookbook biquad and report its numerical behaviour.

The identical function behind the /lab/biquad coefficient tables. Returns coefficients at the requested sample rate, coefficients at every other rate whose Nyquist limit clears the corner, pole/zero geometry, the −3 dB points solved by bisection, a Q sweep, a gain sweep where the type uses gain, and the quantised forms. The 240-point response curve is omitted unless include=curve is passed. Non-finite values (a notch is −∞ at f0; a low-pass is −∞ at Nyquist) are encoded as the strings "Infinity", "-Infinity" and "NaN" — JSON has no other honest option, and null would be a different answer.

Every result carries provenance.canonicalUrl — the published page for these exact inputs, or the lane hub when they are off the published grid.

Input Schema

NameRequiredDescriptionDefault
qNoFilter Q. Defaults to the type’s own default. Shelves ignore it (S is fixed at 1, matching Web Audio).
fsNoSample rate in Hz. Defaults to 48000.
freqYesCorner (or centre) frequency f0 in Hz. Must be below Nyquist.
gainNoPeak/shelf gain in dB. Ignored by types that do not use gain.
typeYesFilter type.
includeNoOptional heavy block to include, omitted by default. "curve": The 240-point log-spaced magnitude response, and one per sweep row.

Output Schema

NameRequiredDescriptionDefault
inputsYesThe parsed inputs, echoed back with defaults filled in.
resultYesThe solved analysis. Shape is per-tool.
licenseYes
provenanceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/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 behavioral burden and does so richly: it enumerates the returned blocks (per-rate coefficients, pole/zero geometry, bisection-solved −3 dB points, Q sweep, gain sweep, quantised forms), discloses that the curve is omitted unless requested, and explains the non-finite encoding convention and its rationale. The provenance.canonicalUrl guarantee is also documented.

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?

Front-loaded with the one-line purpose before the output inventory, and each subsequent sentence conveys distinct information (returned blocks, omitted curve, non-finite encoding, provenance). It is dense but not padded, though the non-finite encoding aside is slightly discursive for a tool description.

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?

An output schema exists, so return values need not be explained, yet the description still gives enough to anticipate the payload structure and the optional curve block. With no annotations and a 6-parameter schema, nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters including the enum for include and the shelf/gain caveats. The description mostly restates the include=curve behavior already in the schema, adding no format or constraint detail beyond it — the correct baseline when the schema does the heavy lifting.

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 (design) and resource (one RBJ-cookbook biquad) plus the reporting scope, so an agent immediately knows this is a DSP filter-design calculator. Siblings (gaussianBeam, llmVramFit, roomModes, etc.) are entirely unrelated domains, so there is no ambiguity to resolve.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It anchors the tool to a concrete referent ('the identical function behind the /lab/biquad coefficient tables') and states the condition for the heavy include=curve block, which is implied usage guidance. However it never says when to prefer this over other approaches or when not to call it; usage is inferred rather than stated.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources