AI-powered room acoustics analysis for studio monitoring
A Model Context Protocol server that connects Claude to Room EQ Wizard, turning raw measurements into actionable acoustics guidance.
Getting Started · Tools · Plugin · Docs · Contributing
REW MCP Server lets an LLM control Room EQ Wizard, analyze your measurements, and coach you through room treatment and speaker placement — step by step, one recommendation at a time.
Instead of staring at graphs, you get answers:
"You have a 12 dB null at 83 Hz caused by speaker boundary interference. Your monitors are 0.97 m from the rear wall — move them to 1.4 m or 0.6 m to shift the cancellation frequency out of the critical listening range. GLM cannot fix this; it's a physics problem."
- Guided calibration — Mic gain staging, SPL calibration to 85 dB reference, L/R/Sub measurement sessions
- Plain language analysis — Room modes, SBIR, reflections, symmetry issues explained with causes and fixes
- GLM transparency — What Genelec's DSP corrected vs what it physically cannot
- Placement optimization — One change at a time, measure after each, validate the improvement
- 27 MCP tools — Full programmatic control of REW's API: measurements, signal generator, SPL meter, RTA, EQ, and more
- Node.js 20+
- Room EQ Wizard running with API enabled (
-apiflag or Preferences) - Measurement microphone (calibrated preferred — UMIK-1, UMIK-2, etc.)
|
Claude Desktop Add to {
"mcpServers": {
"rew-mcp": {
"command": "npx",
"args": ["-y", "rew-mcp"]
}
}
} |
Claude Code claude mcp add rew-mcp -- npx -y rew-mcp |
|
Cursor Or: Settings > Features > MCP Servers > |
VS Code |
Or via Smithery:
npx -y @smithery/cli install rew-mcp --client claudeYou: "Help me calibrate my studio monitors"
Claude: Connects to REW → checks your mic levels → calibrates to 85 dB SPL
→ measures Left, Right, Sub → analyzes the room → finds issues:
1. 14 dB mode at 62 Hz (axial mode, fixable with bass trapping)
2. 8 dB SBIR null at 120 Hz (move speakers 15 cm from rear wall)
3. 3 dB L/R asymmetry above 2 kHz (side wall reflection)
→ guides you through fixes one at a time
→ re-measures after each change
→ validates improvement: "62 Hz peak reduced from 14 dB to 4 dB ✓"
| Tool | What it does |
|---|---|
rew.analyze_room |
Full-room analysis with prioritized, fixability-ranked recommendations |
rew.analyze_room_modes |
Detect peaks, nulls, and correlate with theoretical room modes |
rew.analyze_decay |
RT60, EDT, and ringing analysis (ISO 3382) |
rew.analyze_impulse |
Early reflection detection and path estimation |
rew.compare_measurements |
Before/after, L/R symmetry, multi-position comparison |
rew.compare_to_target |
Score response against flat, Harman, REW room, or custom curves |
rew.interpret_with_glm_context |
What GLM can fix vs what requires physical changes |
rew.average_measurements |
Spatial averaging (RMS, vector, hybrid methods) |
rew.optimize_room |
One-at-a-time placement optimization with validation |
rew.ingest_measurement |
Parse REW text exports for offline analysis |
| Tool | What it does |
|---|---|
rew.api_connect |
Connect to REW's REST API |
rew.api_audio |
Configure input/output devices and sample rate |
rew.api_check_levels |
Verify mic gain (clipping/optimal/low zone feedback) |
rew.api_calibrate_spl |
Semi-automated SPL calibration to target level |
rew.api_measure |
Trigger sweeps, SPL readings, or configure measurement |
rew.api_measure_workflow |
Orchestrated setup + level check + calibration + measurement |
rew.api_measurement_session |
Stateful L/R/Sub measurement sequence |
rew.api_generator |
Signal generator: pink noise, sweeps, tones |
rew.api_spl_meter |
Live SPL metering (A/C/Z weighting, Slow/Fast/Impulse) |
rew.api_rta |
Real-time analyzer control and capture |
rew.api_list_measurements |
List loaded measurements |
rew.api_get_measurement |
Fetch measurement data by UUID |
rew.api_import |
Import measurement files into REW |
rew.api_measurement_commands |
Execute per-measurement REW commands |
rew.api_measurement_eq |
Manage per-measurement EQ, filters, and targets |
rew.api_eq |
Global EQ defaults, house curves |
rew.api_groups |
Measurement group management |
MCP Prompts — Pre-built workflow templates
| Prompt | Description |
|---|---|
rew_calibration_full |
Complete end-to-end calibration workflow |
rew_gain_staging |
Standalone mic gain and level calibration |
rew_measurement_workflow |
Session-aware L/R/Sub measurement sequence |
rew_optimization_workflow |
Iterative placement optimization loop |
MCP Resources — Dynamic session and measurement data
| URI Template | Description |
|---|---|
session://{session_id} |
Session state, step, and captured measurements |
measurement://{measurement_id} |
Stored frequency response data and metadata |
recommendations://{session_id} |
Active optimization recommendations |
history://{session_id} |
Measurement history and summaries |
For Claude Code users, the included plugin adds guided workflows, domain knowledge, and quality automation on top of the MCP server.
# From a cloned repo
claude --plugin-dir ./plugin
# Or from npm (installs both the MCP server and plugin)
npm install -g rew-mcp
claude --plugin-dir $(npm root -g)/rew-mcp/plugin| Command | Description |
|---|---|
/rew:calibrate |
Full calibration workflow — levels, SPL, L/R/Sub, analysis, optimization |
/rew:analyze |
Analyze measurements with prioritized recommendations |
/rew:optimize |
Iterative placement optimization cycle |
/rew:status |
Session state and next recommended step |
| Component | What it provides |
|---|---|
| room-acoustics skill | Room modes, SBIR, treatment, GLM knowledge, target curves |
| rew-workflows skill | Tool chaining patterns, workflow sequencing, best practices |
| measurement-reviewer agent | Proactive data quality review after measurements |
| workflow-enforcement hook | Soft-warns when tools are called out of recommended order |
See plugin/README.md for full details.
| Document | Description |
|---|---|
| Architecture | System design and data flow |
| GLM Context | How Genelec GLM works and its limitations |
| Analysis Rules | Detection algorithms and thresholds |
| File Formats | REW export format specifications |
| Resources | MCP resource URIs and payload shapes |
| Examples | End-to-end measurement and analysis workflows |
npm install # Install dependencies
npm run build # Build TypeScript
npm test # Run tests (884 passing)
npm run test:coverage # With coverage report
npm run lint # ESLint
npm run dev # Watch modeContributions welcome. See Contributing Guide and Code of Conduct.
git checkout -b feature/your-feature
npm test
git commit -m 'feat: add your feature'
git push origin feature/your-feature
# Open a Pull RequestMIT © Kolton Jacobs