Skip to main content
Glama

Solve the eigenmodes of a rectangular room.

roomModes

Solve the eigenmodes of a rectangular room.

The identical function behind the /lab/room-modes instrument. Dimensions are in feet and are converted at 0.3048 m/ft. Returns every mode below maxFreq, the three axial fundamentals, mode pile-ups (three or more modes within 5 Hz, capped at 200 Hz because dense modes above the Schroeder crossover are desirable rather than a defect), the widest axial gap below 200 Hz, and Schroeder frequencies at RT60 = 0.3 s and 0.6 s. The full mode list is omitted unless include=modes is passed; counts are always present.

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
widthYesRoom width in feet.
heightYesCeiling height in feet.
lengthYesRoom length in feet.
includeNoOptional heavy block to include, omitted by default. "modes": Every solved mode and the axial subset, with their (nx, ny, nz) orders.
maxFreqNoHighest mode frequency to solve for, in Hz. Defaults to 300. Mode count scales with volume × frequency³, so a large room and a high maxFreq together are refused with a 400 once the enumeration would exceed 100,000 modes; the error names the maxFreq that would have worked.

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

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the ft→m conversion at 0.3048, that the full mode list is omitted unless include=modes is passed, that counts are always present, the 200 Hz cap rationale for pile-ups, and a concrete failure mode (400 once enumeration exceeds 100,000 modes, with the error naming a workable maxFreq). It stops short of stating cost/latency for large solves beyond the refusal threshold.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, but the back half enumerates return contents (axial fundamentals, pile-ups, widest axial gap, Schroeder frequencies, provenance) in detail despite an output schema existing that should already cover this. Several clauses are packed densely and could be trimmed without losing call-relevant information.

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 five-parameter compute tool with a full-coverage schema and an output schema, the description supplies the extra behavior an agent needs: units conversion, the include gate, error behavior, and provenance. Since the output schema already documents returns, the return enumeration is redundant rather than a gap; the only real omission is any statement of compute cost for large solves below the refusal threshold.

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 baseline is 3, but the description adds real meaning: the 0.3048 m/ft conversion for the dimension params, the reason maxFreq is bounded (mode count scales with volume × frequency³), and the concrete consequence of exceeding it. It largely reinforces rather than extends the include enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Solve the eigenmodes of a rectangular room,' plus the identity link to the /lab/room-modes instrument, which pins down scope precisely. It never names or distinguishes itself from the close sibling roomShapeBand, so an agent choosing between the two gets no explicit disambiguation.

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

Usage Guidelines2/5

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

The description describes what the tool returns and how include=modes gates the heavy block, but gives no when-to-use guidance, no prerequisites, and no routing against siblings like roomShapeBand or portLength. The reference to the matching web instrument is contextual flavor, not usage guidance.

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