Direct answer

NoiseAware does not offer a self-serve public API. Its documented API requires a NoiseAware representative to manually provision you as a partner with a ClientID and ClientSecret, and there is no official NoiseAware MCP server as of July 2026. The practical way to connect NoiseAware to Claude is through Seam, a device API platform with an official NoiseAware integration and instant self-serve API keys. You authorize your NoiseAware account into a Seam workspace once, then run a small read-only MCP server against Seam's API. After that, Claude can list your noise sensors, read each property's noise thresholds, and pull threshold-triggered noise events in plain English.

The NoiseAware API situation, honestly

NoiseAware publishes real API documentation at noiseaware.readme.io, with endpoints for properties, events, thresholds, and org webhooks. But it is written for provisioned partners, not individual operators. According to NoiseAware's Third Party Access documentation, a NoiseAware representative must manually provision you as a valid partner before integration can begin, issuing a ClientID, ClientSecret, and connection URL, after which auth follows a modified OAuth 2 authorization code flow with PKCE. The docs also note that an active NoiseAware subscription is required. There is no "generate API key" button in the customer dashboard.

That leaves three realistic routes:

Not viable

Direct NoiseAware API

Partner-only. Unless you are a PMS or platform NoiseAware has provisioned (with your own ClientID, ClientSecret, and OAuth-style token exchange at login.noiseaware.io), you cannot authenticate. Fine to ask your NoiseAware rep about, but not a same-day setup.

This guide

Seam bridge

Seam is an official NoiseAware integration platform. You sign up self-serve, get an API key immediately, authorize your NoiseAware login through a Connect Webview, and Seam exposes your sensors, thresholds, and noise events over a clean REST API that an MCP server can wrap.

Already built

Your PMS / ops platform

NoiseAware already integrates with platforms like Breezeway and Hostaway as a provisioned partner. Breezeway's AutoResolve integration automatically texts guests when noise exceeds thresholds. If all you want is automated guest messaging, that path exists today and needs no code.

What you'll be able to ask Claude

"List all my NoiseAware sensors with their current noise reading and online status."
"Which properties triggered a noise threshold in the last 7 days, and at what times?"
"Show me the noise thresholds configured for the Lakeview unit. Are quiet hours set correctly?"
"Group last month's noise events by day of week. Do weekends actually trip more alerts?"
"Any sensors offline right now that I should check before this weekend's turnovers?"

Prerequisites

  • NoiseAware account with sensors installed and online. An active NoiseAware subscription is required for API-connected access.
  • Seam account. Free signup at console.seam.co. Seam gives you a sandbox workspace with virtual devices, so you can test this whole setup before touching production. Connecting real NoiseAware devices requires a non-sandbox workspace.
  • Claude Desktop installed, or the Claude Code CLI. Download Claude Desktop.
  • Node.js 18 or later. Check with node --version.
1

Create a Seam workspace and connect NoiseAware

  1. Sign up at console.seam.co and create a workspace. For real sensors, make it a non-sandbox (production) workspace.
  2. In the console, create an API key and copy it somewhere safe.
  3. Connect your NoiseAware account. The console can generate a Connect Webview for you, or you can create one via the API with accepted_providers: ["noiseaware"]. Open the webview URL and log in with your NoiseAware credentials.
  4. Once authorized, your sensors appear in the workspace as devices of type noiseaware_activity_zone. Verify they show up in the console's Devices tab before moving on.

In a sandbox workspace, Seam's docs provide test NoiseAware credentials (jane@example.com / 1234) so you can rehearse the flow with virtual sensors first.

2

Set up the Node.js project

Three dependencies: the MCP SDK, Seam's official Node SDK, and zod.

Terminal
mkdir noiseaware-mcp
cd noiseaware-mcp
npm init -y
npm install @modelcontextprotocol/sdk seam zod

Add "type": "module" to package.json:

package.json
{
  "name": "noiseaware-mcp",
  "version": "1.0.0",
  "type": "module",
  "main": "index.js",
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.0.0",
    "seam": "^1.0.0",
    "zod": "^3.22.0"
  }
}
3

Create the MCP server file

Save the following as index.js. Three read-only tools: list-noise-sensors, get-noise-thresholds, and list-noise-events. Nothing here writes anything.

index.js
#!/usr/bin/env node
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { Seam } from "seam";
import { z } from "zod";

const API_KEY = process.env.SEAM_API_KEY;

if (!API_KEY) {
  console.error("Missing SEAM_API_KEY environment variable");
  process.exit(1);
}

const seam = new Seam({ apiKey: API_KEY });

const server = new McpServer({
  name: "noiseaware",
  version: "1.0.0",
});

// Tool 1: List NoiseAware sensors
server.tool(
  "list-noise-sensors",
  "List all noise sensors connected to the Seam workspace, including NoiseAware activity zones. Returns device_id, name, online status, and current noise properties. Use this first to discover device IDs.",
  {},
  async () => {
    const sensors = await seam.noiseSensors.list();
    const noiseaware = sensors.filter(
      (d) => d.device_type === "noiseaware_activity_zone"
    );
    return {
      content: [
        { type: "text", text: JSON.stringify(noiseaware, null, 2) },
      ],
    };
  }
);

// Tool 2: Get noise thresholds for a sensor
server.tool(
  "get-noise-thresholds",
  "List the configured noise thresholds for a specific noise sensor: decibel limits and the daily time windows they apply to (e.g. quiet hours).",
  {
    device_id: z
      .string()
      .describe("Seam device_id of the sensor (from list-noise-sensors)"),
  },
  async ({ device_id }) => {
    const thresholds = await seam.noiseSensors.noiseThresholds.list({
      device_id,
    });
    return {
      content: [
        { type: "text", text: JSON.stringify(thresholds, null, 2) },
      ],
    };
  }
);

// Tool 3: List noise threshold events
server.tool(
  "list-noise-events",
  "List noise_sensor.noise_threshold_triggered events: every time a sensor exceeded its configured threshold. Filter by device and start time to analyze noise incidents across properties.",
  {
    device_id: z
      .string()
      .optional()
      .describe("Optional device_id to filter to one sensor"),
    since: z
      .string()
      .describe("ISO 8601 timestamp to list events from, e.g. 2026-07-01T00:00:00Z"),
  },
  async ({ device_id, since }) => {
    const events = await seam.events.list({
      event_type: "noise_sensor.noise_threshold_triggered",
      device_id,
      since,
    });
    return {
      content: [
        { type: "text", text: JSON.stringify(events, null, 2) },
      ],
    };
  }
);

const transport = new StdioServerTransport();
await server.connect(transport);

Why read-only: threshold configuration is possible through Seam (with real limits, see troubleshooting), but a misconfigured threshold means missed parties or false alarms texted to guests. Explore with reads first; add writes deliberately later if you want them.

4

Register the server with Claude Desktop

Open your Claude Desktop config file:

macOS path
~/Library/Application Support/Claude/claude_desktop_config.json
Windows path
%APPDATA%\Claude\claude_desktop_config.json

Add the entry (merge into your existing mcpServers block if you've set up other guides from this series):

claude_desktop_config.json
{
  "mcpServers": {
    "noiseaware": {
      "command": "node",
      "args": ["/absolute/path/to/noiseaware-mcp/index.js"],
      "env": {
        "SEAM_API_KEY": "your_seam_api_key_here"
      }
    }
  }
}

Replace the path and API key with your real values. Then fully quit and reopen Claude Desktop.

Try it

"List my noise sensors, then pull all threshold-triggered events since the start of last month and tell me which property has the noisiest guests."

Troubleshooting

No devices show up after connecting NoiseAware

Check three things: the Connect Webview finished with a success state (log in again if unsure), you're querying the same workspace your API key belongs to, and your sensors are online in the NoiseAware app itself. Seam surfaces NoiseAware sensors as noiseaware_activity_zone devices; if a sensor is offline on NoiseAware's side, there's nothing for Seam to show.

list-noise-events returns nothing

Two common causes. First, the since timestamp: Seam only retains events for a limited window, so start with something recent. Second, per Seam's NoiseAware integration docs, Seam triggers the threshold event for new noise only, not for continued or resolved noise, so one long party is one event, not many. If genuinely no thresholds have been crossed, the list is legitimately empty. Trigger a test from the sandbox to confirm the pipe works.

I want to set thresholds from Claude, not just read them

Seam supports configuring NoiseAware thresholds, with documented limits: a maximum of one noise threshold per hour per NoiseAware sensor, and threshold time windows cannot overlap. If you add a write tool, mirror the server.tool() pattern and call Seam's noise threshold create endpoint. We'd keep it in a separate server from your read-only one so an exploratory chat can't change alerting behavior.

Claude says it doesn't see any NoiseAware tools

Claude Desktop only reads the config file at startup. Fully quit Claude (Cmd+Q on macOS, right-click tray icon then Quit on Windows) and reopen it. Still broken? Check Help then Open Logs Folder. Common causes: invalid JSON in the config, wrong absolute path to index.js, or node not on your PATH.

Can I skip Seam and go direct once I'm big enough?

If you're a platform or a large operator, ask your NoiseAware contact about partner provisioning. NoiseAware's Third Party Access flow issues you a ClientID and ClientSecret, users authorize at login.noiseaware.io, and you exchange codes for a short-lived JWT (15 minutes) plus a refresh token (15 days). It's a real integration project, not an afternoon script, which is why this guide uses Seam.

FAQ

Does NoiseAware have a public API?

Not a self-serve one. The API reference at noiseaware.readme.io is real and covers properties, events, thresholds, and webhooks, but access requires NoiseAware to manually provision you as a partner. There is no API key generator in the customer dashboard.

Is there an official NoiseAware MCP server?

No. As of July 2026, NoiseAware has not published an MCP server and we found no community-maintained one. The Seam-wrapped server in this guide is the practical equivalent, and it inherits Seam's official NoiseAware integration rather than scraping anything.

Can Claude hear my guests through this?

No. According to NoiseAware, its sensors have no camera and no recording function of any kind; they measure decibel levels only, the way a thermometer measures temperature. What flows through this setup is numbers: readings, thresholds, and timestamped events. There is no audio anywhere in the pipeline.

Can Claude message guests when noise spikes?

Don't build that; it exists. NoiseAware's AutoResolve, through its Breezeway integration, sends up to two automatic SMS messages to the guest when noise stays above threshold (roughly 10 minutes apart), then alerts the manager if it continues. Use Claude for the analysis layer on top: patterns, threshold audits, and cross-referencing incidents with turnovers.

What if I run Minut instead of (or alongside) NoiseAware?

Minut's API posture is different, and it gets its own guide: Connect Minut to Claude. If you run both brands, the Seam route here is convenient because one workspace and one API key cover both.

What's the point of putting noise data in Claude at all?

The NoiseAware dashboard shows you alerts one at a time. Claude can reason across them: which listings trip thresholds repeatedly, whether quiet-hour settings match your actual incident times, which weekend cohorts correlate with damage. If you also document turnovers with photos, pairing noise incidents with post-stay condition evidence is exactly the kind of cross-referencing we built the RapidEye API for.

Browse the full series at Claude Guides for vacation rental operators.

Sources & references

  1. NoiseAware API (v1.1) reference https://noiseaware.readme.io/reference/noiseaware-api-v11
  2. NoiseAware API: Third Party Access https://noiseaware.readme.io/reference/third-party-access
  3. Seam docs: Get started with NoiseAware sensors https://docs.seam.co/latest/device-and-system-integration-guides/noiseaware-sensors/get-started-with-noiseaware-sensors
  4. Seam docs: NoiseAware sensors brand guide https://docs.seam.co/latest/device-and-system-integration-guides/noiseaware-sensors
  5. Seam API reference: List noise thresholds https://docs.seam.co/latest/api/noise_sensors/noise_thresholds/list
  6. Breezeway Help Center: AutoResolve by NoiseAware https://help.breezeway.io/en/articles/6968180-autoresolve-by-noiseaware
  7. NoiseAware: Debunking Myths About Noise Monitoring and Privacy https://noiseaware.com/blog/debunking-myths-about-noise-monitoring-and-privacy/
  8. Model Context Protocol TypeScript SDK https://github.com/modelcontextprotocol/typescript-sdk