omni-notify-mcp 1.1.3 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="assets/logo.svg" width="128" height="128" alt="omni-notify-mcp">
2
+ <img src="https://raw.githubusercontent.com/menih/notify-mcp/main/assets/logo.svg" width="128" height="128" alt="omni-notify-mcp">
3
3
  </p>
4
4
 
5
5
  <h1 align="center">omni-notify-mcp</h1>
@@ -19,7 +19,7 @@
19
19
  </p>
20
20
 
21
21
  <p align="center">
22
- <img src="assets/screenshots/main-ui.png" width="900" alt="omni-notify-mcp config UI — channels and policies side by side, with live activity log">
22
+ <img src="https://raw.githubusercontent.com/menih/notify-mcp/main/assets/screenshots/main-ui.png" width="900" alt="omni-notify-mcp config UI — channels and policies side by side, with live activity log">
23
23
  </p>
24
24
 
25
25
  ---
@@ -115,7 +115,7 @@ Cross-platform idle detection: Windows (PowerShell + `GetLastInputInfo`), macOS
115
115
  One page, dark theme, live activity log streaming over SSE, one-click test buttons per channel, secrets masked at rest. Plus a copy-paste help page that walks any AI client through registration in 30 seconds:
116
116
 
117
117
  <p align="center">
118
- <img src="assets/screenshots/help-page.png" width="800" alt="Help page — copy-paste snippets for Claude Code, Cursor, VS Code, Claude Desktop, Windsurf, Zed">
118
+ <img src="https://raw.githubusercontent.com/menih/notify-mcp/main/assets/screenshots/help-page.png" width="800" alt="Help page — copy-paste snippets for Claude Code, Cursor, VS Code, Claude Desktop, Windsurf, Zed">
119
119
  </p>
120
120
 
121
121
  ### Activity log
@@ -9,7 +9,7 @@ export async function sendDesktop(config, message) {
9
9
  if (wantSound && process.platform === "win32") {
10
10
  spawn("powershell", [
11
11
  "-NoProfile", "-Command",
12
- "[console]::beep(880,180); Start-Sleep -Milliseconds 60; [console]::beep(660,180)",
12
+ "Add-Type -AssemblyName System.Windows.Forms; [System.Media.SystemSounds]::Asterisk.Play(); Start-Sleep -Milliseconds 600",
13
13
  ], { windowsHide: true, stdio: "ignore" });
14
14
  }
15
15
  await new Promise((resolve, reject) => {
package/dist/ui/server.js CHANGED
@@ -150,15 +150,15 @@ app.post("/api/config", (req, res) => {
150
150
  // node-notifier's `sound: true` works reliably, no fallback needed.
151
151
  app.post("/api/test/sound", (_req, res) => {
152
152
  if (process.platform === "win32") {
153
- // Direct PowerShell beep bypasses the notification subsystem entirely.
154
- // Plays an 800Hz tone for 200ms through the system speakers. Cannot be
155
- // muted by per-app notification settings.
153
+ // Use System.Media.SystemSounds.Asteriskplays through the sound card
154
+ // (Windows notification sound), works on every machine. console::beep
155
+ // uses the PC speaker which modern hardware lacks.
156
156
  spawn("powershell", [
157
157
  "-NoProfile",
158
158
  "-Command",
159
- "[console]::beep(880,180); Start-Sleep -Milliseconds 60; [console]::beep(660,180)",
159
+ "Add-Type -AssemblyName System.Windows.Forms; [System.Media.SystemSounds]::Asterisk.Play(); Start-Sleep -Milliseconds 600",
160
160
  ], { windowsHide: true, stdio: "ignore" });
161
- res.json({ ok: true, message: "Beep sent (Windows console.beep)" });
161
+ res.json({ ok: true, message: "Sound played (System.Media)" });
162
162
  return;
163
163
  }
164
164
  notifier.notify({ title: "Claude Notify", message: "Sound test", sound: true, wait: false }, (err) => {
@@ -175,7 +175,7 @@ app.post("/api/test/desktop", (_req, res) => {
175
175
  if (wantSound && process.platform === "win32") {
176
176
  spawn("powershell", [
177
177
  "-NoProfile", "-Command",
178
- "[console]::beep(880,180); Start-Sleep -Milliseconds 60; [console]::beep(660,180)",
178
+ "Add-Type -AssemblyName System.Windows.Forms; [System.Media.SystemSounds]::Asterisk.Play(); Start-Sleep -Milliseconds 600",
179
179
  ], { windowsHide: true, stdio: "ignore" });
180
180
  }
181
181
  notifier.notify({
@@ -558,9 +558,13 @@ async function sendNotification(message, priority, client) {
558
558
  // Windows notification settings — fire a PowerShell beep alongside the
559
559
  // toast so the audible cue is reliable. macOS/Linux: trust the OS.
560
560
  if (wantSound && process.platform === "win32") {
561
+ // [console]::beep uses the PC speaker (motherboard buzzer), which
562
+ // modern laptops/desktops don't have — silent on most machines.
563
+ // SystemSounds.Asterisk plays through the actual sound card via
564
+ // the Windows notification sound, audible on every machine.
561
565
  spawn("powershell", [
562
566
  "-NoProfile", "-Command",
563
- "[console]::beep(880,180); Start-Sleep -Milliseconds 60; [console]::beep(660,180)",
567
+ "Add-Type -AssemblyName System.Windows.Forms; [System.Media.SystemSounds]::Asterisk.Play(); Start-Sleep -Milliseconds 600",
564
568
  ], { windowsHide: true, stdio: "ignore" });
565
569
  }
566
570
  const soundOpt = wantSound && process.platform !== "win32";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omni-notify-mcp",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "description": "An MCP server that lets AI agents (Claude, Cursor, etc.) reach you on any channel — desktop, Telegram, SMS, email — with two-way ask/reply, real-time inbox push, Do Not Disturb, idle gating, multi-session routing, and a one-page web UI for setup. Zero config code; configure once, agents call notify/ask.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -36,7 +36,7 @@
36
36
  "license": "MIT",
37
37
  "repository": {
38
38
  "type": "git",
39
- "url": "https://github.com/menih/omni-notify-mcp"
39
+ "url": "https://github.com/menih/notify-mcp"
40
40
  },
41
41
  "engines": {
42
42
  "node": ">=18"