Skip to main content
Glama
OddieDank

openisd-mcp

by OddieDank

simulate

Simulate a sealed or vented loudspeaker design: returns SPL, impedance, and excursion curves, F3, Qtc/Fc or Fb, and max SPL limits. Degenerate designs with NaN curves are rejected.

Instructions

Run the OpenISD Thiele-Small engine on a design: SPL curve (~60 points), F3, Qtc/Fc or Fb, max SPL and its limiter (Xmax vs power), excursion and impedance peaks. Degenerate designs (NaN curves) are rejected before returning. Supports HP/LP/Linkwitz/peaking filters for subsonic protection, etc.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
FbNoVented: tuning, Hz
QlNoLeakage loss (WinISD default Ql=10)
egNoDrive voltage, V (default 2.83 — IEC 60268-5)
tsNoInline T/S parameters if not using the library
boxYes
Vb_lYesBox volume, litres
fmaxNo
fminNo
wiringNo
filtersNoFilter chain: highpass (subsonic), lowpass, linkwitz transform, peaking EQ
nDriversNo
driverNameNoLibrary driver file, from search_drivers (e.g. "winisd__Dayton RSS315HFA-8.wdr")
portDia_mmNo
portLen_mmNoVented: explicit physical port length, mm (Fb then derived)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden and does meaningful work: it discloses that degenerate designs producing NaN curves are rejected before returning, and it states the main behavioral outputs of the engine. It does not discuss error handling beyond NaN rejection or runtime traits, but for a simulation tool this is solidly transparent.

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 description is a single tightly packed sentence with a colon-delimited output list, placing the core purpose and key results first. The trailing 'etc.' is slightly vague but does not meaningfully detract from the overall efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description captures outputs and the key rejection behavior, which is helpful given there is no output schema. However, this is a complex 14-parameter nested-object tool with no annotations, and the description leaves the agent to infer how driver data must be supplied and how this tool relates to evaluate_design. It is adequate but has clear gaps.

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

Parameters2/5

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

Schema description coverage is 57%, so the schema already documents many parameters (Fb, Ql, eg, ts, Vb_l, filters, driverName, portLen_mm), but the description itself adds little per-parameter meaning. It only hints that filters relate to subsonic protection; it does not clarify the driver-sourcing choice (inline ts vs driverName), port-length behavior, or undocumented parameters like fmin, fmax, wiring, and nDrivers.

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?

The description uses a specific verb-resource pair ('Run the OpenISD Thiele-Small engine on a design') and enumerates concrete outputs: SPL curve, F3, Qtc/Fc/Fb, max SPL with limiter, excursion and impedance peaks. It stops short of a 5 because it does not explicitly distinguish itself from the sibling evaluate_design.

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?

Usage is implied rather than stated: an agent can infer 'use this when you need a simulated SPL/F3/limiter response.' The filter support hint ('for subsonic protection') gives some context, but there is no explicit guidance about when to use simulate versus evaluate_design or other siblings.

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