Generate, edit and save Xfer Serum 2 presets from natural language, over MCP.
Server has 7 well-named tools with clear verb-noun patterns (generate_preset, edit_preset, list_parameters, describe_preset, find_reference_presets, list_sample_files, analyze_sample_file). Descriptions are present and substantive (100-300 chars), explaining WHAT each tool does and WHEN to use it. However, input schemas are minimal: most tools show only parameter names and descriptions in the spec, lacking explicit type declarations, enums, and constraints. Output schemas are not documented. Error handling guidance is absent. The server instructions are exceptionally detailed (guiding LLM sound design decisions), but tool-level parameter validation and recovery paths are not visible in the code excerpt.
Analyze an audio sample file to extract perceptual characteristics: brightness (spectral centroid), texture (spectral flatness), and estimated pitch. Helps select the best one-shot from multiple candidates when the filename alone is ambiguous.
Read an existing .SerumPreset file and return a human-readable semantic description of its contents, reconstructed as a PresetSpec. Useful for understanding what a preset does before editing it.
Edit an existing Xfer Serum 2 preset by applying a partial PresetSpec. Only the fields present on the spec are modified; everything else in the preset passes through unchanged.
Search the user's Serum presets folder for presets matching a query string (by name, author, or tags). Returns matching preset paths and their descriptions, useful for finding examples to learn from or edit.
Generate a new Xfer Serum 2 preset from a structured PresetSpec. Takes a semantic specification of oscillators, filters, envelopes, effects, and other parameters, and writes a valid .SerumPreset file to the user's configured Serum presets folder.
Input schemas lack explicit type declarations and constraints. Tools show parameter names and descriptions but no JSON Schema types (string, object, array), enums, min/max bounds, or format patterns. LLMs cannot validate inputs or infer valid ranges.
Output schemas are not documented. Tools return results but the structure (fields, types, pagination) is not specified. LLMs cannot plan downstream tool calls or extract required data reliably.
No error handling guidance. Tools do not document what errors can occur, how to classify them (retryable vs user-fixable), or what the LLM should do next. A missing preset file or invalid sample path will fail silently.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
List all available parameters for preset generation/editing, including valid ranges, enum values, and defaults. Provides the reference data needed to construct valid PresetSpec objects.
List audio sample files (.wav) available in a directory, with metadata (duration, sample rate, channels). Used to browse the user's sample bank or Serum's Samples folder when selecting one-shots for sample_playback_source.
PresetSpec parameter in generate_preset and edit_preset is typed as generic 'object' with no schema. LLMs cannot know what fields PresetSpec accepts, their types, valid ranges, or defaults. This forces the LLM to rely entirely on server instructions (which are verbose but not machine-parseable).
No pagination or result limits documented for list_parameters, find_reference_presets, and list_sample_files. If these return large result sets, context window exhaustion is possible. Baseline pattern requires limit/offset and total count.