Skip to main content
Glama

Fender Studio Pro MCP

A native Rust MCP server that lets an LLM read and control Fender Studio Pro through typed tools. The server connects to a JavaScript bridge and EditTasks inside the DAW through a local mailbox and CoreMIDI.

Actual DAW checks use Fender Studio Pro 8.1.1 Build 113103 on macOS Apple Silicon. The bridge, MIDI note creation and editing, 55 representative built-in parameter roundtrips and 3 bypass roundtrips have passed live checks. A separate follow-up verified all 16 fixed controls on an existing top-level Splitter and 15 named Surround Panner controls in a 5.1 fixture. The 60-class matrix now has 57 classes with changed parameter or native graph controls and 3 with bypass-only control; complete control of every built-in plugin remains unfinished. The earlier 55-class parameter coverage was not rerun on the follow-up binary. Read the validation report and plugin matrix for the evidence boundaries.

The 30 MCP tools cover session and transport state, tracks and mixer channels, MIDI parts and notes, supported plugin parameters, existing Splitter controls, and finite editing operations. Saved-song inspection and WAV analysis also run without a DAW connection. Current surface mappings cover at most 256 mixer channels, 16 insert slots and 8 sends per channel; note-edit batches cover at most 128 parts. Windows, Intel Mac, and Linux DAW integration have no actual-environment validation.

Build with Rust 1.88 or newer and Cargo. The installed server runs as a native binary. Node.js and Python are development and validation tools. The server does not launch either runtime.

Follow these steps for the first connection.

  1. Clone, build, and install the bridge and EditTasks.

    git clone https://github.com/dev-universe/fender-studio-pro-mcp.git
    cd fender-studio-pro-mcp
    cargo build --locked --release
    ./target/release/fender-studio-pro-mcp install

    The default DAW profile is ~/Library/Application Support/Fender/Studio Pro 8. For a different profile, pass --profile /path/to/profile to each command. Installation adds the managed device and extension assets and preserves unrelated settings.

  2. Start the MCP server through your client using the configuration below. For initial device setup without an MCP client, keep this command running in a terminal.

    ./target/release/fender-studio-pro-mcp hold

    The hold command prints "ready": true and publishes the virtual MIDI source. Keep the owner process running while you configure the DAW.

  3. Quit and restart Studio Pro after installation, with the server or hold process already running.

  4. Open External Devices, add a Control Surface, and select these settings.

    Setting

    Value

    Vendor

    fender-studio-pro-mcp

    Device

    Fender MCP Bridge

    Receive From

    fender-studio-pro-mcp

    Send To

    None

  5. Open a session. Use a named disposable scratch session for the first editing checks, with playback and recording stopped. The validated request path requires an open session. The Home screen can time out.

  6. To check the installation and current connection, first disconnect the MCP client or stop hold with Ctrl-C. Then run the standalone diagnostic.

    ./target/release/fender-studio-pro-mcp doctor --live

    Look for "installation_current": true and "live_verified": true. A stored status_file alone reports a previous bridge load. It does not verify the current connection.

  7. Start your MCP client again. Only one server, hold, live diagnostic, or CLI controller can own the same profile at a time. A second owner returns controller_busy.

Use an absolute binary path in a client that supports stdio MCP servers. Adapt this generic configuration to your client's settings format.

{
  "mcpServers": {
    "fender-studio-pro": {
      "command": "/path/to/fender-studio-pro-mcp/target/release/fender-studio-pro-mcp",
      "args": ["serve"]
    }
  }
}

The client starts serve and exchanges MCP JSON-RPC through stdin and stdout. The server writes diagnostics to stderr. Keep the server alive during the DAW session. If the input source disconnects after a server restart, reselect Receive From with the server running. Restarting the DAW with the owner already running is the first-connection sequence above. Reconnection across every launch order remains unverified.

Ask the LLM to call host_status before editing. Mutations require its current document token as expected_document. Reopening or switching a document invalidates earlier editing intent. Call operations_list to inspect the finite operation schema and tool capabilities.

For standalone CLI calls, stop any other owner first. Read the current context.

./target/release/fender-studio-pro-mcp call context

For a scratch channel named Scratch with Mixtool in insert slot 0, read the parameter before setting it. Replace the names and document token with the values from your own scratch session. Insert slots start at zero, and normalized values range from 0 to 1.

./target/release/fender-studio-pro-mcp call pluginParams \
  '{"kind":"effect","channel":"Scratch","slot":0,"plugin":"Mixtool","names":["gain"]}'

./target/release/fender-studio-pro-mcp call setPluginParam \
  '{"kind":"effect","channel":"Scratch","slot":0,"plugin":"Mixtool","param":"gain","normalized":0.5}' \
  --expected-document 'DOCUMENT_TOKEN_FROM_CONTEXT'

Plugin writes require the expected plugin class or instance name. Parameter discovery uses partial metadata candidates. A missing candidate does not prove that the plugin lacks the control. Class matching also cannot distinguish replacement by another instance of the same class in the same slot.

Use track_formats to read the host's exact audio format names, then tracks_edit with {"ops":[{"op":"addAudioTrack","name":"Scratch 5.1","format":"5.1"}]} and the current expected_document, using a returned format name. Mono and stereo names can be localized. The operation refuses unknown/non-audio formats and duplicate track names. panner_get includes the channel's readable speakerFormat descriptor.

For an existing Splitter, splitters_list returns its native node name, label and active parameter descriptors; pass that identity to splitter_set. Counts 2..5, modes 0..2, five gains, five mutes and four crossovers passed change/readback/restore checks. Graph creation, connection, deletion and nested graph editing remain unfinished. Surround Panner uses plugin_parameters and plugin_parameter_set with kind:"panner", slot:0 and plugin:"Surround Panner". Only the 5.1 fixture and 15 known parameter names are verified. Read native descriptors or use normalized writes: some raw scales are 0..10000. External Effect gain, mix and routing, and full native parameter enumeration remain open.

Read each outcome receipt. applied_verified includes operation-specific readback. applied_unverified acknowledges an edit without complete verification. partially_applied preserves successful earlier work. outcome_unknown can mean the edit happened before a timeout. Inspect the actual state before deciding whether to repeat an operation.

These commands inspect local files without connecting to the DAW or taking its controller lock.

./target/release/fender-studio-pro-mcp local-catalog --plugin 'Pro EQ'
./target/release/fender-studio-pro-mcp song-read /path/to/Scratch.song
./target/release/fender-studio-pro-mcp audio-analyze /path/to/render.wav

local-catalog reads candidate parameter names from the installed app's metadata. song-read reports the last saved archive, including partial plugin snapshots, rather than unsaved live edits. audio-analyze reports WAV loudness, peak, RMS, and stereo measurements with explicit format and measurement limits. Dedicated DAW capture and export workflows remain unfinished.

After a source update, rebuild, stop the active owner, run install, and restart Studio Pro. The installer refuses to overwrite modified managed assets without install --force. Back up your changes before using that option. To remove unchanged managed assets, stop the owner and run uninstall. Locally modified managed files are preserved.

Use these documents for details.

This independent project is not affiliated with Fender or PreSonus. Fender Studio Pro and Studio One are trademarks of their respective owners. The project uses the MIT license. Copied upstream assets retain their notices in third-party notices.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to connect to Ableton Live, inspect the arrangement, compose and edit MIDI, manage tracks/scenes/clips, insert and tweak devices, and control the mixer.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides AI agents with reversible DAW control for music production, enabling inspection of instruments and parameters, batch edits, and evaluated revision runs with audio feedback and rollback.
    2
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP agents to inspect and precisely edit a running Ardour session — tracks, buses, groups, mixer, transport, regions, internal MIDI, plugins, routing and automation — through the DAW's Lua APIs with optional native OSC, plus offline audio analysis and comparison of master exports. Edits are exposed as 80 typed tools with persistent IDs, explicit units, preflight validation and structured change/error results.
    GPL 3.0
  • A
    license
    B
    quality
    B
    maintenance
    Control Logic Pro locally on macOS through MCP: transport, tracks, mixer, plug-in parameters, audio analysis, bounce and delivery, with optional gesture and voice control. Uses OSC, CoreMIDI and macOS Accessibility. Actions report confirmed, uncertain or failed outcomes. Actual control requires a local Mac with Logic Pro. Hosted/Linux builds are schema inspection only; all operations are disabled.
    12
    2
    MIT