Crack-Pantelimon/bespoke-mcp

Python

0

0 commits

updated Aug 18, 2026

See the code

README

bespoke-mcp

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.

Install

INSTALL.md is the setup: what has to be on the machine (git, CMake, a C++ compiler, Python 3.11–3.14, uv, ffmpeg, optionally Docker), then Windows and Linux instructions per component. Once the submodules are cloned and the fork is built, ./run.sh brings up a window with the bridge open and every harness below sees the servers.

Every harness, no configuration

The four servers — bespoke-live, bespoke-offline, score and overtone — are registered in the repo, one config file per harness, so opening this directory in any of them is the whole setup. None of the files names a path: uv run resolves the project from the working directory, which is this checkout.

HarnessFileNotes
Claude Code.mcp.json + .claude/settings.jsonenableAllProjectMcpServers approves all four on open, so /mcp lists them with nothing to click
VS Code / Copilot.vscode/mcp.jsonVS Code asks once before starting a workspace server
Cursor.cursor/mcp.json
OpenCodeopencode.json
Codex CLI.codex/config.tomlproject-scoped config needs the directory trusted
Gemini CLI.gemini/settings.json
Zed.zed/settings.jsonZed calls them context_servers
Antigravity, Kimi Code, Windsurfper userthese keep one central config in your home directory and will not take a relative path, so it cannot be committed. uv run python tools/install_agent_config.py --install antigravity kimi windsurf writes it, merging into whatever is already there

Two harnesses at once. Every line above is uv run --frozen --no-sync python -m bespoke_mcp and not uv run bespoke-mcp, which is what makes Claude Code and Antigravity — or any other two — able to hold these four servers open on the same checkout at the same time. A plain `uv run

Crack-Pantelimon/bespoke-mcp

Python

0

0 commits

updated Aug 18, 2026

See the code

README

bespoke-mcp

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.

Install

INSTALL.md is the setup: what has to be on the machine (git, CMake, a C++ compiler, Python 3.11–3.14, uv, ffmpeg, optionally Docker), then Windows and Linux instructions per component. Once the submodules are cloned and the fork is built, ./run.sh brings up a window with the bridge open and every harness below sees the servers.

Every harness, no configuration

The four servers — bespoke-live, bespoke-offline, score and overtone — are registered in the repo, one config file per harness, so opening this directory in any of them is the whole setup. None of the files names a path: uv run resolves the project from the working directory, which is this checkout.

HarnessFileNotes
Claude Code.mcp.json + .claude/settings.jsonenableAllProjectMcpServers approves all four on open, so /mcp lists them with nothing to click
VS Code / Copilot.vscode/mcp.jsonVS Code asks once before starting a workspace server
Cursor.cursor/mcp.json
OpenCodeopencode.json
Codex CLI.codex/config.tomlproject-scoped config needs the directory trusted
Gemini CLI.gemini/settings.json
Zed.zed/settings.jsonZed calls them context_servers
Antigravity, Kimi Code, Windsurfper userthese keep one central config in your home directory and will not take a relative path, so it cannot be committed. uv run python tools/install_agent_config.py --install antigravity kimi windsurf writes it, merging into whatever is already there

Two harnesses at once. Every line above is uv run --frozen --no-sync python -m bespoke_mcp and not uv run bespoke-mcp, which is what makes Claude Code and Antigravity — or any other two — able to hold these four servers open on the same checkout at the same time. A plain `uv run