omni-notify-mcp 1.3.5 → 1.3.6

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/dist/ui/server.js CHANGED
@@ -28,7 +28,7 @@ function defaultConfig() {
28
28
  whatsapp: { enabled: false, instanceId: "", apiToken: "", phone: "" },
29
29
  sms: { enabled: false, accountSid: "", authToken: "", from: "", to: "" },
30
30
  email: { enabled: false, to: "" },
31
- ntfy: { enabled: false, topic: "" },
31
+ ntfy: { enabled: false, topic: "", serverUrl: "" },
32
32
  discord: { enabled: false, webhookUrl: "", username: "Claude Notify" },
33
33
  slack: { enabled: false, webhookUrl: "" },
34
34
  teams: { enabled: false, webhookUrl: "" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omni-notify-mcp",
3
- "version": "1.3.5",
3
+ "version": "1.3.6",
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",
package/ui/public/app.js CHANGED
@@ -82,9 +82,8 @@ function populateForm() {
82
82
  const ntfy = config.ntfy ?? {};
83
83
  $("ntfy-enabled").checked = !!ntfy.enabled;
84
84
  $("ntfy-topic").value = ntfy.topic ?? "";
85
- const ntfyUrl = `${location.protocol}//${location.hostname}:${location.port || (location.protocol === 'https:' ? 443 : 80)}/ntfy`;
86
- const urlEl = document.getElementById("ntfy-server-url");
87
- if (urlEl) urlEl.textContent = ntfyUrl;
85
+ const defaultUrl = `${location.protocol}//${location.hostname}:${location.port || (location.protocol === 'https:' ? 443 : 80)}`;
86
+ $("ntfy-server-url").value = ntfy.serverUrl || defaultUrl;
88
87
 
89
88
  // Discord
90
89
  const dc = config.discord ?? {};
@@ -360,12 +359,12 @@ async function saveSms() {
360
359
  }
361
360
 
362
361
  async function saveNtfy() {
363
- await patch({ ntfy: { enabled: $("ntfy-enabled").checked, topic: $("ntfy-topic").value.trim() } });
362
+ await patch({ ntfy: { enabled: $("ntfy-enabled").checked, topic: $("ntfy-topic").value.trim(), serverUrl: $("ntfy-server-url").value.trim() } });
364
363
  clearDirty("ntfy");
365
364
  }
366
365
 
367
366
  function copyNtfyUrl() {
368
- const url = document.getElementById("ntfy-server-url")?.textContent ?? "";
367
+ const url = $("ntfy-server-url").value.trim();
369
368
  navigator.clipboard.writeText(url).then(() => toast("Server URL copied!", "ok")).catch(() => toast("Copy failed", "error"));
370
369
  }
371
370
  async function saveDiscord() {
@@ -235,12 +235,12 @@
235
235
  </ol>
236
236
  </details>
237
237
  <div class="fg">
238
- <label>Your ntfy server URL</label>
239
- <div style="display:flex;gap:6px;align-items:center">
240
- <code id="ntfy-server-url" style="flex:1;background:#1a1a2e;border:1px solid var(--border);border-radius:4px;padding:6px 10px;font-size:12px;color:#a5b4fc;cursor:pointer" onclick="copyNtfyUrl()" title="Click to copy">loading…</code>
238
+ <label>Server URL (for ntfy app)</label>
239
+ <div style="display:flex;gap:6px">
240
+ <input type="text" id="ntfy-server-url" placeholder="http://73.223.191.86:3737" oninput="markDirty('ntfy')" style="flex:1;font-family:monospace;font-size:12px">
241
241
  <button class="btn btn-sm btn-ghost" onclick="copyNtfyUrl()">Copy</button>
242
242
  </div>
243
- <span class="hint">Point the ntfy app at this URL notifications stay on your network.</span>
243
+ <span class="hint">Paste into the ntfy app under "Use another server". Use your public IP if accessing remotely.</span>
244
244
  </div>
245
245
  <div class="fg"><label>Topic</label><input type="text" id="ntfy-topic" placeholder="Claude_Alerts" oninput="markDirty('ntfy')"></div>
246
246
  </div>