{"ok":true,"site":{"host":"waveframe-webmcp.netlify.app","url":"https://waveframe-webmcp.netlify.app/","type":"live","desc":"Browser-first AI audio production studio for SaaS launch videos, product demos, and agentic workflows with WebMCP.","tools":[{"name":"get_project_state","kind":"answer","impl":"imperative","description":"Inspect the current audio project state, timeline tracks, clips, ducking settings, master volume, and imported/generated assets.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_video_assets","kind":"answer","impl":"imperative","description":"Discover and list all local video assets currently available in the project media library with their basic dimensions and durations.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_video_metadata","kind":"answer","impl":"imperative","description":"Inspect detailed technical metadata of a specific video asset, including dimensions, duration, frame rate, mime type, size, and audio track status.","inputSchema":{"type":"object","properties":{"assetId":{"type":"string","description":"The unique ID of the target video asset."}},"required":["assetId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_video_asset","kind":"answer","impl":"imperative","description":"Resolve a structured local reference for an uploaded video asset (returns asset metadata and storage reference, not raw binary).","inputSchema":{"type":"object","properties":{"assetId":{"type":"string","description":"The unique ID of the target video asset."}},"required":["assetId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"extract_video_audio","kind":"act","impl":"imperative","description":"Extract the audio soundtrack locally from a video asset into a 16-bit PCM WAV audio asset, making it available for editing, playback, and Whisper transcription.","inputSchema":{"type":"object","properties":{"assetId":{"type":"string","description":"The unique ID of the target video asset to extract audio from."}},"required":["assetId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_video_transcript","kind":"answer","impl":"imperative","description":"Retrieve an existing speech-to-text transcript associated with a video asset or its extracted audio. If none exists, returns a structured error instructing to run transcription.","inputSchema":{"type":"object","properties":{"assetId":{"type":"string","description":"The unique ID of the target video asset."}},"required":["assetId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_video_frame","kind":"answer","impl":"imperative","description":"Capture an image frame snapshot from a video asset at a specific timestamp using browser Canvas rendering.","inputSchema":{"type":"object","properties":{"assetId":{"type":"string","description":"The unique ID of the target video asset."},"timeSec":{"type":"number","description":"Timestamp in seconds at which to capture the frame. Defaults to 0."}},"required":["assetId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"transcribe_audio_asset","kind":"act","impl":"imperative","description":"Run in-browser Whisper Speech-to-Text inference on a specific audio asset to produce timestamped transcription segments.","inputSchema":{"type":"object","properties":{"assetId":{"type":"string","description":"The unique ID of the target audio asset."},"language":{"type":"string","description":"Language code for transcription (e.g. \"en\", \"es\", \"fr\"). Defaults to \"en\"."}},"required":["assetId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"generate_voiceover","kind":"act","impl":"imperative","description":"Synthesize a vocal narration track from text using multi-timbre neural speech generation and automatically add to timeline.","inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"The narration or script text to synthesize."},"voiceId":{"type":"string","description":"Voice persona: \"narrator_male\", \"narrator_female\", \"energetic_launch\", or \"executive_calm\"."},"speed":{"type":"number","description":"Speech speed multiplier (0.5 to 1.75). Defaults to 1.0."},"pitch":{"type":"number","description":"Pitch adjustment factor (0.75 to 1.25). Defaults to 1.0."},"autoInsertToTimeline":{"type":"boolean","description":"Whether to immediately place the generated voiceover clip onto the Voiceover Track."}},"required":["text"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"generate_music","kind":"act","impl":"imperative","description":"Generate a stereo backing track with synthesized bass, chords, arps, and percussion matching the requested mood.","inputSchema":{"type":"object","properties":{"prompt":{"type":"string","description":"Text description of the desired music backing track."},"mood":{"type":"string","enum":["energetic_tech","cinematic_reveal","ambient_minimal","upbeat_fun"],"description":"Mood harmonic preset."},"durationSec":{"type":"number","description":"Length of the generated track in seconds (10 to 120). Defaults to 30."},"bpm":{"type":"number","description":"Tempo in BPM (70 to 160). Defaults to 120."},"autoInsertToTimeline":{"type":"boolean","description":"Whether to place the clip onto the Backing Music Track."}},"required":["prompt"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_audio_track","kind":"act","impl":"imperative","description":"Modify track or clip positioning, gain, mute, or solo states on the timeline.","inputSchema":{"type":"object","properties":{"clipId":{"type":"string","description":"The ID of the clip to adjust."},"startSec":{"type":"number","description":"New start timestamp in seconds on the timeline."},"gainDb":{"type":"number","description":"Gain adjustment in decibels (e.g. -6 for -6dB)."},"trackId":{"type":"string","description":"Target track ID for track-level adjustments."},"muted":{"type":"boolean","description":"Set track mute state."},"solo":{"type":"boolean","description":"Set track solo state."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mix_audio_project","kind":"act","impl":"imperative","description":"Configure sidechain music ducking amount and master bus gain for the project mix.","inputSchema":{"type":"object","properties":{"duckingAmountDb":{"type":"number","description":"Decibels to attenuate music during voiceover (e.g. -14 for -14dB). Range: -30 to -3."},"masterGain":{"type":"number","description":"Master output bus linear volume (0.0 to 1.5)."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"export_audio","kind":"act","impl":"imperative","description":"Render the full multi-track project with volume curves and sidechain ducking into a 16-bit PCM WAV master file.","inputSchema":{"type":"object","properties":{"format":{"type":"string","enum":["wav"],"description":"Audio format. Defaults to \"wav\"."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"AI & Agents","favicon":"/favicons/waveframe-webmcp.netlify.app.svg","apiSurface":"spec","toolCount":13}}