musescore / musescore/muse_framework

rcontrol/mcp: are there plans for an official MCP / scripting surface? (built one on top of it)

Open
#276 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
12
Forks
57
Avg merge
1d 22h
Merged PRs (30d)
37

Description

Hi — I wanted to introduce myself and what I've been working on, in case it's useful or overlaps with where you're taking this.

I maintain an MCP server for Audacity 3 (Audacity-MCP), which works through mod-script-pipe. When Audacity 4 dropped that with nothing in its place, I asked in audacity/audacity#10533 whether extensions would be able to trigger actions in v4, and then went looking for how it might be done.

That's when I found framework/rcontrol/mcp. It gave me exactly the piece I'd have struggled to write well myself — the transport and the JSON-RPC framing — so I built a command surface on top of it: a module registering commands through ICommandsRegister against Audacity's own interfaces (ITrackeditProject, ISelectionController, IEffectsProvider, IRealtimeEffectService, IEffectParametersProvider). It's at 84 commands now, which a Python MCP server composes into 159 tools — editing, selection, effects, realtime VST3 chains with live parameter control, labels, transcription, and some higher-level cleanup and mastering workflows.

It works well enough that I've been using it daily on real projects. Everything is tested against a running instance rather than mocks, which is how I ended up finding a few things in Audacity itself along the way — including a VST3 host bug where plug-in messages arriving from non-UI threads were dropped, which meant no VST3 meter or analyser had ever animated. That one's up as audacity/audacity#11992.

What I'd really like to know is whether an official scripting or MCP surface is on the roadmap for Audacity 4.

I'm maintaining a fork at the moment, which I'd rather not do indefinitely if this is somewhere the project is already heading. If it is, I'd be glad to contribute what I have rather than keep it separate. If it isn't planned, that's a completely fair answer — it would just be genuinely useful to know either way.

I've also picked up a fair amount about the sharp edges of driving Audacity programmatically, and I have fixes for a few things I ran into in rcontrol/mcp while building on it. Happy to send those as PRs, or to write up what I've learned, if either would be useful — and equally happy to leave it if the module's direction is still moving.

Thanks for building it in the first place — it saved me a lot of work.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading framework/rcontrol/mcp to understand the existing transport and JSON-RPC framing, then review the linked Audacity issue and the external Audacity4-Dev-MCP fork's src/mcp/ module. The issue is asking for roadmap direction rather than naming a scoped change; it is done when maintainers clarify whether an official scripting or MCP surface is planned and what contribution path is appropriate.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.