Skip to main content
Glama

bespoke-mcp

An MCP server that lets an LLM drive a live Bespoke Synth window: build and rewire the module graph, set and modulate controls (including the right-click LFO surface), sequence notes, control playback, and — crucially — hear the result via numeric audio analysis, rendered spectrogram/waveform images, and a symbolic note-event log fed back to the model.

Architecture

Claude ──stdio──▶  Python MCP server  ──TCP NDJSON JSON-RPC──▶  BespokeSynth.exe (fork)
                   (mcp/src/bespoke_mcp)                         └─ McpBridge (C++ singleton)
                   numpy DSP · matplotlib plots                     drained on the main thread
                   ASCII piano roll · module catalog                in ModularSynth::Poll()
  • C++ bridge (BespokeSynth/Source/Mcp*.{h,cpp}) — an always-on singleton registered via ModularSynth::AddExtraPoller. Socket threads parse newline-delimited JSON-RPC 2.0 on 127.0.0.1:5309 (pref mcp_port, env BESPOKE_MCP_PORT, CLI -o mcp_port N) and queue requests; all graph mutation executes on the message thread with the same locks the UI uses. Structured errors carry did_you_mean / valid_targets payloads so a model self-corrects on the next turn.

  • Python MCP server (mcp/src/bespoke_mcp) — exposes the bridge as MCP tools, does all audio analysis in numpy (dBFS/LUFS, spectral centroid/flatness/rolloff, band energies, pitch, onsets, stereo), renders PNG plots for vision, and formats note/pulse events as an ASCII piano roll.

  • BespokeSynth/ — git submodule; currently edited in place, to be repointed at a fork. Upstream file touches are kept minimal and listed in UPSTREAM.md.

Related MCP server: Ableton Live MCP

Development

# C++ (from BespokeSynth/): configure once, then
cmake --build ignore/build --config Release --target BespokeSynth

# Python: uv manages everything from the repo root
uv sync
uv run pytest
uv run ruff check .

# Run the MCP server (spawns/attaches to BespokeSynth via <data>/mcp/instance.json)
uv run bespoke-mcp

Register with Claude Code: claude mcp add bespoke -- uv --directory <this dir> run bespoke-mcp

Layout

Path

Contents

BespokeSynth/

the synth (submodule) + the C++ bridge in Source/Mcp*

mcp/src/bespoke_mcp/

Python MCP server: tools, bridge client, launcher, DSP/rendering

tests/python/

fast unit tests (no synth needed)

tests/integration/

tests that launch the real binary

skills/

Claude skills teaching patching, modulation, sequencing, analysis

TODO.md

deferred roadmap (offline render device, fuzz matrix, skills, …)

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Create and track AI music videos and audio-reactive visuals from songs.

  • Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.

  • MCP server for Producer/Riffusion AI music generation

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Crack-Pantelimon/bespoke-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server