npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

rew-mcp

v1.0.0

Published

MCP server for Room EQ Wizard measurement analysis. Enables AI-assisted speaker placement decisions and validation of Genelec GLM calibration.

Readme

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 18+
  • 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

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

| 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


Changelog · Report Bug · Request Feature