fmod-studio-mcp
This server provides a programmatic interface to control a running FMOD Studio instance in real-time, allowing AI agents to edit, create, and manage FMOD projects without manual interaction.
Project Management
Create, save, delete, and build projects; import audio files; export GUIDs; look up objects by path or GUID.
Event Authoring & Playback
Create events (with one-shot sound, audio track, and bank assignment in one call); add group/marker/return tracks and game parameters.
Control playback: play, stop, pause, key-off, return to start; query state (isPlaying, isPaused, is3D, isOneShot, etc.); manage 3D attributes and cursor/playhead positions.
Object Property & Relationship Management
Read/write any property of any object (including dynamic ones like
timeline,audioFile, pitch, looping).Add/remove relationships between objects (e.g., assign events to banks).
Mixer & Effects
Add effects to mixer bus effect chains (EQ, compressor, reverb, delay, chorus, limiter, spatialiser, etc.).
Set convolution reverb impulse responses; query bus input/output formats and mixer strip paths.
Automation & Modulation
Add automators and modulators (randomizer, ADSR, sidechain, autopitch); create automation curves and add automation points at specific positions/values.
Asset Management
Get/set asset file paths (absolute or relative); retrieve assets from the master asset folder.
Introspection & Discovery
List all project model class names; describe any class's properties and relationships.
Inspect entity metadata (isAbstract, isGlobal, isSingleton, superEntities) and ManagedObject details.
List available plugins; retrieve parameter presets and their paths.
Console & Scripting Utilities
Log messages, warnings, and errors to the FMOD console; dump object members; display popup alert dialogs.
Add/remove/list custom items under the Scripts menu.
System Information
Read OS platform (mac/win), application file path, and FMOD Studio version.
Callback Signals
Connect/disconnect to project events such as audio file import or build start/end.
Integrates with FMOD Studio to allow AI agents to manipulate audio projects live through the FMOD Studio Scripting API, including creating events, importing audio files, editing properties, and saving projects.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fmod-studio-mcpCreate an event for a gunshot sound"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
fmod-studio-mcp
An MCP server that drives FMOD Studio live
through its built-in scripting terminal (TCP, default 127.0.0.1:3663). Unlike
file-based approaches that edit a project's XML on disk (and require closing/reopening
Studio), this talks to the running editor: changes appear immediately, and Studio
itself writes them — so there's no clobbering and no reload dance.
It exposes the FMOD Studio Scripting API as one MCP tool per API member — generated from the crawled reference, not hand-written — plus a few generic tools for the parts the static docs can't enumerate. There is no arbitrary-script / eval tool: every capability is a named, schema-validated operation over FMOD's object model.
⚠️ Alpha. Built for an AI agent (Claude Code) to author game audio. It edits the live project — call
fmod_project_saveto persist, and keep it version-controlled.
How it works
FMOD Studio's Script Server exposes the scripting terminal over a TCP port: it evaluates anything it receives as UTF-8 JavaScript and returns the result as text. It's disabled by default — enable it once in Studio's preferences (see FMOD Studio setup). Opening the console with Ctrl + 0 shows script output but does not start the server. This MCP keeps one connection and uses read-until-idle framing, so it doesn't depend on a particular prompt string.
Each tool generates the small piece of scripting-API JavaScript for its member, runs it,
and returns the result as a string. Anything that returns an object reports that object's
path or {guid}, so results chain straight back in as another tool's target.
Related MCP server: flemcee
The tool set
Generated — one per documented member (~148). Named fmod_<Owner>_<member>, e.g.
fmod_project_create, fmod_project_importAudioFile, fmod_Event_addGroupTrack,
fmod_GroupTrack_addSound, fmod_Bank_getPath, fmod_system_getText. A member's
target_kind decides how it's reached:
kind | reached as | tool inputs |
|
| the member's args |
|
| the member's args |
|
|
|
|
|
|
Method args are auto-embedded: numbers/booleans as JS literals, a path
(event:/…, bank:/Master) or {guid} as an object reference (lookup(...)), else a
string. Settable properties take an optional value (omit to read).
Generic — reach the dynamic, schema-defined members the static docs don't list
(an event's timeline, an instrument's audioFile, a sound's pitch/looping, …):
Tool | Purpose |
| Read any property of an object, including per-class managed properties. |
| Set any property (e.g. instrument |
| Edit a relationship (e.g. event |
| List the project model's class names. |
| List a class's schema-defined property + relationship names (discovery). |
| Composite: create event → import one-shot → add track/sound → assign bank. |
Requirements
FMOD Studio 2.02+, with a project open and the Script Server enabled (Preferences → Interface → Script Server, port 3663 — requires a restart; see FMOD Studio setup below). Opening the console (Ctrl+0) alone does not start it.
Python 3.10+.
FMOD Studio setup — enable the Script Server
The scripting terminal's TCP server (Script Server) is off by default, and opening the console with Ctrl + 0 is not enough — that only shows script output. Enable it once:
Launch FMOD Studio and open your project (
File → Open Project…→ your.fspro).Open Preferences —
FMOD Studio → Preferences…(⌘,) on macOS,Edit → Preferences…on Windows.Select the Interface tab — the Script Server section is at the top. Set:
✅ Enable Script Server (requires restart)
Port:
3663(must matchFMOD_STUDIO_PORT, default3663).
Quit and relaunch FMOD Studio, then reopen the project. The setting only takes effect after a restart.
(optional) Open the console with Ctrl + 0 to watch script output as tools run.
Verify it's listening
# macOS / Linux
nc -z 127.0.0.1 3663 && echo "listening ✓"
lsof -nP -iTCP:3663 -sTCP:LISTEN # shows the fmodstudio process bound to 3663On every launch, FMOD records the Script Server state in its log:
[Scripting] ScriptServer started on 127.0.0.1 (3663) ← enabled ✅
[Scripting] ScriptServer is disabled. ← not enabled ❌Log location: macOS ~/Library/Application Support/FMOD Studio/Logs/,
Windows %LOCALAPPDATA%\FMOD Studio\Logs\ (newest file).
Troubleshooting
Cannot reach FMOD Studio's scripting terminal…— the Script Server isn't running. Grep the newest log forScriptServer is disabled; if present, enable it in Preferences and restart (the checkbox literally says "requires restart" — toggling without relaunching won't bind the port).Enabled but still nothing on 3663 — confirm a project is open (the server won't bind on the start/welcome screen) and that no other app holds the port.
Port mismatch — the Preferences port and
FMOD_STUDIO_PORTmust be the same value.
Install
Run it straight from PyPI with uv — no clone, no venv.
uvx downloads and launches it on demand:
claude mcp add fmod-studio -- uvx fmod-studio-mcpOr add it to any MCP client's config (stdio):
"fmod-studio": { "command": "uvx", "args": ["fmod-studio-mcp"] }Prefer a persistent install over on-demand? Install the package directly:
uv tool install fmod-studio-mcp # exposes the `fmod-studio-mcp` command
# or, with pip:
pip install fmod-studio-mcpConfigure host/port if needed via env: FMOD_STUDIO_HOST (default 127.0.0.1),
FMOD_STUDIO_PORT (default 3663).
From source (development)
git clone https://github.com/EYamanS/fmod-studio-mcp
cd fmod-studio-mcp
python3 -m venv .venv && ./.venv/bin/pip install -e .
claude mcp add fmod-studio -- "$(pwd)/.venv/bin/python" -m fmod_studio_mcpRegenerating for a new FMOD version
The tool set is generated from fmod_studio_mcp/api_spec.json, which is built by crawling
the official Scripting API reference:
python tools/build_spec.py fmod_studio_mcp/api_spec.jsonA new FMOD release means re-running that crawler — not editing a tool registry by hand.
Example
Create an event with a one-shot sound and route it to the Master bank, step by step
(or use the fmod_create_event composite to do it in one call):
fmod_project_create { entityName: "Event" } -> event:/New Event
fmod_set_property { target: "event:/New Event", property: "name", value: "Hit" }
fmod_project_importAudioFile { filePath: "/abs/path/hit.wav" } -> {asset-guid}
fmod_Event_addGroupTrack { target: "event:/Hit", name: "Audio 1" } -> {track-guid}
fmod_get_property { target: "event:/Hit", property: "timeline" } -> {tl-guid}
fmod_GroupTrack_addSound { target: "{track-guid}", parameter: "{tl-guid}",
soundType: "SingleSound", start: 0, length: 2.5 } -> {inst-guid}
fmod_set_property { target: "{inst-guid}", property: "audioFile", value: "{asset-guid}" }
fmod_add_relationship { target: "event:/Hit", relationship: "banks", other: "bank:/Master" }
fmod_project_save {}Safety
Edits the live project. Run
fmod_project_saveto persist; commit the project to git.Avoid editing the same project in the Studio GUI and via this server simultaneously in conflicting ways.
Support
Built this in the open. If it saved you time, a one-off tip keeps it maintained:
License
MIT — see LICENSE.
Keywords: FMOD Studio MCP server · FMOD scripting API automation · AI game-audio tooling · Model Context Protocol server for FMOD · Claude / LLM game-audio agent · programmatic FMOD Studio control · game sound-design automation.
Maintenance
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
- Alicense-qualityFmaintenanceAn MCP server that enables programmatic management and monitoring of development servers through a unified interface and interactive TUI. It provides tools for process control, log streaming, and experimental browser automation via Playwright.Last updated1MIT
- Flicense-qualityCmaintenanceAn MCP server that enables remote control and automation of FL Studio via the flapi Python client. It provides tools for managing transport, mixer tracks, pattern sequencing, and plugin parameters, allowing users to execute Python code directly within the FL Studio environment.Last updated2
- AlicenseBqualityDmaintenanceAn MCP server that enables users to control and edit REAPER projects through a Python-based interface and a Lua bridge. It supports managing tracks, controlling transport, manipulating MIDI and audio items, and adjusting FX parameters within the digital audio workstation.Last updated57GPL 3.0
- AlicenseBqualityCmaintenanceAn MCP server that enables AI coding agents to control FMOD Studio for audio import, event creation, and bank building via TCP scripting.Last updated211MIT
Related MCP Connectors
MCP server exposing the AceDataCloud Fish Audio API (text-to-speech with voice conditioning)
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for Producer/Riffusion AI music generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/EYamanS/fmod-studio-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server