Skip to main content
Glama
OddieDank

openisd-mcp

by OddieDank

openisd-mcp

MCP server (stdio) for the OpenISD Thiele/Small loudspeaker physics engine.

An agent (Claude, opencode, etc.) can:

  • search_drivers("dayton 10") → match from 1065+ curated .wdr drivers

  • get_driver → full T/S parameters with upstream validation issues (errors block, warns only omit a reference line)

  • design_box → sealed (target Qtc) or vented (QB3/Thiele alignment) with Vb, Fb, port dimensions, EBP suitability advice

  • simulate → SPL curve (≈60 points), F3, Qtc/Fc or Fb, max SPL & limiter (Xmax vs power), excursion & impedance peaks; degenerate designs (NaN curves) are rejected before returning

  • evaluate_design → automated PASS/WARN/FAIL checklist: Qtc/Fb alignment, excursion margin vs Xmax, port velocity/chuffing, F3 extension, SPL limiter, impedance peak, box volume sanity

  • add_driver → persist a custom driver to the library (generates .wdr via upstream exporter)

All physics comes from the vendored @openisd/engine + @openisd/winisd (pinned to a commit SHA) — zero reimplementation. The server is stateless: the design lives in the agent's conversation.

Quick start (opencode / Claude Desktop / any MCP client)

{
  "mcpServers": {
    "openisd-mcp": {
      "command": "npx",
      "args": ["openisd-mcp"]
    }
  }
}

opencode: opencode.json in project root or ~/.config/opencode/opencode.json Claude Desktop: claude_desktop_config.json (see below)

Then ask your agent:

"Search for 10-inch Dayton drivers and evaluate a sealed box with Qtc 0.707 for the first one"

Claude Desktop config

// ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
// %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
  "mcpServers": {
    "openisd-mcp": {
      "command": "npx",
      "args": ["openisd-mcp"]
    }
  }
}

Related MCP server: LTspice MCP Server

Development (vendoring the engine yourself)

git clone https://github.com/OddieDank/openisd-mcp
cd openisd-mcp
npm install
npm run vendor   # downloads OpenISD@SHA, compiles, indexes 1065 drivers
npm run build
npm test         # golden regression + flow + self-test

The scripts/vendor.sh script documents the SHA, applies one documented patch (winisd's workspace import @openisd/engine → relative), compiles with tsc, and builds the driver search index using upstream's own Driver.fromWdr.

Updating the vendored engine

# Edit OPENISD_SHA to a newer commit from Johnlon/openisd
npm run vendor
npm test

Architecture notes

  • Vendor commit pinned in OPENISD_SHA — reproducible, diffable.

  • Engine source is TypeScript with zero deps; compiled to plain JS for runtime stability.

  • All tools validate at the boundary (zod) before touching the engine.

  • Engine Result<T> issues propagate as-is: agent sees {level:'error'} vs {level:'warn'}.

  • classifyFinite runs on every sweep — a NaN curve never reaches the agent.

  • Self-test at startup mirrors OpenISD's AD-5: golden SPL match (<0.1 dB), vented sweep finite, validation alive.

License

MIT — same as OpenISD.

Available Tools

6 tools
add_driverA

Add a custom driver to the library. Takes T/S params (friendly units), writes a WinISD-compatible .wdr using upstream's exporter, and makes it searchable immediately. Returns the library file name to use in other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
FsYesResonant frequency, Hz
PeNoRated power, W
ReYesDC resistance, ohm
QesNo
QmsNo
QtsNo
nameNoDisplay name (used for filename)
Le_mHNo
Vas_lYesEquivalent compliance volume, litres
brandNo
modelNo
Sd_cm2YesPiston area, cm²
Xmax_mmNo
commentNo

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description takes on the full burden and does well: it discloses that it writes a WinISD-compatible .wdr via upstream's exporter, makes the driver searchable immediately, and returns the library file name. It does not mention overwrite behavior or permissions, but the core side effects and return contract are explicit.

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

Conciseness5/5

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

Three sentences, each earning its place: purpose, behavior, and return value. No filler or repetition of schema fields. Front-loaded with the primary action, making it easy for an agent to quickly assess relevance.

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?

For a 14-parameter mutation tool with no annotations and no output schema, the description covers the main contract but leaves out edge-case behavior such as duplicate names, overwrites, or validation of the minimal required parameters. The return value is included, which helps, but the description could be more complete for a tool with this many inputs.

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 coverage is only 43%, so the description must compensate, but it only adds 'T/S params (friendly units)' and the return file name. It does not explain units or meaning for under-described fields like Qes, Qms, and Qts, though those are standard domain terms. This is adequate but not fully compensating for the schema gap.

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?

The description uses a specific verb ('Add') with a clear resource ('custom driver to the library') and distinguishes itself from siblings like search_drivers and get_driver by stating it creates new entries and writes a WinISD-compatible file. It also states the immediate side effect of searchability and the return value. This makes the tool's purpose unambiguous.

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?

The description clearly sets the context: use this when adding a custom driver from T/S parameters, after which it becomes searchable. It does not explicitly name alternatives or when-not-to-use conditions, but the intent is clear enough relative to the sibling tools that it is not a search, design, or simulation operation. A small exclusion note would push this to a 5.

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

design_boxA

Compute an enclosure for a driver: sealed from a target Qtc (default 0.707 Butterworth) or vented from the QB3/Thiele alignment (Vb, Fb, port dimensions). Includes EBP suitability advice. Returns simulateParams ready to pass to simulate.

ParametersJSON Schema
NameRequiredDescriptionDefault
FbNoVented: override QB3 tuning, Hz
tsNoInline T/S parameters if not using the library
QtcNoSealed target Qtc (default 0.707)
boxYes
Vb_lNoVented: override QB3 box volume, litres
driverNameNoLibrary driver file, from search_drivers (e.g. "winisd__Dayton RSS315HFA-8.wdr")
portDia_mmNoVented: port diameter, mm (default 25% of cone diameter)

TDQS

A3.8/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. It discloses the computation methods (sealed/vented alignments), the included EBP advice, and the output form (simulateParams). It does not explicitly state read-only or error behavior, but for a compute tool the intent is clearly non-destructive and the described behavior is sufficient.

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

Conciseness5/5

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

The description is two sentences long, front-loads the core purpose, and every phrase contributes. It mentions defaults, alignment types, a key feature (EBP advice), and the downstream integration with simulate—all without redundancy. Excellent structure and no wasted words.

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?

The description covers the two design modes, defaults, and the output contract ('Returns simulateParams ready to pass to simulate'), which is important since no output schema exists. It leaves some input prerequisites implicit (e.g., need for driverName or inline ts), but the schema covers those fields with descriptions. For the tool's complexity, the description is largely complete.

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 86%, so the schema already documents most parameters. The description adds context for Qtc default (0.707 Butterworth) and the QB3/Thiele alignment mapping, but does not significantly go beyond the schema. It is acceptable but not exemplary.

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 states a specific verb and resource ('Compute an enclosure for a driver') and clearly distinguishes sealed vs. vented design methods. It does not explicitly name sibling tools, but 'Returns simulateParams ready to pass to simulate' helps separate it from simulate. The core purpose is unmistakable.

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?

The description implies a workflow: compute an enclosure to produce simulateParams for simulate. It explains how to use it (sealed via Qtc, vented via QB3/Thiele), but does not explicitly say when to choose this over alternatives like simulate, evaluate_design, or search_drivers. No exclusions or alternative-routing guidance are given.

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

evaluate_designA

Full design evaluation: runs design_box + simulate + automated PASS/WARN/FAIL checklist in one call. Checks: Qtc/Fb alignment, excursion margin vs Xmax, port velocity/chuffing (Mach ≤5%), F3 extension, SPL limiter, impedance peak, box volume sanity. Returns overall verdict + detailed checks with thresholds. Supports filters for subsonic protection.

ParametersJSON Schema
NameRequiredDescriptionDefault
FbNoVented: override QB3 tuning, Hz
QlNoLeakage loss (default 10)
egNoDrive voltage, V (default 2.83)
tsNoInline T/S if not using library
QtcNoSealed target Qtc (default 0.707)
boxYes
Vb_lNoVented: override QB3 volume, litres
wiringNo
filtersNoFilter chain: highpass (subsonic), lowpass, linkwitz transform, peaking EQ
nDriversNo
driverNameNoLibrary driver file, from search_drivers
portDia_mmNoVented: port diameter, mm
portLen_mmNoVented: explicit port length, mm

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations to carry the safety/behavior burden, the description discloses that the tool orchestrates multiple simulation steps, returns an overall verdict plus threshold-based checks, and supports filters. It does not explicitly state whether the call is read-only or whether it mutates library data, but 'evaluation' plus the described behavior makes side-effect-free operation the reasonable inference.

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

Conciseness5/5

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

The description is two tight sentences with a clear front-loaded purpose, a scannable checks list, and a return-value statement. Every phrase earns its place; there is no filler or repetition of schema details.

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?

Given the tool's complexity (13 parameters, nested objects, no output schema), the description provides the essential outcome semantics: overall verdict and detailed checks with thresholds. The main gap is operational prerequisites like supplying driver data via either ts or driverName, but the schema's inline descriptions already cover those.

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 77%, so the schema already explains most parameters. The description adds meaningful semantic context by tying parameters to evaluation criteria: Qtc/Fb alignment, Xmax excursion, port velocity/chuffing with Mach ≤5%, F3 extension, SPL limiter, impedance peak, and box volume sanity, plus filter usage for subsonic protection.

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?

The description states a specific action ('Full design evaluation'), a clear resource ('design'), and immediately distinguishes itself from siblings by saying it 'runs design_box + simulate + automated PASS/WARN/FAIL checklist in one call.' The enumerated checks make the tool's scope concrete and unambiguous.

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?

The description clearly positions this as the all-in-one evaluation entry point versus the lower-level design_box and simulate tools, and notes filter support for subsonic protection. It does not explicitly state when not to use it or name alternatives for raw simulation, but the composite 'one call' framing provides clear contextual guidance.

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

get_driverA

Load a library driver: full T/S parameters (friendly units) plus upstream validation issues. Warns (e.g. Xmax undefined) do not block — they only omit reference lines.

ParametersJSON Schema
NameRequiredDescriptionDefault
driverNameYesDriver file from search_drivers

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description must carry the burden. It reveals that warnings (like Xmax undefined) do not block and only omit reference lines, which is useful behavioral information. However, it doesn't mention whether this is a read-only operation, any potential errors, or what happens if the driver is not found. The description adds some value but lacks depth on error handling or side effects.

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

Conciseness5/5

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

The description is two sentences, front-loading the primary purpose and then adding a concise note about warnings. No unnecessary words, every sentence earns its place.

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 tool with one parameter and no output schema, the description covers the essential aspects: what it loads, the output content, and a key behavioral nuance (warnings don't block). It could mention more about return format or error cases, but for a single-parameter loader, it is adequately complete.

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?

The schema coverage is 100% for the single parameter, with a description 'Driver file from search_drivers'. The tool description adds little beyond that, but since coverage is high, a baseline of 3 is appropriate. The description doesn't elaborate on the parameter format or any constraints beyond what the schema says.

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 clearly states the verb 'Load' and the resource 'library driver', and specifies what is returned (full T/S parameters in friendly units plus upstream validation issues). It distinguishes from siblings like search_drivers (which searches) and add_driver (which adds), though it doesn't explicitly name alternatives. The purpose is clear and specific.

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?

The description implies the tool is for loading a driver by name, and the schema mentions the parameter comes from search_drivers, which gives a hint of the workflow. However, it doesn't explicitly state when to use this versus other tools (e.g., when you need full parameters vs. search results), nor does it mention any exclusions or prerequisites beyond the driver name.

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

search_driversA

Search the OpenISD driver library (1600+ woofers/subs, from WinISD .wdr files) by brand/model keywords. Returns matching drivers with key T/S params and the file to use as driverName elsewhere.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesKeywords, e.g. "dayton rss315" or "b&c 12"

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden. It explains the data source, search behavior, and return intent, which is useful. However, it does not disclose how results are ordered, whether matching is fuzzy/exact, or what happens when no matches are found. For a search tool this is adequate but not rich.

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

Conciseness5/5

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

The description is a single, dense sentence that front-loads the main action and resource, then efficiently states return value and downstream use. Every clause adds value with no filler or repetition of schema details.

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?

With no output schema, the description must explain return values, and it does state that matching drivers with key T/S params and a `file` are returned. However, it is vague about the result shape (list vs. single object), which T/S params are included, and the role of `limit`. These gaps are noticeable for a 2-parameter tool.

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 50%: `query` is described in the schema, but `limit` has no description and the tool description does not mention it. The description adds only marginal semantics for `query` ('brand/model keywords') and provides no guidance on `limit`, leaving the agent to guess its behavior.

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?

The description clearly states the action ('Search'), the specific resource ('OpenISD driver library'), and the scope (by brand/model keywords over 1600+ woofers/subs from WinISD .wdr files). It differentiates from siblings by indicating this is the lookup step that returns a `file` to be used as `driverName` elsewhere, distinguishing it from get_driver and simulation tools.

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?

The description gives clear context for when this tool is appropriate: when you need to find drivers by brand/model keywords. It also signals downstream usage by noting the returned `file` is meant to be used as `driverName` elsewhere, but it does not explicitly state when not to use it or name alternatives like get_driver.

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

simulateB

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.

ParametersJSON 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)

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedadd_driver
    • First observeddesign_box
    • First observedevaluate_design
    • First observedget_driver
    • First observedsearch_drivers
    • First observedsimulate

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: searching, loading, designing, simulating, adding, and evaluating. There is no overlap or ambiguity in what each tool does.

Naming Consistency4/5

Most tools follow a verb_noun pattern (e.g., search_drivers, get_driver, design_box, add_driver, evaluate_design). The single exception is 'simulate', which is a bare verb but still clear and consistent in style.

Tool Count5/5

Six tools cover the core workflow of speaker design (search, load, design, simulate, add, evaluate) without bloat. Each tool earns its place and the set feels well-scoped for the server's purpose.

Completeness4/5

The surface covers the main lifecycle: discovery, loading, design creation, simulation, custom additions, and full evaluation. Minor gaps exist (e.g., no update or delete for drivers), but these are non-essential and the core domain is well covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to perform unit-aware engineering calculations with automatic unit conversion, dependency resolution, and access to 500+ units across 75+ categories through the CalcsLive calculation engine.
    3
    11 npm
    MIT
  • F
    license
    C
    quality
    C
    maintenance
    This server enables LLMs to design, simulate, and debug electronic circuits using LTspice via natural language commands. It automates netlist generation, library component validation, and iterative error correction for SPICE simulations.
    2
    1
    -
  • A
    license
    A
    quality
    C
    maintenance
    Provides AI agents with instant, structured access to electronic component datasheets, pinouts, and electrical specifications without requiring PDF uploads. It enables seamless part searching, design validation, and side-by-side component comparisons across major hardware providers.
    12
    37 npm
    12
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides audio inspection, conversion, processing, and generation capabilities via SoX, enabling AI agents to 'hear' and manipulate audio files through structured JSON interfaces.
    MIT