Skip to main content
Glama
Hemir95

WaveMind Preset MCP

by Hemir95

WaveMind Preset MCP

A Model Context Protocol server that creates and manages presets for WaveMind NAM Universal II (the free NAM plugin that chains Pedal NAM → Amp NAM → 4 Cabinet IR slots → EQ → FX) by writing the plugin's own preset files directly — no GUI automation, no host DAW tricks.

How it works

WaveMind NAM Universal II stores user presets as plain XML:

%APPDATA%\WaveMind\NAM Universal II\Presets\User\<name>.preset

The root <PARAMETERS> element carries the slot file paths as attributes:

Attribute

Slot

profileFileAmplifiers

Amplifier .nam capture

profileFilePedals

Pedal .nam capture (optional)

impulseFile0..3

Cabinet IR .wav files (up to 4, optional)

plus ~177 <PARAM id="..." value="..."/> children: amp EQ (bass/mid/treble/presence), gate, IntellEQ, per-slot level/pan/mic/IR-shift/HPF/LPF, delay, reverb, chorus, compressor...

The visible preset name = the file name, and the plugin picks up new/edited/deleted .preset files live — no restart needed. So an agent (or a script) can generate complete presets pointing at an organized capture library, and they appear in the plugin instantly.

Related MCP server: u-he-preset-randomizer-mcp

Setup

Install (either way):

# with uv/uvx (recommended - no install step, cached)
uvx wavemind-preset-mcp

# or classic pip
pip install wavemind-preset-mcp
  1. Create the template: open WaveMind NAM Universal II in any DAW, load anything, and save a preset. Then copy that .preset file to this repo's folder as wavemind_mcp/plantilla.preset (or point WAVEMIND_TEMPLATE at it). The template provides the full parameter list. (A placeholder template ships with the package — it has the correct parameter ids but points at dummy paths, so a real one from your plugin is strongly recommended.)

  2. (Optional) Organize your library: put your .nam captures and .wav IRs in folders and point WAVEMIND_NAM_DIR / WAVEMIND_IR_DIR at them (used by the search/inventory tools).

MCP configuration

{
  "mcpServers": {
    "wavemind": {
      "command": "uvx",
      "args": ["wavemind-preset-mcp"],
      "env": {
        "WAVEMIND_NAM_DIR": "C:\\Music\\NAMs",
        "WAVEMIND_IR_DIR": "C:\\Music\\IRs"
      }
    }
  }
}

Tools

Tool

What it does

create_preset

Write a new .preset: amp + optional pedal + up to 4 cab IRs + any parameters

list_presets

List user presets with their amp/pedal/cab slots

read_preset

Inspect a preset (slots + key parameters)

delete_preset

Delete a preset

list_param_ids

The full valid parameter catalog from the template

buscar_biblioteca

Search the organized capture library by text

categorias_biblioteca

Inventory the library (categories + counts)

Built-in engineering defaults

Every generated preset gets, unless overridden:

  • Solo OFF on all 4 cabinet slots (a soloed slot mutes the rest of the chain)

  • Stereo balance: symmetric L/R pairs (2 cabs), centered main + equal sides (3), or wide pair

    • centered fillers (4) — so no earpiece ends up silent

  • Phase/time alignment + 90 Hz HPF on every populated slot (AlignComp, IRShift, HPF) — blending unaligned IRs causes low-frequency comb filtering (a "wobble"); this kills it

Tips

  • Documented per-song amp settings for popular records exist on sites like ToneMirror and TonesMatch — use them as the params for create_preset instead of guessing.

  • Remember input calibration: each .nam capture was taken at a specific input level (often stated in its Tone3000 page). If an amp sounds under/over-distorted, calibrate your interface's input level first.

  • Tone3000 hosts free NAM captures; the download URLs are public and the IDs live in each tone page's payload.

Disclaimer

This is an independent community tool. It is not affiliated with or endorsed by WaveMind, Tone3000, or any plugin vendor. "NAM" refers to the open Neural Amp Modeler format.

Available Tools

7 tools
buscar_bibliotecaBuscar BibliotecaC

Search the organized capture library. tipo: 'nam', 'ir' or 'all'.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNoall
textoYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Search' implies a read-only operation, but the description says nothing about result caps, pagination, matching semantics (substring vs. exact), or auth/permission needs. An output schema exists, which covers return shape, but other behavioral traits remain undisclosed.

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?

Two short sentences with the purpose front-loaded and the parameter hint attached directly to it; there is no filler. The only structural weakness is that the cryptic enum values are stated without decoding.

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

Completeness2/5

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

With an output schema present, return values need not be described, but the description still leaves the core concept ('organized capture library'), the meaning of the 'tipo' values, and the relationship to categorias_biblioteca undefined. For a search tool this is not enough for reliable invocation.

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 0% and the schema declares no enum for 'tipo', so the description does add value by enumerating the accepted values ('nam', 'ir', 'all'). However, it never explains what those abbreviations mean, and 'texto' is left entirely unexplained, so the compensation for the coverage gap is only partial.

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

Purpose3/5

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

The description gives a verb and a resource ('Search the organized capture library'), so the basic action is identifiable. However, 'organized capture library' is an undefined concept in this tool set, and nothing distinguishes this from the sibling categorias_biblioteca, which presumably also relates to the library.

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?

There is no statement of when to use this tool versus alternatives, no prerequisite or scoping conditions, and no mention of the other library/preset tools in the sibling list. The agent must infer usage entirely from the name.

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

categorias_bibliotecaCategorias BibliotecaB

Inventory the organized library: NAM categories and IR collections with counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 burden. "Inventory" implies a read-only enumeration and the phrase "with counts" hints at aggregate return content, but nothing states whether the result is exhaustive, paginated, permission-scoped, or cached. It adds modest behavioral signal but leaves the important traits unstated.

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?

A single short sentence with the core action front-loaded and no filler. It is efficient, though the unexplained acronyms cost a little clarity per word spent.

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?

An output schema exists, so return values need not be re-explained, and the input is empty. The remaining gap is conceptual: an agent cannot map "NAM categories" or "IR collections" to the domain without external knowledge, so the definition is not self-sufficient.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description does not need to explain syntax or formats because no input exists.

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?

"Inventory the organized library" gives a specific verb+resource, and it enumerates the contents (categories and collections with counts), which separates it from search-style siblings like buscar_biblioteca. The cryptic acronyms "NAM" and "IR" are never expanded, so part of the resource is opaque to an agent that lacks domain context.

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?

There is no when-to-use guidance, no stated prerequisites, and no mention of how this differs from buscar_biblioteca or list_param_ids. An agent must infer from the name alone that this is a browse-and-count tool rather than a search tool.

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

create_presetCreate PresetA

Create a WaveMind preset (.preset XML written to the User presets folder; the plugin lists it live, no restart).

nombre: visible preset name (becomes the file name). ampli_nam: absolute path to the amplifier .nam capture (AMPLIFIER slot). pedal_nam: absolute path to a pedal .nam capture (PEDALS slot), optional. cab1..cab4: absolute paths to cabinet IR .wav files, optional. params: dict of plugin parameter ids to set (run list_param_ids for the full catalog), e.g. {"gate_active": "1.0", "gateThreshold": "-52.0", "amplifier_bass": "5.5", "intelleq_bite": "2.5"}.

ParametersJSON Schema
NameRequiredDescriptionDefault
cab1No
cab2No
cab3No
cab4No
nombreYes
paramsNo
ampli_namYes
pedal_namNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does disclose the side effect (an XML file written to the User presets folder, picked up live with no restart), which is genuinely useful. It omits other behavior an agent needs, such as what happens on a name collision/overwrite or how path errors surface.

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-loads the one-sentence purpose, then a tight per-parameter list with no filler. Slightly dense but every line carries information; only minor trim possible.

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?

An output schema exists, so return values needn't be described, and the parameter coverage is complete. The remaining gap is mutation semantics (overwrite/duplicate handling and path validation) that a create tool should disclose.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate and largely does: it explains nombre (and that it becomes the file name), ampli_nam's slot, pedal_nam's slot, cab1..cab4, and gives a concrete params example with real keys/values plus a pointer to list_param_ids.

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+resource ('Create a WaveMind preset') and immediately clarifies the underlying artifact (a .preset XML written to the User presets folder). This cleanly separates it from siblings like list_presets, read_preset, and delete_preset.

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 by the name and the parameter docs, and it usefully routes the agent to list_param_ids when it needs parameter ids. However, it never states when to prefer this over alternatives or what prerequisites (valid .nam/.wav paths) must hold.

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

delete_presetDelete PresetC

Delete a user preset.

ParametersJSON Schema
NameRequiredDescriptionDefault
nombreYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral burden. It indicates deletion but omits critical details such as permanence, reversibility, required permissions, and side effects. For a destructive tool, this is a significant gap.

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 clear, front-loaded sentence with no wasted words. It is perhaps overly terse for a destructive operation, but conciseness itself is well-executed.

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

Completeness2/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. However, for a destructive tool with no annotations and an undocumented required parameter, the description is far too incomplete to guide safe and correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention the required 'nombre' parameter or explain its meaning. It adds no information beyond the schema's bare property definition.

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?

States a specific verb ('Delete') and resource ('user preset'), which clearly separates it from create_preset, list_presets, and read_preset. However, it does not explicitly differentiate itself from siblings or clarify scope beyond the operation name.

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?

Provides no when-to-use guidance, no when-not-to-use conditions, and no mention of alternatives or prerequisites. The agent must infer usage purely from the operation name.

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

list_param_idsList Param IdsA

List every valid parameter id from the template (usable in create_preset params).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that it reads from a 'template' and the returned values are valid ids, but doesn't describe return format, potential errors, or permissions. With an output schema present, some return behavior is covered elsewhere.

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?

One succinct sentence, front-loaded with the core action and immediately followed by the relevant use case. No fluff.

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 0 params and an output schema, the description covers the essential purpose and downstream use. It lacks behavioral details like whether the list is static or dynamic, but these are not critical for correct invocation.

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?

There are 0 parameters, so no parameter semantics are needed. The baseline for 0 params is 4, and the description doesn't need to add anything.

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 (List) and resource (parameter ids from the template), and clarifies the valid domain. Distinguishes from siblings like list_presets by naming the exact resource returned.

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 parenthetical '(usable in create_preset params)' tells the agent the downstream use case, implicitly when to call it. However, it doesn't explicitly state when not to use it or name alternatives like list_presets.

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

list_presetsList PresetsA

List user presets with their amp/pedal/cab slots.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, but 'list' clearly conveys read-only semantics and it discloses the shape of the returned data (amp/pedal/cab slots). It omits any mention of auth, pagination, or result limits, which is a real gap given zero annotation coverage.

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?

A single front-loaded sentence with no filler. Every word (verb, resource, returned fields) 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?

An output schema exists, so return values need not be explained in the description. For a parameterless read-only list tool this is nearly sufficient, though a note on scope (all presets vs. paginated) would close the remaining gap.

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?

The tool takes zero parameters, so the schema fully covers inputs. Baseline 4 applies; there is nothing for the description to clarify beyond what the empty schema already conveys.

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 (List) and resource (user presets), qualified by the returned content (amp/pedal/cab slots). The bulk 'list' semantics implicitly separate it from the singular read_preset sibling, but no sibling is named explicitly, so it stops short of a 5.

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 only implied: 'List user presets' suggests bulk retrieval, which contrasts with read_preset for a single preset. No explicit when-to-use statement, prerequisites, or named alternatives are given.

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

read_presetRead PresetB

Read a preset: slot file paths and key parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
nombreYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. 'Read' strongly implies a safe, non-mutating operation and the mention of returned content adds useful context, but it says nothing about error behavior when the preset is missing or whether any auth is required. An output schema exists, so return structure need not be explained here.

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?

A single tight sentence with the action front-loaded and zero filler. It is efficient, though bordering on under-specified for a tool with an undocumented parameter.

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 output schema covers return values, so the description needn't explain them. However, with a required parameter left undefined and no usage or failure context, the definition is only minimally complete for correct invocation.

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?

The single parameter 'nombre' has 0% schema description coverage, so the description must compensate — and it does not. It never clarifies whether 'nombre' is a preset name, slot identifier, or file path, leaving the one required input effectively undocumented.

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?

States a specific verb+resource ('Read a preset') and adds what is returned ('slot file paths and key parameters'). This distinguishes it from list_presets and the create/delete siblings, though it never names those alternatives explicitly.

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?

No when-to-use guidance and no alternatives named. An agent must infer that this is the singular counterpart to list_presets, with nothing in the text confirming that or describing prerequisites such as needing an existing preset name.

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. 7 tool updatesv1.0.0
    • First observedbuscar_biblioteca
    • First observedcategorias_biblioteca
    • First observedcreate_preset
    • First observeddelete_preset
    • First observedlist_param_ids
    • First observedlist_presets
    • First observedread_preset

TDQS

B3.2/5.0

Scored across 7 tools

Disambiguation4/5

The four preset tools (list/read/create/delete) target clearly distinct operations, and list_param_ids is a distinct helper for create_preset. The two library tools (buscar_biblioteca search vs categorias_biblioteca inventory) overlap somewhat since both explore the same library, but their purposes are distinguishable.

Naming Consistency3/5

Five tools follow a clean English verb_noun pattern (list_presets, read_preset, create_preset, delete_preset, list_param_ids), but the two library tools switch to Spanish, and categorias_biblioteca is noun-oriented rather than verb_noun, breaking the pattern.

Tool Count5/5

Seven tools is well-scoped for a preset management server, with each tool covering a distinct preset lifecycle action or a supporting library/parameter lookup.

Completeness3/5

Create, read, delete, list, and parameter discovery are covered, but there is no update/edit_preset operation, so modifying an existing preset's slots or params is a notable gap. Library browsing and search are present but no cleanup/delete for library entries.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Lets AI assistants control a NUX MG-30 guitar processor over USB MIDI by picking amp, cab, drive, modulation, delay and reverb models, toggling blocks, and setting knobs by name. It can also read, save, rename, back up and restore presets on the device, and apply whole tone recipes from JSON patch files.
    77 PyPI
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A local stdio MCP server that lets a client list, load, copy, create, rename, and save guitar presets, select and tweak 44 amp/effect models with bypass, set master and channel mixer levels, and drive practice tools like drums, metronome, tuner, and guarded looper controls on a JBL BandBox Trio over Bluetooth. It exposes 21 named tools alongside a browser GUI sharing the same controller, requiring no cloud account, phone, or JBL One app at runtime.
    MIT