Music Studio

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

OtherTypeScriptv0.13.0

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.

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:

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.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y mcp-music-studio

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-linxule-mcp-music-studio": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-music-studio"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

mcp-music-studionpm

Compatible MCP Clients

Music Studio works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More