room-eq-wizard-mcp

room-eq-wizard-mcp

Enables natural language control of Room EQ Wizard for acoustic measurements, analysis, and EQ optimization, with peak/null detection and room-mode analysis.

Category
Visit Server

README

room-eq-wizard-mcp

An MCP server that connects LLMs to Room EQ Wizard (REW): typed control of REW's HTTP API plus local acoustic analysis that reduces measurement data to something a model can reason about.

REW is the DSP engine — sweeps, RT60, averaging, EQ optimization all run inside REW, and this server drives them through the API. What the server adds is the layer REW doesn't have: peak/null detection with Q factors and severity, per-band statistics, before/after comparison, room-mode prediction correlated against measurements, and log-decimated curves sized for an LLM context instead of megabytes of base64.

Requirements

  • Node.js 20+
  • REW 5.40+ running with its API server enabled:
    • macOS: open -a REW.app --args -api
    • Windows: roomeqwizard.exe -api
    • or enable it in REW Preferences → API
  • API-triggered measurement (run_sweep) additionally requires a REW Pro upgrade; every read/analysis/EQ tool works without it.

Install

// Claude Desktop (claude_desktop_config.json) or any MCP client config
{
  "mcpServers": {
    "rew": {
      "command": "npx",
      "args": ["-y", "room-eq-wizard-mcp"]
    }
  }
}
# Claude Code
claude mcp add rew -- npx -y room-eq-wizard-mcp

The REW API address defaults to http://127.0.0.1:4735; override with the REW_API_URL environment variable if you run REW on another port.

Tools (46)

Area Tools
Status status, list_api_commands
Measurements list_measurements, get_measurement, rename_measurement, delete_measurement, save_all_measurements, load_measurement_files, run_measurement_command, get_measurement_commands
Groups list_groups, create_group, update_group, delete_group, add_measurements_to_group, get_group_measurements
Data get_frequency_response, get_rt60, get_distortion
Measuring run_sweep
Import import_frequency_response, import_impulse_response, import_frequency_response_data, import_impulse_response_data, import_rta_file, import_sweep_recordings
Signal generator generator
SPL meter read_spl
EQ auto_eq, get_eq_filters, set_eq_filters, get_predicted_response, list_equalisers
Processing average_measurements, align_spl, arithmetic, smooth_measurement, add_spl_offset
Alignment align_measurements, create_aligned_sum, get_alignment_state, configure_alignment, run_alignment_command
Analysis analyze_response, compare_measurements, room_mode_analysis

Typical session: status → run_sweep (or load_measurement_files) → analyze_response → room_mode_analysis with your room dimensions → auto_eq → compare_measurements on the predicted result.

Architecture

src/rew/       the only layer that talks to REW
  codec.ts       base64 big-endian float32 <-> arrays (REW's wire format)
  types.ts       Zod schemas — raw JSON is parsed once at this boundary
  client.ts      HTTP client; enables REW blocking mode once for long commands
src/analysis/  pure functions, no I/O, no mocks needed to test
  spectrum.ts    median-baseline peak/null detection, band stats, decimation
  room-modes.ts  rectangular-room modes, Schroeder frequency, correlation
src/tools/     MCP tools as data: one ToolDef type, one registration loop

Two properties worth knowing:

  • Everything REW computes stays REW's job. RT60, averaging, EQ matching are invoked via the API, never reimplemented — the numbers you get through this server match what the REW GUI shows.
  • Long commands use REW's blocking mode, enabled once per session. A sweep or EQ match returns when it finishes (client timeout 180 s). Note the blocking setting persists in REW across restarts.

Development

pnpm install
pnpm test        # unit suite (mocked HTTP) + live suite that self-skips without REW
pnpm build
pnpm typecheck

With REW running (-api), the live integration tests in src/rew/live.integration.test.ts activate automatically.

Credits

Design informed by two earlier REW MCP servers: koltyj/REW-mcp (analysis depth, typed client patterns) and KevinMeinon/rew-mcp-server (API coverage philosophy and field-tested REW payload shapes, plus its excellent REW API reference doc). REW itself is © John Mulcahy.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured