Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Music Studio

REMOTE · MUSIC-STUDIO.LINXULE.COM · 2 COMPONENTS · SCANNED OCT 6

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

+4 this week 79 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security77
Transport & Reachability100
Schema Quality & AI Usability86
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3878 tokens (~107/item across 36 items; 10 tools + 26 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
  • Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 97% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Install

How do I install the Music Studio MCP server?

Music Studio is a hosted endpoint at https://music-studio.linxule.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · music-studio.linxule.com

# add to Claude Code
claude mcp add --transport http linxule-mcp-music-studio 'https://music-studio.linxule.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "linxule-mcp-music-studio": {
      "url": "https://music-studio.linxule.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "linxule-mcp-music-studio": {
      "type": "http",
      "url": "https://music-studio.linxule.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.linxule-mcp-music-studio]
url = "https://music-studio.linxule.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "linxule-mcp-music-studio": {
      "type": "remote",
      "url": "https://music-studio.linxule.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add linxule-mcp-music-studio --url 'https://music-studio.linxule.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  linxule-mcp-music-studio:
    url: "https://music-studio.linxule.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "linxule-mcp-music-studio": {
      "Transport": "http",
      "Url": "https://music-studio.linxule.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add linxule-mcp-music-studio -t streamable-http -u 'https://music-studio.linxule.com/mcp'
// mcp.json
{
  "mcpServers": {
    "linxule-mcp-music-studio": {
      "type": "http",
      "url": "https://music-studio.linxule.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 6 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 33. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 4 Oct 26 +1
    • Resource “ui://sheet-music/0.12.2/mcp-app.html” was removed ▼ functional
    • Resource “ui://strudel/0.12.2/strudel-app.html” was removed ▼ functional
    • Resource “ui://sheet-music/0.11.2/mcp-app.html” was removed ▼ functional
    • Resource “ui://strudel/0.11.2/strudel-app.html” was removed ▼ functional
    • Resource “ui://sheet-music/0.11.1/mcp-app.html” was removed ▼ functional
    • Resource “ui://strudel/0.11.1/strudel-app.html” was removed ▼ functional
    • Schema quality: 122 → 107 ▲ functional
    • Tool coverage: 92% → 97% ▲ functional
    • New resource “ui://sheet-music/0.12.3/mcp-app.html” functional
    • New resource “ui://strudel/0.12.3/strudel-app.html” functional
    • New resource “ui://sheet-music/0.11.3/mcp-app.html” functional
    • New resource “ui://strudel/0.11.3/strudel-app.html” functional
    • New resource “ui://sheet-music/0.11.2/mcp-app.html” functional
    • New resource “ui://strudel/0.11.2/strudel-app.html” functional
    • Server version: 0.12.2 → 0.12.3 functional
    • Server version: 0.11.2 → 0.11.3 functional
    • Server version: 0.11.1 → 0.11.2 functional
  • 3 Oct 26 +1
    • Tool “update-session” rewrote its description, which is the text the model reads security
    • Tool “get-session” rewrote its description, which is the text the model reads security
    • Resource “ui://strudel/0.10.2/strudel-app.html” was removed ▼ functional
    • Resource “ui://sheet-music/0.10.2/mcp-app.html” was removed ▼ functional
    • Resource “ui://sheet-music/0.10.1/mcp-app.html” was removed ▼ functional
    • Resource “ui://strudel/0.10.1/strudel-app.html” was removed ▼ functional
    • New resource “ui://sheet-music/0.11.0/mcp-app.html” functional
    • New resource “ui://strudel/0.11.0/strudel-app.html” functional
    • New resource “ui://sheet-music/0.10.2/mcp-app.html” functional
    • New resource “ui://strudel/0.10.2/strudel-app.html” functional
    • Server version: 0.10.2 → 0.11.0 functional
    • Server version: 0.10.1 → 0.10.2 functional
  • 2 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “get-session” rewrote its description, which is the text the model reads security
    • Tool “get-strudel-guide” rewrote its description, which is the text the model reads security
    • Tool “play-live-pattern” rewrote its description, which is the text the model reads security
    • Schema quality: 3170 → 4374 ▼ functional
    • Schema quality: 3170 → 4301 ▼ functional
    • Schema quality: 3170 → 3559 ▼ functional
    • Schema quality: good → excellent functional
    • New resource “ui://strudel/0.10.1/strudel-app.html” functional
    • New resource “ui://sheet-music/0.10.1/mcp-app.html” functional
    • New resource “Strudel Guide: interactive” functional
    • New resource “Strudel Guide: craft” functional
    • New resource “Strudel Guide: debugging” functional
    • New resource “Strudel Guide: film” functional
    • New resource “Strudel Guide: stage” functional
    • New resource “Strudel Guide: gallery” functional
    • Server version: 0.9.2 → 0.10.1 functional
    • Server version: 0.9.0 → 0.9.2 functional
    • Server version: 0.7.0 → 0.9.0 functional
    • Server version: 0.6.0 → 0.7.0 functional
    • New tool “get-session” functional
    • New tool “update-session” functional
    • “play-live-pattern” added an optional parameter “session” cosmetic
    • “get-strudel-guide” added an optional parameter “piece” cosmetic
    • “get-strudel-guide” reworded the description of “topic” cosmetic
  • 1 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Sept 26 +1
    • Stability: unverified → 0.03 ▲ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 6 Oct 2026 · Probed https://music-studio.linxule.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=linxule.com CN=WE1,O=Google Trust Services,C=US 26 Sept 2026 25 Dec 2026 ECDSA 256 ECDSA-SHA256 ed5c6eb63a6c259e0e81f874ce85194e
SANs: linxule.com, music-studio.linxule.com, *.music-studio.linxule.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of music-studio.linxule.com. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
linxule.com. present 2371 13 Verified
music-studio.linxule.com. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://music-studio.linxule.com/mcp Verified 200
http (plaintext) http://music-studio.linxule.com/mcp HTTPS enforced 301 https://music-studio.linxule.com/mcp
MCP tools · 10 exposed · ~3,173 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
analyze-harmony ~359

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.

NameTypeReqDescription
chordsarray–Chord symbols, e.g. ["Dm7","G7","Cmaj7"]. For detect-key/scale-for-chord.
keystring–Key, e.g. "C", "A minor", "F# major". For suggest-progression/key-chords.
notesarray–Note names, e.g. ["c4","e4","g4","b4"] or ["C","Eb","G"]. For detect-chord/detect-key.
romanNumeralsarray–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.
taskstringyesWhat 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.

No output schema declared.

No examples provided.

convert-abc-to-strudel ~303

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.

NameTypeReqDescription
abcNotationstringyesABC notation to convert (the same string you'd pass to play-sheet-music).
soundstring–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'.
voiceinteger–Which voice to convert, 1-based, counted across all staves (default 1). Multi-voice tunes report how many voices there are.

No output schema declared.

No examples provided.

create-share-link ~173

Create a hosted music share link only when the user asks to share or store a piece online. Uploads the supplied score or pattern to MCP Music Studio for 30 days; anyone with the link can view and play it without signing in. Creating the same share again refreshes its expiry. Playback does not require this tool, and a play result's '▶ Play in browser' link already opens the piece for anyone when it fit in the link; this tool gives a short stored link. Provide kind 'score' with score, or kind 'play' with pattern. Never include private information or secrets.

NameTypeReqDescription
kindstringyes–
patternobject–The arguments you gave play-live-pattern (theme and session are not carried).
scoreobject–The arguments you gave play-sheet-music.

No output schema declared.

No examples provided.

get-music-guide ~127

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).

NameTypeReqDescription
topicstringyesReference topic. Start with 'genres' for complete examples, 'styles' to understand presets, or 'instruments' for the full instrument list.

No output schema declared.

No examples provided.

get-session ~192

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.

NameTypeReqDescription
sessionstringyesThe session id from play-live-pattern's result (16 lowercase letters/digits).
waitstring–Listen instead of just reading: 'pass' until the listener presses Pass, 'activity' until they play. Returns at once if that already happened since your last read, else after ~40 s — call again to kee…

No output schema declared.

No examples provided.

get-strudel-guide ~349

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`).

NameTypeReqDescription
piecestring–With topic 'gallery': the complete code of one piece (the index lists them).
topicstringyesReference topic. Start with 'genres' for working templates, 'sounds' for instruments, 'visuals' for draw methods and presets, 'hydra' for shader backgrounds, 'advanced' for sample loading. For a musi…

No output schema declared.

No examples provided.

play-live-pattern ~716

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.

NameTypeReqDescription
autoplayboolean–Start playing immediately (default: true). May require user click due to browser autoplay policy.
bpmnumber–Tempo in BPM (40-300). Converts to setcps() automatically.
codestringyesStrudel 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 exp…
sessionboolean–Optional: keep this player open as a live session. update-session then swaps new code in on the bar, and get-session reports what played and what the user did. For a jam, or a piece you change while…
themestring–Editor colour scheme. It also sets the ground the visuals sit on, so pick a dark one when the visual is the point (e.g. 'nord', 'sonicPink', 'tokyoNight').
titlestring–Pattern title displayed in the widget header (e.g. 'Midnight Rain').
visualsstring–A ready-made visual for code that has none of its own: pianoroll, punchcard, scope or spectrum (drawn behind the code), or hydra-kaleid, hydra-pulse, hydra-wash or hydra-feed (shader backgrounds). It…

No output schema declared.

No examples provided.

play-sheet-music ~578

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.

NameTypeReqDescription
abcNotationstring–ABC notation string. Include chord symbols ("C", "Am7") above notes for auto-accompaniment with style presets.
drumIntrointeger–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.
instrumentstring–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' give…
stylestring–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, cl…
swingnumber–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 tak…
temponumber–Tempo in BPM (40-240). Overrides Q: in ABC notation.
titlestring–Piece title (overrides T: in ABC). Shown in the widget header and used as the filename stem for the WAV/MIDI downloads.
transposeinteger–Transpose by semitones (-12 to 12). Positive=higher, negative=lower. Rewrites the notation and the key signature, so the printed score matches what plays.

No output schema declared.

No examples provided.

search-music-docs ~160

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.

NameTypeReqDescription
librarystring–Which library to search: 'strudel' for live coding patterns, 'abcjs' for sheet music notation.
querystringyesWhat you want to know. Be specific. Good: 'how to use FM synthesis with envelope' or 'chop and slice sample manipulation'. Bad: 'effects' or 'help'.

No output schema declared.

No examples provided.

update-session ~216

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').

NameTypeReqDescription
codestringyesThe complete new Strudel pattern (same rules as play-live-pattern's code).
quantizeinteger–Land on the next multiple of this many cycles (bars). 1 = next bar (default), 4/8 = phrase, 0 = now.
sessionstringyesThe session id from play-live-pattern's result (16 lowercase letters/digits).

No output schema declared.

No examples provided.

Common questions

What is the Music Studio MCP server?

Music Studio is an MCP server listed in the public MCP registry as io.github.linxule/mcp-music-studio. ABC sheet music + Strudel live coding: songs, videos and live jam sessions in ext-apps widgets. This page covers its hosted endpoint (https://music-studio.linxule.com/mcp).

Is the Music Studio MCP server safe to use?

Music Studio scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Music Studio MCP server expose?

Music Studio exposes 10 tools: create-share-link, play-sheet-music, play-live-pattern, get-session, update-session, and 5 more. Their descriptions and schemas cost roughly 3,173 tokens of context every time the server is loaded.

Does the Music Studio MCP server require authentication?

No. We connected to Music Studio without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Music Studio MCP server still maintained?

Music Studio is still listed as active in the MCP registry. We last reached this channel on 6 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.