Music Studio
이 MCP로 할 수 있는 일
Supports music composition and performance through ABC sheet music, Strudel live coding, harmony analysis, documentation search, notation playback, and shareable studio outputs.
도구
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task'], 'properties': {'key': {'type': 'string', 'description': 'Key, e.g. "C", "A minor", "F# major". For suggest-progression/key-chords.'}, 'task': {'enum': ['detect-chord', 'detect-key', 'suggest-progression', 'scale-for-chord', 'key-chords'], 'type': 'string', 'description': 'What to work out. detect-chord needs notes; detect-key needs notes or chords; scale-for-chord needs chords; suggest-progression/key-chords need a key.'}, 'notes': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 64, 'description': 'Note names, e.g. ["c4","e4","g4","b4"] or ["C","Eb","G"]. For detect-chord/detect-key.'}, 'chords': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 64, 'description': 'Chord symbols, e.g. ["Dm7","G7","Cmaj7"]. For detect-key/scale-for-chord.'}, 'romanNumerals': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 64, 'description': 'Roman numerals to render in the key, e.g. ["ii7","V7","Imaj7"] or ["I","V","vi","IV"]. Optional for suggest-progression — omit it to get common progressions instead.'}}}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['abcNotation'], 'properties': {'sound': {'type': 'string', 'description': 'Strudel sound for the melody (defaults to the tune\'s %%MIDI program, else "gm_piano"). Use a GM soundfont name like gm_flute or gm_epiano1 — see get-strudel-guide topic \'sounds\'.'}, 'voice': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Which voice to convert, 1-based, counted across all staves (default 1). Multi-voice tunes report how many voices there are.'}, 'abcNotation': {'type': 'string', 'maxLength': 65536, 'description': "ABC notation to convert (the same string you'd pass to play-sheet-music)."}}}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kind'], 'properties': {'kind': {'enum': ['score', 'play'], 'type': 'string'}, 'score': {'type': 'object', 'required': ['abcNotation'], 'properties': {'style': {'enum': ['rock', 'jazz', 'bossa', 'waltz', 'march', 'reggae', 'folk', 'classical'], 'type': 'string', 'description': 'Accompaniment style. Adds drums, bass, and chord patterns automatically. Your ABC needs chord symbols ("C", "Am") for accompaniment to work. Options: rock, jazz, bossa, waltz, march, reggae, folk, classical.'}, 'swing': {'type': 'number', 'maximum': 75, 'minimum': 0, 'description': 'Swing as the share of the beat given to its first half. 50 = straight, 60 ≈ 3:2, 66 = triplet swing, 75 = maximum (dotted eighth + sixteenth). Anything at or below 50 is treated as no swing. Only takes effect in an x/4 or x/8 meter.'}, 'tempo': {'type': 'number', 'maximum': 240, 'minimum': 40, 'description': 'Tempo in BPM (40-240). Overrides Q: in ABC notation.'}, 'title': {'type': 'string', 'description': 'Piece title (overrides T: in ABC). Shown in the widget header and used as the filename stem for the WAV/MIDI downloads.'}, 'drumIntro': {'type': 'integer', 'maximum': 8, 'minimum': 0, 'description': "Bars of count-in before the melody starts (0-8). Needs a style preset — the count-in is played by that style's drum kit, so without a style you get silent bars instead."}, 'transpose': {'type': 'integer', 'maximum': 12, 'minimum': -12, 'description': 'Transpose by semitones (-12 to 12). Positive=higher, negative=lower. Rewrites the notation and the key signature, so the printed score matches what plays.'}, 'instrument': {'type': 'string', 'description': "Default instrument for the main voice — any of the 128 General MIDI names (e.g. 'Flute', 'Cello', 'Banjo', 'Alto Sax'). Matching is fuzzy and picks the lowest GM program among the hits, so 'sax' gives Soprano Sax; the result text names what you actually got whenever it isn't what you asked for. Use get-music-guide with topic 'instruments' for the full list, or %%MIDI program N in the ABC to set a program per voice."}, 'abcNotation': {'type': 'string', 'maxLength': 65536, 'minLength': 1}}}, 'pattern': {'type': 'object', 'required': ['code'], 'properties': {'bpm': {'type': 'number', 'maximum': 300, 'minimum': 40, 'description': 'Tempo in BPM (40-300). Converts to setcps() automatically.'}, 'code': {'type': 'string', 'maxLength': 65536, 'description': 'Strudel pattern code. Uses TidalCycles mini-notation in JavaScript. Use stack() to layer drums, bass, and melody. Set tempo with setcps(bpm/60/4) or use the bpm parameter. The REPL plays the LAST expression: setup lines (await initHydra(), all(), setcps()) go BEFORE the pattern. Double quotes are mini-notation — use single quotes for plain strings and URLs. One draw method per pattern; pass a.fft values as functions (() => a.fft[0]).'}, 'theme': {'enum': ['strudelTheme', 'algoboy', 'archBtw', 'androidstudio', 'atomone', 'aura', 'bbedit', 'blackscreen', 'bluescreen', 'bluescreenlight', 'CutiePi', 'darcula', 'dracula', 'duotoneDark', 'eclipse', 'fruitDaw', 'githubDark', 'githubLight', 'greenText', 'gruvboxDark', 'gruvboxLight', 'sonicPink', 'materialDark', 'materialLight', 'monokai', 'noctisLilac', 'nord', 'redText', 'solarizedDark', 'solarizedLight', 'sublime', 'teletext', 'tokyoNight', 'tokyoNightDay', 'tokyoNightStorm', 'vscodeDark', 'vscodeLight', 'whitescreen', 'xcodeLight'], 'type': 'string', 'description': "Editor colour theme; the visuals stage and its readability scrim are derived from it, so it also decides whether a shader sits on a dark or light ground — prefer a dark one when the visual is the point (e.g. 'nord', 'sonicPink', 'tokyoNight'). Not carried into share links or the browser fallback."}, 'title': {'type': 'string', 'description': "Pattern title displayed in the widget header (e.g. 'Midnight Rain')."}, 'visuals': {'enum': ['none', 'pianoroll', 'punchcard', 'scope', 'spectrum', 'hydra-kaleid', 'hydra-pulse', 'hydra-wash', 'hydra-feed'], 'type': 'string', 'description': "Ready-made visual, for when the code has none of its own. pianoroll/punchcard/scope/spectrum draw onto the 2D canvas behind the code; hydra-kaleid (rotating kaleidoscope), hydra-pulse (shape driven by a rhythm), hydra-wash (slow ambient noise) and hydra-feed (the piano roll mirrored and trailed) are WebGL shader backgrounds. A preset fills the MISSING layer: a hydra preset is skipped only if the code already calls initHydra(), a 2D preset only if the code already has a draw method — so hydra-wash layers happily under your own .pianoroll(). Hydra presets are dropped for viewers who prefer reduced motion. Writing your own visual is still the better result (draw methods: topic 'visuals'; shaders: topic 'hydra')."}, 'autoplay': {'type': 'boolean', 'description': 'Start playing immediately (default: true). May require user click due to browser autoplay policy.'}}}}}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic'], 'properties': {'topic': {'enum': ['instruments', 'drums', 'abc-syntax', 'arrangements', 'genres', 'styles', 'midi-directives'], 'type': 'string', 'description': "Reference topic. Start with 'genres' for complete examples, 'styles' to understand presets, or 'instruments' for the full instrument list."}}}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic'], 'properties': {'topic': {'enum': ['mini-notation', 'sounds', 'effects', 'patterns', 'genres', 'tips', 'visuals', 'hydra', 'advanced'], 'type': 'string', 'description': "Reference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'visuals' for draw methods and presets, 'hydra' for shader backgrounds, 'advanced' for sample loading."}}}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['code'], 'properties': {'bpm': {'type': 'number', 'maximum': 300, 'minimum': 40, 'description': 'Tempo in BPM (40-300). Converts to setcps() automatically.'}, 'code': {'type': 'string', 'maxLength': 65536, 'description': 'Strudel pattern code. Uses TidalCycles mini-notation in JavaScript. Use stack() to layer drums, bass, and melody. Set tempo with setcps(bpm/60/4) or use the bpm parameter. The REPL plays the LAST expression: setup lines (await initHydra(), all(), setcps()) go BEFORE the pattern. Double quotes are mini-notation — use single quotes for plain strings and URLs. One draw method per pattern; pass a.fft values as functions (() => a.fft[0]).'}, 'theme': {'enum': ['strudelTheme', 'algoboy', 'archBtw', 'androidstudio', 'atomone', 'aura', 'bbedit', 'blackscreen', 'bluescreen', 'bluescreenlight', 'CutiePi', 'darcula', 'dracula', 'duotoneDark', 'eclipse', 'fruitDaw', 'githubDark', 'githubLight', 'greenText', 'gruvboxDark', 'gruvboxLight', 'sonicPink', 'materialDark', 'materialLight', 'monokai', 'noctisLilac', 'nord', 'redText', 'solarizedDark', 'solarizedLight', 'sublime', 'teletext', 'tokyoNight', 'tokyoNightDay', 'tokyoNightStorm', 'vscodeDark', 'vscodeLight', 'whitescreen', 'xcodeLight'], 'type': 'string', 'description': "Editor colour theme; the visuals stage and its readability scrim are derived from it, so it also decides whether a shader sits on a dark or light ground — prefer a dark one when the visual is the point (e.g. 'nord', 'sonicPink', 'tokyoNight'). Not carried into share links or the browser fallback."}, 'title': {'type': 'string', 'description': "Pattern title displayed in the widget header (e.g. 'Midnight Rain')."}, 'visuals': {'enum': ['none', 'pianoroll', 'punchcard', 'scope', 'spectrum', 'hydra-kaleid', 'hydra-pulse', 'hydra-wash', 'hydra-feed'], 'type': 'string', 'description': "Ready-made visual, for when the code has none of its own. pianoroll/punchcard/scope/spectrum draw onto the 2D canvas behind the code; hydra-kaleid (rotating kaleidoscope), hydra-pulse (shape driven by a rhythm), hydra-wash (slow ambient noise) and hydra-feed (the piano roll mirrored and trailed) are WebGL shader backgrounds. A preset fills the MISSING layer: a hydra preset is skipped only if the code already calls initHydra(), a 2D preset only if the code already has a draw method — so hydra-wash layers happily under your own .pianoroll(). Hydra presets are dropped for viewers who prefer reduced motion. Writing your own visual is still the better result (draw methods: topic 'visuals'; shaders: topic 'hydra')."}, 'autoplay': {'type': 'boolean', 'description': 'Start playing immediately (default: true). May require user click due to browser autoplay policy.'}}}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'style': {'enum': ['rock', 'jazz', 'bossa', 'waltz', 'march', 'reggae', 'folk', 'classical'], 'type': 'string', 'description': 'Accompaniment style. Adds drums, bass, and chord patterns automatically. Your ABC needs chord symbols ("C", "Am") for accompaniment to work. Options: rock, jazz, bossa, waltz, march, reggae, folk, classical.'}, 'swing': {'type': 'number', 'maximum': 75, 'minimum': 0, 'description': 'Swing as the share of the beat given to its first half. 50 = straight, 60 ≈ 3:2, 66 = triplet swing, 75 = maximum (dotted eighth + sixteenth). Anything at or below 50 is treated as no swing. Only takes effect in an x/4 or x/8 meter.'}, 'tempo': {'type': 'number', 'maximum': 240, 'minimum': 40, 'description': 'Tempo in BPM (40-240). Overrides Q: in ABC notation.'}, 'title': {'type': 'string', 'description': 'Piece title (overrides T: in ABC). Shown in the widget header and used as the filename stem for the WAV/MIDI downloads.'}, 'drumIntro': {'type': 'integer', 'maximum': 8, 'minimum': 0, 'description': "Bars of count-in before the melody starts (0-8). Needs a style preset — the count-in is played by that style's drum kit, so without a style you get silent bars instead."}, 'transpose': {'type': 'integer', 'maximum': 12, 'minimum': -12, 'description': 'Transpose by semitones (-12 to 12). Positive=higher, negative=lower. Rewrites the notation and the key signature, so the printed score matches what plays.'}, 'instrument': {'type': 'string', 'description': "Default instrument for the main voice — any of the 128 General MIDI names (e.g. 'Flute', 'Cello', 'Banjo', 'Alto Sax'). Matching is fuzzy and picks the lowest GM program among the hits, so 'sax' gives Soprano Sax; the result text names what you actually got whenever it isn't what you asked for. Use get-music-guide with topic 'instruments' for the full list, or %%MIDI program N in the ABC to set a program per voice."}, 'abcNotation': {'type': 'string', 'default': 'X:1\nT:Twinkle, Twinkle Little Star\nM:4/4\nL:1/4\nK:C\nC C G G | A A G2 | F F E E | D D C2 |\nG G F F | E E D2 | G G F F | E E D2 |\nC C G G | A A G2 | F F E E | D D C2 |', 'maxLength': 65536, 'description': 'ABC notation string. Include chord symbols ("C", "Am7") above notes for auto-accompaniment with style presets.'}}}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 500, 'description': "What you want to know. Be specific. Good: 'how to use FM synthesis with envelope' or 'chop and slice sample manipulation'. Bad: 'effects' or 'help'."}, 'library': {'enum': ['strudel', 'abcjs'], 'type': 'string', 'default': 'strudel', 'description': "Which library to search: 'strudel' for live coding patterns, 'abcjs' for sheet music notation."}}}
최근 도구 변경
유사한 MCP 서버
MiOffice — AI-Powered Workspace Studio
Provides browser-based tools for processing PDFs, images, video, and audio, including generation, enhancement, conversion, transc…
BlitzReels Video Editor
Creates and edits short-form videos, including timelines, captions, transitions, AI-generated visuals, music, voiceovers, sound e…
Morpha
Enables creating, animating, and exporting layered short-form video projects.
switch
Enables management and exploration of an account-scoped library of AI-generated images and videos.
framesail
Creates long-form YouTube videos through script generation, storyboarding, visual assets, voiceover, music, scene composition, an…
Magnific
Provides image enhancement and design tools, AI image and audio generation, text-to-speech, creation management, and reusable cre…
Uwear
Supports AI fashion photoshoot production with garments, outfits, avatars, locations, art direction, image generation, backdrops,…
Creative Claw
Generates and edits branded images, video, audio, speech, and 3D-related creative assets, with media processing and reusable them…