List, apply, and import genre libraries and presets. The import step (genre import-songsketch) is CLI-only by design — a hidden, internal command not exposed to end users. It is a content-authoring step that converts a proprietary Song Sketch lib JSON into a .vibraigenre file on disk (how the shipped genre catalog is minted), not a runtime operation an agent drives against Live. The MCP surface (GenreTools) exposes the runtime half: discover libraries and presets (list_genres, list_genre_presets) and apply them (apply_genre). Extraction (genre extract CLI ↔ extract_genre MCP) reverse-derives a genre from the open Live set.
List, apply, and import genre libraries and presets. The import step (genre import-songsketch) is CLI-only by design — a hidden, internal command not exposed to end users. It is a content-authoring step that converts a proprietary Song Sketch lib JSON into a .vibraigenre file on disk (how the shipped genre catalog is minted), not a runtime operation an agent drives against Live. The MCP surface (GenreTools) exposes the runtime half: discover libraries and presets (list_genres, list_genre_presets) and apply them (apply_genre). Extraction (genre extract CLI ↔ extract_genre MCP) reverse-derives a genre from the open Live set.
List installed genre libraries. Returns each genre’s name (slug; other tools accept either the slug or the display name), display name, sub-genres, default BPM, and preset count. Embedded resources ship with Vibrai; users can override or add entries via ~/.vibrai/genres/<name>.vibraigenre. Call get_skill first to load the Vibrai operational playbook.
List presets in a genre library. Each entry has id (use with apply_genre / init_project —preset), display name, sub-genre, section/part counts, and an instrumentation summary (snake_case PartType -> stock instrument path, resolved for the preset’s own sub-genre) from the genre’s defaults table — omitted when the genre has none.
Materialize a genre+preset into a .vibrai project at the given path. Destructive: overwrites sections, parts, templates, arrangement.blueprint, and generation — requires confirm=true (parity with the CLI’s genre apply --yes); refuses without modifying the project otherwise. Preserves meta.name, meta.als_path, and Defaults.NumberTracks from the existing project if present (number_tracks omitted). Note: the preset_id parameter was renamed to preset for CLI/MCP naming parity; update any callers. Call get_skill first to load the Vibrai operational playbook.
Extract a genre from the open Live set into a .vibraigenre file. Reads tempo, scale, tracks, clips, notes, and envelopes; classifies tracks into parts (report shows each decision); detects sections; and writes a generative genre usable by apply_genre. Set faithful=true to also embed literal note phrases so regeneration seeds from the source riffs. Set into_genre=<user genre> to append this set as a new preset instead of creating a file. Re-run with part_overrides to correct classifications — extraction never mutates the Live set.