Skip to main content
Glama
README.md
<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

A3.9/5.0

Scored across 20 tools

Disambiguation5/5

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).

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues