Skip to content

koltyj/REW-mcp

REW MCP Server

AI-powered room acoustics analysis for studio monitoring

npm version License: MIT Node.js TypeScript CI Tests

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


What is this?

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

Key capabilities

  • 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

Getting Started

Requirements

  • Node.js 20+
  • Room EQ Wizard running with API enabled (-api flag or Preferences)
  • Measurement microphone (calibrated preferred — UMIK-1, UMIK-2, etc.)

Install

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "rew-mcp": {
      "command": "npx",
      "args": ["-y", "rew-mcp"]
    }
  }
}

Claude Code

claude mcp add rew-mcp -- npx -y rew-mcp

Cursor

Install in Cursor

Or: Settings > Features > MCP Servers > npx -y rew-mcp

VS Code

Install in VS Code

Or via Smithery:

npx -y @smithery/cli install rew-mcp --client claude

Example Workflow

You:    "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 ✓"

Tools

Offline Analysis

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

REW API Control

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

Prompts & Resources

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

Claude Code Plugin

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

Commands

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

Skills & Automation

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.


Documentation

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

Development

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 mode

Contributing

Contributions 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 Request

License

MIT © Kolton Jacobs


About

An MCP server designed to give Claude code the ability to control room EQ wizard as well as interpret the results into actionable corrective steps and to guide you into both orienting your room properly as well as calibrating your speakers correctly. I have it set up to help me with Genelec's GLM system for now but sound ID reference is planned.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors