wwise-mcp
<h1 align="center">๐๏ธ wwise-mcp</h1>
<p align="center"><b>Talk to Wwise in plain English.</b><br>
An MCP server that lets Claude drive <a href="https://www.audiokinetic.com/">Wwise</a> over WAAPI โ
audit your project, batch-edit, wire up events, and catch broken references, straight from a chat box.</p>
<p align="center">
<img alt="MIT License" src="https://img.shields.io/badge/license-MIT-green">
<img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-blue">
<img alt="Wwise 2021.1+" src="https://img.shields.io/badge/Wwise-2021.1%2B-orange">
<img alt="Tests" src="https://img.shields.io/badge/tests-84%20passing-brightgreen">
<img alt="PRs welcome" src="https://img.shields.io/badge/PRs-welcome-blueviolet">
</p>
```text
You: "These 8 gunshots โ make them playable in-game, per our conventions."
Claude: โ
converted โ
wrapped in a Random container โ
created 8 Play_ events
โ
routed to the SFX bus โ
added to the Main SoundBank
(preview shown first ยท one Ctrl+Z undoes the whole thing)
```
> Sound designers burn hours in **plumbing mode** โ naming, building events, dragging folders,
> hunting *"why is there no sound?"*. wwise-mcp hands all of that to the AI so you stay in your ears.
> Read the [sound-designer's workflow โ](WORKFLOW.md)
## โจ Why you'll want this
- ๐ฉบ **Catches real bugs.** Events not in any SoundBank, empty sounds, and the classic
*code calls `AK_Reload` but Wwise has `AK_Relod`* typo โ pinpointed to the exact `file:line`.
- โก **One-shot flows.** "Onboard this batch" runs convert โ container โ events โ bus โ bank
in a single sentence. "Check everything and fix what's safe" audits then fixes.
- ๐ก๏ธ **Safe by design.** Every write previews first and undoes in one Ctrl+Z. It never
touches the risky stuff (duplicates, empty sounds) without you.
- ๐ง **Stays out of your art.** It does the plumbing; mixing, sound choice, and feel stay yours.
- ๐ **20 tools**, every one live-validated against real Wwise 2024.1 โ not vaporware.
## Setup
1. **In Wwise:** User Preferences โ enable **Wwise Authoring API** (WAMP, default port 8080), then open a project.
2. **Install:**
```bash
python3.12 -m venv .venv && . .venv/bin/activate && pip install -e .
```
3. **Register with your MCP client** (stdio). Use the absolute path to the venv
entry point so it works without activating the venv first. For Claude Code:
```bash
claude mcp add wwise -- /Users/inl/wwise-mcp/.venv/bin/wwise-mcp
```
Or in an MCP client config JSON:
```json
{ "mcpServers": { "wwise": { "command": "/Users/inl/wwise-mcp/.venv/bin/wwise-mcp" } } }
```
## Tools
All 20 tools are live-validated against Wwise v2024.1.13. Write tools use a two-step
`mode="plan"` (preview + token) โ `mode="apply"` (execute, undoable) flow.
For how this fits a sound designer's actual day, see [WORKFLOW.md](WORKFLOW.md).
**One-shot flows** (compose the building blocks โ start here)
| Tool | What it does |
|------|--------------|
| `wwise_onboard_assets` | Make sounds playable in one call: conversion โ container โ Play events โ output bus โ SoundBank (dry-run preview, then execute) |
| `wwise_fix_all` | Audit, then auto-fix the fixable (rename / bank / bus) and flag the rest for a human |
**Read / inspect**
| Tool | What it does |
|------|--------------|
| `wwise_status` | Connection / open-project health check |
| `wwise_compat_check` | Report Wwise version + which tools work on it (run first on a new version) |
| `wwise_query` | Read-only WAQL query (capped results) |
| `wwise_inspect` | Full property/reference dump of one object (by GUID, path, or name) |
| `wwise_audit` | Health checks: no Output Bus, empty container, empty sound, event-not-in-SoundBank, duplicate name |
| `wwise_naming_check` | Flag names with whitespace / non-ASCII / not matching a regex |
| `wwise_bus_stats` | Objects-per-Output-Bus overview |
| `wwise_audio_file_check` | Sources missing an original file / shared source paths |
| `wwise_unity_check` | Diff Unity C# `PostEvent("X")` calls against actual Wwise events |
**Document**
| Tool | What it does |
|------|--------------|
| `wwise_export_docs` | Markdown audio-design doc (summary, event list, Mermaid bus tree) |
**Write (plan/apply)**
| Tool | What it does |
|------|--------------|
| `wwise_set_properties` | Batch property edit (volume, output bus, โฆ) |
| `wwise_create_events` | Auto-create `Play_<Sound>` events for sounds that lack one |
| `wwise_rename` | Batch rename via a transform (default `spaces_to_underscores`) |
| `wwise_create_container` | Wrap objects into a new container and move them in |
| `wwise_assign_shareset` | Batch-assign an Attenuation / Conversion ShareSet |
| `wwise_move` | Reparent objects under a target parent |
| `wwise_soundbank_assign` | Add objects to a SoundBank's inclusion list |
**Action**
| Tool | What it does |
|------|--------------|
| `wwise_soundbank_generate` | Generate SoundBanks to disk + error-log summary |
Write tools show exactly what will change before anything is written, and each batch
is one Ctrl+Z to undo.
### Not yet implemented
- **RTPC/Switch wiring** โ deferred: the `@RTPC` curve-object structure could not be
cleanly validated via WAAPI in this environment, so a write op was not shipped rather
than ship an unvalidated mutation. See `docs/superpowers/notes/`.
## Compatibility
Requires **Wwise 2021.1+** (the version that introduced WAQL, which most tools use).
Run **`wwise_compat_check`** first on any untested version to see what works.
| Wwise version | Status | Notes |
|---------------|--------|-------|
| 2024.1.13 | โ
verified | All tools live-validated |
| 2021.1 โ 2023.x | ๐ข expected | WAQL present, core APIs stable โ please report via an issue |
| < 2021.1 | โ unsupported | No WAQL; query-based tools return a clear version error |
Help expand this matrix: see [CONTRIBUTING.md](CONTRIBUTING.md) โ capturing your version
takes ~5 minutes and no coding (`python scripts/capture_fixtures.py` โ PR).
## Tests
```bash
pytest -m "not integration" # unit + contract (runs across all version fixtures) โ no Wwise needed
pytest -m integration # requires a running Wwise + open project
```
## Design & plans
- Design spec: `docs/superpowers/specs/2026-06-13-wwise-mcp-design.md`
- Foundation plan: `docs/superpowers/plans/2026-06-13-wwise-mcp-foundation.md`
- Open WAAPI questions: `docs/superpowers/notes/waapi-precondition-findings.md`
TDQS
Scored across 20 tools
Each tool targets a distinct aspect of Wwise project management: auditing, creation, editing, inspection, soundbank operations, and cross-referencing. Overlaps are minimal and clearly differentiated by descriptions (e.g., wwise_audit vs wwise_naming_check vs wwise_audio_file_check).
All tools follow the wwise_ prefix with snake_case and a verb_noun pattern (e.g., create_container, assign_shareset, fix_all). The naming is highly uniform and predictable.
20 tools is on the higher end, but the domain of Wwise project management justifies the breadth. Each tool serves a clear purpose without redundancy, making the count reasonable though slightly above the ideal range.
The tool set covers major workflows: auditing, creation, editing, soundbank management, documentation, and Unity integration. Minor gaps exist (e.g., no delete tool, limited event modification), but overall the surface is comprehensive for typical audio designer tasks.