Music Studio

io.github.linxule由 GitHub 帳號 linxule 發布v0.14.0更新於 Nov 8, 2026

ABC sheet music + Strudel live coding: songs, videos and live jam sessions in ext-apps widgets.

已驗證Streamable HTTP可網頁執行媒體與設計AI 與機器學習

概覽

AI 產生的概覽

Music Studio 讓助手在對話中創作、播放與即時編寫音樂:ABC 樂譜與 Strudel 模式都在可互動的播放器中呈現。

可以做什麼
  • 以 ABC 記譜法撰寫並播放樂譜,支援 General MIDI 樂器、風格伴奏、和弦符號、就地編輯與 WAV/MIDI 下載
  • 開啟 Strudel 即時編寫播放器,含鼓機、合成器、效果器、鋼琴捲簾與著色器視覺
  • 進行即時工作階段:讀取聆聽者的操作、等待 Pass,並在下一小節或下一個樂句換入新程式碼
  • 查詢 ABC 與 Strudel 參考資料、搜尋官方文件、分析和弦與調性,並把 ABC 旋律轉成 Strudel 模式
  • 建立託管分享連結,任何人免登入即可開啟
適用情境
適合以對話方式作曲、編曲或混音,在即時編寫播放器中與助手一起即興,或把寫好的旋律轉成現場模式。也適合快速做和弦命名、找調等樂理查詢。
執行需求
可使用託管的遠端端點(免安裝、免帳號),或以 npx 在本機執行 npm 套件 mcp-music-studio。需要支援 MCP 的聊天應用程式;聊天內播放器需支援 MCP Apps,終端機用戶端則會提供瀏覽器連結。首次播放可能需在瀏覽器點一下 Play 才會出聲。
安裝前請注意
create-share-link 會把作品上傳到託管服務並保留 30 天,任何取得連結的人都能檢視與播放,因此不要在樂譜、程式碼、標題或朗讀台詞中放入隱私資訊。即時工作階段的紀錄會保留到最後活動後兩小時,朗讀台詞快取 30 天。能塞進連結的作品會直接編碼在 URL 中。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Music Studio,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.linxule%2Fmcp-music-studio/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "music-studio": {
      "type": "http",
      "url": "https://music-studio.linxule.com/mcp"
    }
  }
}

README

MCP Music Studio

English · 简体中文 · Français · 日本語

[npm] [CI] [License: AGPL-3.0-or-later]

Make music with an AI assistant, inside the chat. Ask for a song and get sheet music you can play and edit. Ask for a beat and get a live-coding player with visuals. Then edit the piece together, move its controls while it plays, or take turns with the AI.

Music Studio is an MCP server. MCP is a standard way to give an AI assistant extra tools; you need a chat app that supports it, such as Claude. In Claude, claude.ai and other apps that support MCP Apps, the player appears in the chat. In Claude Code and other terminal apps, you get a link that opens the player in your browser.

[A Strudel pattern with its piano roll fed into a Hydra shader, then Stage mode taking the whole frame]

One live set in the player. Every section is a change made while the music plays. Watch the full video.

Quick start

Add this URL as a remote MCP server. There is nothing to install.

https://music-studio.linxule.com/mcp
  • Claude and claude.ai: open Settings, then Connectors, add a custom connector, and paste the URL.
  • Claude Code: run claude mcp add --transport http music-studio https://music-studio.linxule.com/mcp

Then ask for a song, a beat or a music video. No account is needed. Your browser may hold back sound until you tap Play in the player once.

What you can make

  • Sheet music. Scores in ABC notation, drawn as sheet music and played with any of the 128 General MIDI instruments. Add a style (rock, jazz, bossa and others) for drums, bass and chords. Edit the score in place, transpose it, and download WAV or MIDI. More about sheet music
  • Live coding. Patterns in Strudel, the JavaScript version of TidalCycles, in an editor you can change while it plays: drum machines, synths, effects, piano rolls and Hydra shader visuals that follow the music. More about live coding
  • Music videos and stage pieces. Pattern code can draw, react to every note, respond to taps and speak lines in time with the music. The guide's gallery has a short film, a spoken duet and a Game of Life that composes.
  • Play together. A live session keeps one player open. The AI reads what you did and puts its reply on the same player, starting at the next bar. Faders, pads and your phone's motion become controls. More about playing together
  • Share. When a score or pattern is small enough to fit in a link, the reply includes a link that opens the full player. For a larger piece, ask for a stored link, which lasts 30 days.

Tools

ToolWhat it does
play-sheet-musicDraw and play a score written in ABC notation
play-live-patternOpen a live-coding player for Strudel code, optionally as a live session
get-sessionRead what happened in a live session, or wait until the person listening presses Pass
update-sessionSwap new code into a live session's player on the next bar or phrase
get-music-guideReference for ABC notation: syntax, instruments, styles, genres
get-strudel-guideReference for Strudel: sounds, effects, visuals, stage, gallery pieces
search-music-docsSearch the Strudel and abcjs documentation
analyze-harmonyName chords, find the key, build progressions
convert-abc-to-strudelTurn a scored melody into a Strudel pattern
create-share-linkStore a piece for 30 days and return a link anyone can open

Parameters, prompts and the players' own tools: tools and prompts.

Run it on your computer

The hosted URL needs no setup. To run the server locally instead, use npm:

bash
claude mcp add music-studio -- npx -y mcp-music-studio --stdio

Setup for Claude Desktop, Codex, Gemini CLI, VS Code, Cursor, Windsurf and others, plus render modes and HTTP mode: install and client setup.

More

  • Changelog
  • Development
  • Privacy policy. Playback does not save your piece in the share database. A live session keeps a log until two hours after its last activity, and spoken lines are cached for 30 days. Links that fit the music in the URL carry it in the link itself. Do not put private information in scores, code, titles or spoken lines. create-share-link stores a piece only when you ask.
  • Report an issue

Credits and license

Forked from the Sheet Music Server example in MCP ext-apps by Anthropic (MIT). Live coding uses Strudel, notation uses abcjs, and shader visuals use hydra-synth.

Licensed under AGPL-3.0-or-later. The original MIT notices are in LICENSES/MIT.txt. See SOURCE.md for the corresponding source and THIRD_PARTY_NOTICES.md for dependency and audio licensing. Music you make is not automatically licensed under the software license.

來源:README.md,提交 83aa0bb

工具

10

play-sheet-music

Play Sheet Music

Write a score in ABC notation and play it as sheet music: a melody, a harmonized piece, a multi-voice arrangement or a well-known tune, on any of the 128 General MIDI instruments. Put chord symbols above the notes and add a style (rock, jazz, bossa, waltz, folk...) for drums, bass and chords. The user can edit the score in the player, change its style and instrument, and download WAV or MIDI. The result confirms the parse; it returns no audio. Start with get-music-guide topic 'genres'; 'abc-syntax' and 'instruments' for the rest. The music player renders inline with interactive playback controls.

輸入參數styleswingtempotitledrumIntrotransposeinstrumentabcNotation

play-live-pattern

Play Live Pattern

Live-code music in Strudel (TidalCycles mini-notation in JavaScript) and play it in a player the user can edit. Layer drums, bass and melody with stack(): 71 drum-machine banks, 128 GM instruments, synths and a full effects chain. Add .pianoroll() for a live piano roll (or .punchcard()/.scope()/.spectrum(), one per pattern), pass `visuals` for a ready-made animation and `theme` for the editor colours. Each call creates a NEW player. Optional, when you want more (get-strudel-guide topic in brackets): shader backgrounds that follow the music — start with `await initHydra()`, lock to the beat with H(pattern), react to the sound with () => a.fft[0] ('hydra'); canvases, scenes and spoken lines for music videos and films ('stage', 'film'); taps, faders, pads and controls you draw, played by the user; tilt and mic, which follow the phone on the browser player (a chat's frame usually blocks them) ('interactive'); complete pieces ('gallery'). To jam back and forth, or to change a piece while it plays, pass session: true, then use update-session and get-session. The Strudel REPL renders inline with an editable code editor, visualizations, and playback controls.

輸入參數bpmcode必填themetitlesessionvisualsautoplay

get-session

Read Live Session

Only for a live session (play-live-pattern session: true). Reads whether the player is up and what it played, its errors and silences, and what the human did since your last read: taps, changes to remember() state, code they ran, a Pass to you, or End. Read it before assuming a piece played. With wait: 'pass' it listens until the human presses Pass, so a whole back-and-forth set fits in one turn: update-session, get-session(wait: 'pass'), answer, listen again.

輸入參數waitsession必填

update-session

Update Live Session

Only for a live session. Swaps new code into the session's player while the music keeps playing. Send the WHOLE pattern, as for play-live-pattern. It lands on the next bar (quantize 1, the default), the next multiple of n bars, or at once (0): set quantize to your phrase length (8-bar phrase → 8). If the player answers within a few seconds, the result says whether it ran the code, or its error. To change a piece's remember() state, ship a merge, not a new start value (get-strudel-guide topic 'interactive').

輸入參數code必填session必填quantize

get-music-guide

Music Reference Guide

Reference for ABC sheet music. Topics: genres (complete templates: jazz, blues, folk, rock, bossa, a 3/4 minuet, a lullaby), styles (what each accompaniment preset does), instruments (GM list + combos), drums (patterns + percussion notes), abc-syntax (notation reference), arrangements (multi-voice patterns), midi-directives (%%MIDI reference).

輸入參數topic必填

get-strudel-guide

Strudel Reference Guide

Reference and recipes for Strudel live coding. Music: genres (complete templates: techno, house, dnb, ambient, jazz, lofi, synthwave), mini-notation, sounds (synths, 71 drum banks, 128 GM instruments, vcsl samples), effects, patterns, tips (tempo, common mistakes), advanced (samples, wavetables, signals, chord voicings). Visuals: visuals (draw methods, presets, themes), hydra (shader backgrounds, H(pattern), the audio-reactive a.fft). Optional modules — the code is real browser JavaScript: stage (your own canvases, onFrame/onEvent/onTap, say), film (scenes on bars, text, narration), interactive (taps into notes, faders/pads/xy, tilt/mic, remember() for controls you draw, live sessions), craft (what makes a piece land), debugging (what the player reports back), gallery (complete pieces; fetch one with `piece`).

輸入參數piecetopic必填

search-music-docs

Search Music Documentation

Search detailed documentation for Strudel live coding or ABC/ABCJS notation. Returns relevant code examples and explanations from the official docs. Use this when the curated guides (get-strudel-guide, get-music-guide) don't cover what you need — for specific functions, advanced techniques, or when you're unsure about syntax. Powered by semantic search over strudel.cc and ABCJS docs.

輸入參數query必填library

analyze-harmony

Analyze Harmony

Music theory helper: name a chord from notes, guess the key, get a progression, or list what fits a key. Returns both the ABC chord-symbol spelling (for play-sheet-music) and the Strudel form (for play-live-pattern). Tasks: detect-chord (notes -> chord name + what to play next), detect-key (notes or chords -> best key + diatonic chords), suggest-progression (key [+ romanNumerals] -> chord symbols), scale-for-chord (chords -> the scale to improvise over each), key-chords (key -> every diatonic triad, seventh, and chord scale). Use it before writing chord symbols for a style preset, or to check a harmonization.

輸入參數keytask必填noteschordsromanNumerals

convert-abc-to-strudel

Convert ABC to Strudel

Turn an ABC melody into Strudel mini-notation so a scored piece can be remixed live. Returns runnable code — setcps() from the Q: tempo, one [...] bar group per bar inside note("<...>"), with a chord("<...>").voicing() layer stacked alongside it when the ABC has chord symbols (one stack(), because Strudel plays only the last expression) — then pass it to play-live-pattern. Durations become @ weights, rests become ~, triplets nest, the key signature is folded into the note names, and %%MIDI program picks the sound. Lists what was lost (grace notes, dynamics, repeats, lyrics, other voices, inline tempo changes, a short final bar, ABC's own gchord/drum accompaniment). Pick a single voice with `voice`; re-run per voice and stack() them for a full arrangement.

輸入參數soundvoiceabcNotation必填

版本歷史

14
  1. v0.13.0Oct 19, 2026
  2. v0.12.4Oct 5, 2026
  3. v0.12.3Oct 4, 2026
  4. v0.11.3Oct 4, 2026
  5. v0.11.0Oct 3, 2026
  6. v0.10.1Oct 2, 2026
  7. v0.9.0Oct 2, 2026
  8. v0.7.0Oct 2, 2026
  9. v0.6.0Sep 26, 2026
  10. v0.5.14Sep 25, 2026
  11. v0.5.13Sep 25, 2026
  12. v0.5.8Sep 24, 2026
  13. v0.5.7Sep 21, 2026
  14. v0.5.6Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分