{
  "markdown": "# MCP Audio Studio\n\nAn interactive digital audio workstation delivered as an MCP server and MCP App. It combines an FL-style channel rack, piano roll, playlist, mixer, effects, automation, plugin slots, audio-file tracks, microphone recording, and offline WAV rendering in one package.\n\n![MCP Audio Studio channel rack](docs/audio-studio.png)\n\nThe model and the person use the same authoritative project. Every UI action calls an MCP tool; every model-side edit becomes visible in an open studio through revision polling.\n\n## What works\n\n- Tempo, time signature, swing, metronome, loop, play/stop, and microphone record controls.\n- Instrument and audio tracks with a 16-step channel rack and chromatic piano roll.\n- Audio file import, clip placement, gain/trim metadata, and browser playback.\n- Per-channel and master volume, pan, mute, solo, sends, and animated meters.\n- Four-band equalizer and filter, delay, reverb, distortion, compressor, chorus, and limiter slots.\n- Playback and render automation for master/track mixing, EQ, sends, built-in effects, instrument parameters, and numeric plugin parameters, with linear, hold, and smooth control points.\n- Built-in DSP slots, browser-safe Web Audio Module (WAM) slots, and VST3 control/state slots.\n- Pure-JavaScript stereo WAV rendering, returned as playable MCP audio content.\n- Project persistence, import, and export.\n- stdio, Streamable HTTP, and HTTPS transports.\n- Standalone browser mode at the HTTP/HTTPS server root.\n\n## Run it\n\n### npm via npx (recommended)\n\nThe package is published on [npm](https://www.npmjs.com/package/mcp-audio-studio). With Node.js 18 or newer, run it without installing or cloning the repository:\n\n```bash\n# MCP stdio\nnpx -y mcp-audio-studio@latest --stdio\n\n# HTTP MCP endpoint + standalone studio\nnpx -y mcp-audio-studio@latest --http --port 3100\n```\n\nThe HTTP studio opens at `http://127.0.0.1:3100/`; the MCP endpoint is `http://127.0.0.1:3100/mcp`.\n\n### One standalone executable\n\nDownload the executable for Windows, macOS, or Linux from [GitHub Releases](https://github.com/flujo-app/mcp-audio-studio-mcpapp/releases). It contains the server, MCP App, runtime, and JavaScript dependencies.\n\n```powershell\n# MCP stdio\n./mcp-audio-studio-windows-x64.exe --stdio\n\n# HTTPS MCP endpoint + standalone studio\n./mcp-audio-studio-windows-x64.exe --https --port 3100\n```\n\nWithout configured certificates, HTTPS mode creates an ephemeral self-signed localhost certificate. For a trusted certificate, set `MCP_AUDIO_STUDIO_TLS_CERT` and `MCP_AUDIO_STUDIO_TLS_KEY`.\n\n### From source\n\nFor local development from a checked-out repository:\n\n```bash\nnpm install\nnpm run build\nnode ./dist/index.js --stdio\nnode ./dist/index.js --http --port 3100\n```\n\n### MCP client configuration\n\nUse the npm package in an MCP client without a separate installation:\n\n```json\n{\n  \"mcpServers\": {\n    \"audio-studio\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-audio-studio@latest\", \"--stdio\"]\n    }\n  }\n}\n```\n\nFor a checked-out repository instead:\n\n```json\n{\n  \"mcpServers\": {\n    \"audio-studio\": {\n      \"command\": \"node\",\n      \"args\": [\"./dist/index.js\", \"--stdio\"]\n    }\n  }\n}\n```\n\nFor a downloaded executable, replace `command` with its absolute path and use `[\"--stdio\"]` for `args`.\n\nCall `studio_ui` to render the studio. The tool declares `_meta.ui.resourceUri = \"ui://audio-studio/studio-v1.html\"`, and the resource uses the portable `text/html;profile=mcp-app` MIME type and MCP Apps bridge.\n\n## MCP tools\n\n| Area | Tools |\n| --- | --- |\n| Studio and project | `studio_ui`, `get_project`, `new_project`, `set_project`, `import_project`, `export_project` |\n| Transport | `set_transport` |\n| Tracks and notes | `add_track`, `update_track`, `remove_track`, `set_steps` |\n| Audio clips | `add_audio_clip`, `update_audio_clip`, `remove_audio_clip` |\n| Mixing | `set_mixer`, `set_equalizer` |\n| Effects | `add_effect`, `update_effect`, `remove_effect` |\n| Plugins | `add_plugin`, `update_plugin`, `remove_plugin` |\n| Automation | `upsert_automation`, `remove_automation` |\n| Rendering | `render_audio`, `get_render` |\n\nAll data tools work without a UI and return model-readable text plus structured content. `studio_ui` is the dedicated render tool, avoiding unnecessary iframe remounts.\n\n## VST3 and WAM support\n\nMCP Apps run in a sandboxed browser iframe, which cannot load native `.dll`, `.so`, or `.vst3` binaries. This release therefore provides:\n\n- WAM URL slots for browser-safe plugin modules.\n- VST3 slots with paths, enable/bypass, parameters, opaque state, and automation targets.\n- A stable project/tool representation intended for a future native plugin-host bridge.\n\nThe bundled Web Audio and offline render engines process built-in instruments/effects. Native VST3 DSP is not executed in this release; representing it otherwise would be unsafe and technically inaccurate. A native bridge should isolate each plugin in its own process and use licensed VST3 hosting APIs.\n\n## Persistence and audio files\n\nPass `--data ./studio-project.json` or set `MCP_AUDIO_STUDIO_DATA` to persist every revision. Imported audio is stored as a data URL inside the project. Browser imports and microphone recordings are normalized to PCM WAV so browser playback and offline rendering use the same asset; direct MCP imports should provide PCM/float WAV data. Offline rendering always emits 16-bit stereo WAV.\n\nRecent renders are kept in memory (up to eight) and are accessible with `get_render` or, in web mode, `GET /renders/:id`.\n\n## Development\n\n```bash\nnpm ci\nnpm run typecheck\nnpm test\nnpm run build\nnpm run serve\n```\n\n`npm run build` produces a single `./dist/index.js` with the entire minified React MCP App embedded as a string. Tests use the official MCP SDK’s linked in-memory transport to verify tool and UI resource discovery.\n\n### Publishing to npm\n\nTo publish the current version:\n\n```bash\nnpm run release\n```\n\nThe release command signs in through npm when necessary, runs the complete\ncheck suite, publishes the package publicly, and confirms that npm serves the\nversion. It is safe to rerun: if that exact version is already published, it\nverifies the project and skips the duplicate publish.\n\nRun `npm run release:check` to validate the release helper without publishing.\n\n## Security\n\n- The web server disables identifying headers and uses a 64 MB JSON limit for embedded audio.\n- MCP App permissions request microphone and clipboard-write; hosts may deny either capability.\n- The app declares inline, fullscreen, and picture-in-picture (`pip`) display-mode support; the host chooses which declared modes are available.\n- Remote WAM and audio URLs are represented in project state but are not allowed by the embedded MCP App CSP in this release.\n- VST3 paths are metadata only and are never executed.\n\nSee [SECURITY.md](SECURITY.md) for reporting vulnerabilities.\n\n## License\n\nMIT\n",
  "bytes": 6869,
  "sha": "62acb377ab9830d1e7985db40e8edf8ce685b169f901087fa77176318d310b48",
  "repo_slug": "flujo-app/mcp-audio-studio-mcpapp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_mario_andreschak_mcp_audio_stu_b19e29e0/readme"
}