{"ok":true,"site":{"host":"mcp-mpc.stuartmemo.chatgpt.site","url":"https://mcp-mpc.stuartmemo.chatgpt.site/","type":"live","desc":"MCP MPC — a local-first, 16-bit web sampler with pads, chopping, sequencing and MIDI.","tools":[{"name":"mcpmpc_get_state","kind":"answer","impl":"imperative","description":"Read the current MCP-MPC pads, sample assignments, normalized trims, loaded-sample start/end times and durations, pitches, per-pad levels, master output volume, sequence, tempo, swing, and transport state. Pad and step numbers are 1-based.","title":"Inspect MCP-MPC","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mcpmpc_select_kit","kind":"act","impl":"imperative","description":"Replace all 16 pad assignments with one MCP-MPC factory kit while preserving the current sequence, tempo, swing, and transport state.","title":"Select factory kit","inputSchema":{"type":"object","properties":{"kit":{"type":"string","enum":["fischer-808","uzu","big-rusty","swirly"],"description":"Factory kit identifier. Fischer 808 is classic analog; Uzu is modern electronic; Big Rusty is a roomy acoustic kit; Swirly is a brushed hand-percussion palette."}},"required":["kit"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mcpmpc_load_sample","kind":"act","impl":"imperative","description":"Fetch a directly accessible audio URL and load it onto one pad. The URL must be HTTPS or same-origin HTTP, a blob URL, or an audio data URL; cross-origin servers must allow CORS.","title":"Load sample to pad","inputSchema":{"type":"object","properties":{"pad":{"type":"integer","minimum":1,"maximum":16},"url":{"type":"string","minLength":1,"description":"Direct URL of an audio file, not a webpage."},"name":{"type":"string","minLength":1,"maxLength":24},"shortName":{"type":"string","minLength":1,"maxLength":6}},"required":["pad","url"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mcpmpc_assign_pad","kind":"act","impl":"imperative","description":"Copy a sample assignment, including its current pitch, level, and trim, from one pad to another pad.","title":"Copy sample to pad","inputSchema":{"type":"object","properties":{"sourcePad":{"type":"integer","minimum":1,"maximum":16},"targetPad":{"type":"integer","minimum":1,"maximum":16}},"required":["sourcePad","targetPad"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mcpmpc_configure_pad","kind":"act","impl":"imperative","description":"Change one pad's pitch, volume, normalized sample trim, or display names. Pitch is measured in semitones, volume is a percentage, and trim positions are normalized from 0 to 1. For start/end times in seconds, use mcpmpc_set_sample_range.","title":"Configure pad","inputSchema":{"type":"object","properties":{"pad":{"type":"integer","minimum":1,"maximum":16},"pitch":{"type":"number","minimum":-24,"maximum":24},"volume":{"type":"number","minimum":0,"maximum":100,"description":"Level for only this pad, as a percentage."},"sliceStart":{"type":"number","minimum":0,"maximum":0.999},"sliceEnd":{"type":"number","minimum":0.001,"maximum":1},"name":{"type":"string","minLength":1,"maxLength":24},"shortName":{"type":"string","minLength":1,"maxLength":6}},"required":["pad"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mcpmpc_set_sample_range","kind":"act","impl":"imperative","description":"Set the playable start and/or end time, in seconds, for the sample assigned to one pad. Omit either boundary to keep its current value. Use mcpmpc_get_state to inspect the sample duration and current startSeconds/endSeconds.","title":"Set sample start and end","inputSchema":{"type":"object","properties":{"pad":{"type":"integer","minimum":1,"maximum":16},"startSeconds":{"type":"number","minimum":0,"description":"Playable start time measured from the beginning of the source sample."},"endSeconds":{"type":"number","exclusiveMinimum":0,"description":"Playable end time measured from the beginning of the source sample."}},"required":["pad"],"anyOf":[{"required":["startSeconds"]},{"required":["endSeconds"]}],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mcpmpc_chop_sample","kind":"act","impl":"imperative","description":"Split a source pad sample evenly into 2, 4, 8, or 16 chops and assign them to consecutive pads. The destination range cannot run past pad 16.","title":"Chop sample across pads","inputSchema":{"type":"object","properties":{"sourcePad":{"type":"integer","minimum":1,"maximum":16},"count":{"type":"integer","enum":[2,4,8,16]},"startPad":{"type":"integer","minimum":1,"maximum":16,"description":"First destination pad. Defaults to sourcePad."},"sliceStart":{"type":"number","minimum":0,"maximum":0.999},"sliceEnd":{"type":"number","minimum":0.001,"maximum":1}},"required":["sourcePad","count"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mcpmpc_create_sequence","kind":"act","impl":"imperative","description":"Create or merge a one-bar, 16-step drum sequence. Supply tracks with 1-based pad and step numbers, plus optional tempo, swing, and play state.","title":"Create 16-step sequence","inputSchema":{"type":"object","properties":{"tracks":{"type":"array","minItems":1,"maxItems":16,"items":{"type":"object","properties":{"pad":{"type":"integer","minimum":1,"maximum":16},"steps":{"type":"array","maxItems":16,"uniqueItems":true,"items":{"type":"integer","minimum":1,"maximum":16}}},"required":["pad","steps"],"additionalProperties":false}},"mode":{"type":"string","enum":["replace","merge"],"default":"replace"},"bpm":{"type":"number","minimum":40,"maximum":220},"swing":{"type":"number","minimum":0,"maximum":60},"play":{"type":"boolean"}},"required":["tracks"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mcpmpc_play_pad","kind":"act","impl":"imperative","description":"Trigger one MCP-MPC pad now at an optional velocity from 0.04 to 1.","title":"Play pad","inputSchema":{"type":"object","properties":{"pad":{"type":"integer","minimum":1,"maximum":16},"velocity":{"type":"number","minimum":0.04,"maximum":1,"default":0.94}},"required":["pad"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mcpmpc_set_volume","kind":"act","impl":"imperative","description":"Set the master output level shared by every pad and sample. To change one pad only, use mcpmpc_configure_pad with its volume field. Use 0 to mute or 100 for full level.","title":"Set master volume","inputSchema":{"type":"object","properties":{"volume":{"type":"number","minimum":0,"maximum":100,"description":"Master output level as a percentage."}},"required":["volume"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"mcpmpc_set_transport","kind":"act","impl":"imperative","description":"Start or stop the current sequence and optionally set its tempo and swing.","title":"Set transport","inputSchema":{"type":"object","properties":{"playing":{"type":"boolean"},"bpm":{"type":"number","minimum":40,"maximum":220},"swing":{"type":"number","minimum":0,"maximum":60}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Media & Personal","favicon":"/favicons/mcp-mpc.stuartmemo.chatgpt.site.png","apiSurface":"spec","toolCount":11}}