gradeNot graded
sfx_describeAction
Describe SFX Forge: sound-effect categories, music styles, macros and remixable parts, plus a summary of the sound currently loaded in the editor. Call this first.
View tool JSON
{
"name": "sfx_describe",
"kind": "act",
"impl": "imperative",
"description": "Describe SFX Forge: sound-effect categories, music styles, macros and remixable parts, plus a summary of the sound currently loaded in the editor. Call this first.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}sfx_generate_soundAction
Generate a new sound effect in the editor from a category generator, or "random" to build one from scratch. Returns its stats.
View tool JSON
{
"name": "sfx_generate_sound",
"kind": "act",
"impl": "imperative",
"description": "Generate a new sound effect in the editor from a category generator, or \"random\" to build one from scratch. Returns its stats.",
"inputSchema": {
"type": "object",
"required": [
"category"
],
"properties": {
"category": {
"type": "string",
"enum": [
"random",
"coin",
"pickup",
"jump",
"laser",
"shoot",
"explosion",
"hit",
"punch",
"kick",
"block",
"hurt",
"whoosh",
"dash",
"powerup",
"blip",
"select",
"confirm",
"cancel",
"magic",
"ko",
"victory",
"gameover"
],
"description": "e.g. punch, coin, laser, explosion, ko, or random"
},
"wildness": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "random only: 0 = tidy and short, 1 = layered and strange"
},
"seed": {
"type": "integer",
"description": "Same seed + category gives the same sound"
}
}
},
"page": "/"
}sfx_compose_musicAction
Compose a full arranged music track (drums, bass, chords, melody; intro → A → B → outro) in the editor. Length is rounded to whole 4-bar sections.
View tool JSON
{
"name": "sfx_compose_music",
"kind": "act",
"impl": "imperative",
"description": "Compose a full arranged music track (drums, bass, chords, melody; intro → A → B → outro) in the editor. Length is rounded to whole 4-bar sections.",
"inputSchema": {
"type": "object",
"properties": {
"style": {
"type": "string",
"enum": [
"random",
"chiptune",
"fight",
"citypop",
"synthwave",
"lofi",
"house",
"dnb",
"trap",
"boss"
],
"description": "\"random\" picks one and, with high wildness, can mix two styles"
},
"seconds": {
"type": "number",
"minimum": 10,
"maximum": 60,
"description": "Default 32"
},
"wildness": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "More drum variation, generated chords, key changes, hybrids"
},
"bpm": {
"type": "number",
"minimum": 50,
"maximum": 220
},
"seed": {
"type": "integer"
}
}
},
"page": "/"
}sfx_remix_musicAction
Change the loaded music track: reroll some parts (drums, bass, chords, lead) while keeping the rest, and/or transpose or change tempo. New chords also move bass and melody notes to the new harmony.
View tool JSON
{
"name": "sfx_remix_music",
"kind": "act",
"impl": "imperative",
"description": "Change the loaded music track: reroll some parts (drums, bass, chords, lead) while keeping the rest, and/or transpose or change tempo. New chords also move bass and melody notes to the new harmony.",
"inputSchema": {
"type": "object",
"properties": {
"parts": {
"type": "array",
"items": {
"type": "string",
"enum": [
"drums",
"bass",
"chords",
"lead"
]
}
},
"transpose": {
"type": "integer",
"minimum": -12,
"maximum": 12,
"description": "Semitones"
},
"bpm": {
"type": "number",
"minimum": 50,
"maximum": 220
}
}
},
"page": "/"
}sfx_get_soundAnswer
Read the sound loaded in the editor: stats, layers, and optionally the full sfx-forge/1 JSON (for editing or saving elsewhere).
View tool JSON
{
"name": "sfx_get_sound",
"kind": "answer",
"impl": "imperative",
"description": "Read the sound loaded in the editor: stats, layers, and optionally the full sfx-forge/1 JSON (for editing or saving elsewhere).",
"inputSchema": {
"type": "object",
"properties": {
"include_json": {
"type": "boolean",
"description": "Include the full JSON (can be large for music)"
}
}
},
"page": "/"
}sfx_load_soundAction
Load a full sfx-forge/1 JSON sound into the editor, for example one made by the sfx MCP server.
View tool JSON
{
"name": "sfx_load_sound",
"kind": "act",
"impl": "imperative",
"description": "Load a full sfx-forge/1 JSON sound into the editor, for example one made by the sfx MCP server.",
"inputSchema": {
"type": "object",
"required": [
"sound"
],
"properties": {
"sound": {
"type": "object",
"description": "A full sfx-forge/1 sound object"
}
}
},
"page": "/"
}sfx_edit_soundAction
Edit the loaded sound. "patch" deep-merges into top-level fields (name, length, steps, swing, master). "layers" deep-merges into layers by index or name; arrays such as hits are replaced whole. Layer fields: wave, freq, freqEnd, slide, amp {a,h,d,s,r}, filter {type,cutoff,cutoffEnd,q}, vib, fm, crush, drive, gain, pan, repeat, hits [{t,note,vel,len}], mute.
View tool JSON
{
"name": "sfx_edit_sound",
"kind": "act",
"impl": "imperative",
"description": "Edit the loaded sound. \"patch\" deep-merges into top-level fields (name, length, steps, swing, master). \"layers\" deep-merges into layers by index or name; arrays such as hits are replaced whole. Layer fields: wave, freq, freqEnd, slide, amp {a,h,d,s,r}, filter {type,cutoff,cutoffEnd,q}, vib, fm, crush, drive, gain, pan, repeat, hits [{t,note,vel,len}], mute.",
"inputSchema": {
"type": "object",
"properties": {
"patch": {
"type": "object"
},
"layers": {
"type": "array",
"items": {
"type": "object",
"required": [
"layer",
"set"
],
"properties": {
"layer": {
"type": [
"integer",
"string"
]
},
"set": {
"type": "object"
}
}
}
}
}
},
"page": "/"
}sfx_apply_macroAction
Bend the whole sound with one knob: pitch (semitones, -24..24), length (time stretch 0.25..4; for music this changes tempo), punch, grit, space, distance, retro (0..1).
View tool JSON
{
"name": "sfx_apply_macro",
"kind": "act",
"impl": "imperative",
"description": "Bend the whole sound with one knob: pitch (semitones, -24..24), length (time stretch 0.25..4; for music this changes tempo), punch, grit, space, distance, retro (0..1).",
"inputSchema": {
"type": "object",
"required": [
"macro",
"value"
],
"properties": {
"macro": {
"type": "string",
"enum": [
"pitch",
"length",
"punch",
"grit",
"space",
"distance",
"retro"
]
},
"value": {
"type": "number"
}
}
},
"page": "/"
}sfx_mutateAction
Randomly nudge pitch, timing, filters and gains of the loaded sound (music stays in tune).
View tool JSON
{
"name": "sfx_mutate",
"kind": "act",
"impl": "imperative",
"description": "Randomly nudge pitch, timing, filters and gains of the loaded sound (music stays in tune).",
"inputSchema": {
"type": "object",
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Default 0.25"
}
}
},
"page": "/"
}sfx_playAction
Play the loaded sound through the speakers so the person can hear it, or stop playback. Browsers only allow sound after the person has clicked the page once.
View tool JSON
{
"name": "sfx_play",
"kind": "act",
"impl": "imperative",
"description": "Play the loaded sound through the speakers so the person can hear it, or stop playback. Browsers only allow sound after the person has clicked the page once.",
"inputSchema": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"play",
"stop"
],
"description": "Default play"
},
"loop": {
"type": "boolean"
}
}
},
"page": "/"
}sfx_historyAnswer
List the history strip (every roll, remix and edit this session) or go back to an earlier entry by index (0 = newest).
View tool JSON
{
"name": "sfx_history",
"kind": "answer",
"impl": "imperative",
"description": "List the history strip (every roll, remix and edit this session) or go back to an earlier entry by index (0 = newest).",
"inputSchema": {
"type": "object",
"properties": {
"go_to": {
"type": "integer",
"minimum": 0,
"description": "Omit to just list"
}
}
},
"page": "/"
}sfx_exportAction
Download the loaded sound to the person's computer as a 16-bit stereo WAV, or as sfx-forge/1 JSON.
View tool JSON
{
"name": "sfx_export",
"kind": "act",
"impl": "imperative",
"description": "Download the loaded sound to the person's computer as a 16-bit stereo WAV, or as sfx-forge/1 JSON.",
"inputSchema": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"wav",
"json"
],
"description": "Default wav"
}
}
},
"page": "/"
}