notifyd

MCP-Server von rmzlb

Operate a self-hosted notifyd notification service: digest, jobs, retries, suppressions, projects and test sends.

Läuft lokal (Läuft auf deinem Rechner: Die Seite nennt den Installationsbefehl)Läuft mit dockerBraucht API-Schlüssel

notifyd installieren

Läuft auf deinem Rechner. Dein Client startet ihn mit diesem Befehl:

docker run -i --rm ghcr.io/rmzlb/notifyd:0.4.0

Braucht Docker auf deinem Rechner. Die Schritte unten zeigen, wo der Befehl in jedem Client hingehört.

  • DATABASE_URL geheim PostgreSQL connection string
  • JWT_SECRET geheim Secret for subscriber tokens
  • ADMIN_API_KEY geheim Operator key; also the Bearer token for /mcp
  • EMAIL_PROVIDER optional resend | cloudflare | smtp | agentmail | log
  • EMAIL_FROM optional Default sender address

Diesen Server teilen

Öffnet diese Seite, mit dem Installationsbefehl und den Einrichtungsschritten.

mcp.tc/i/notifyd

Über den Server

notifyd is a self-hosted notification service written in Rust that sends email, SMS, WhatsApp, push and in-app messages through one API, backed only by PostgreSQL. Its built-in MCP server lets an assistant act as the operator: read a ranked digest of findings, inspect and retry failed jobs, manage suppressions, update project settings and send test messages.

It runs as a Docker image (ghcr.io/rmzlb/notifyd) and serves a Streamable HTTP endpoint at /mcp on your own host. Requests need an Authorization Bearer header: the admin key gives full access, and a read-only key exposes only the read tools.

Was du damit machen kannst

  • Get a ranked digest of what needs attention, with actions
  • List and inspect jobs by project, channel, status or recipient
  • Retry or cancel stuck or wrong sends
  • List and update project sender identity, channels and send windows
  • Manage the suppression list with all or marketing scope
  • View sent, failed, bounced and opened metrics per template
  • Send test notifications on any channel

Tools

notifyd zeigt seine Tools nur Clients mit Schlüssel, deshalb können wir sie hier nicht auflisten.

Beispiel-Prompts

  • Run the notifyd digest and tell me what needs attention.

  • List failed jobs from the last 24 hours and retry the ones that are safe.

  • Add user@example.com to the marketing suppression list.

  • Send a test email from the myapp project to me@example.com.

Einrichtung

Jeder Client startet notifyd mit demselben Befehl auf deinem Rechner. Wähl deinen; die Seite merkt sich deine Wahl.

Claude Code

  1. Führe das in einem Terminal in deinem Projektordner aus:
claude mcp add --transport stdio notifyd --env "DATABASE_URL=<YOUR_DATABASE_URL>" --env "JWT_SECRET=<YOUR_JWT_SECRET>" --env "ADMIN_API_KEY=<YOUR_ADMIN_API_KEY>" -- docker run -i --rm ghcr.io/rmzlb/notifyd:0.4.0
  1. Starte Claude Code und tippe /mcp. notifyd sollte als verbunden angezeigt werden.

Ergänze --scope user, damit er in jedem Projekt verfügbar ist. Ersetze die Platzhalter durch deine eigenen Werte.

Claude Desktop

  1. Öffne Settings → Developer → Edit Config. Das öffnet claude_desktop_config.json. Füge hinzu:
claude_desktop_config.json
{
  "mcpServers": {
    "notifyd": {
      "command": "docker",
      "args": [
        "run",
        "-e",
        "DATABASE_URL",
        "-e",
        "JWT_SECRET",
        "-e",
        "ADMIN_API_KEY",
        "-i",
        "--rm",
        "ghcr.io/rmzlb/notifyd:0.4.0"
      ],
      "env": {
        "DATABASE_URL": "<YOUR_DATABASE_URL>",
        "JWT_SECRET": "<YOUR_JWT_SECRET>",
        "ADMIN_API_KEY": "<YOUR_ADMIN_API_KEY>"
      }
    }
  }
}
  1. Speichere die Datei und starte Claude Desktop neu. Ersetze die Platzhalter durch deine eigenen Werte.

Braucht Docker auf deinem Rechner. Die Datei liegt unter macOS in ~/Library/Application Support/Claude/ und unter Windows in %APPDATA%\Claude\.

Cursor

Oder trag ihn von Hand in ~/.cursor/mcp.json (alle Projekte) oder .cursor/mcp.json (dieses Projekt) ein:

mcp.json
{
  "mcpServers": {
    "notifyd": {
      "command": "docker",
      "args": [
        "run",
        "-e",
        "DATABASE_URL",
        "-e",
        "JWT_SECRET",
        "-e",
        "ADMIN_API_KEY",
        "-i",
        "--rm",
        "ghcr.io/rmzlb/notifyd:0.4.0"
      ],
      "env": {
        "DATABASE_URL": "<YOUR_DATABASE_URL>",
        "JWT_SECRET": "<YOUR_JWT_SECRET>",
        "ADMIN_API_KEY": "<YOUR_ADMIN_API_KEY>"
      }
    }
  }
}

Braucht Docker auf deinem Rechner. Ersetze die Platzhalter durch deine eigenen Werte.

VS Code

Füge ihn zu .vscode/mcp.json hinzu. VS Code fragt beim ersten Mal nach dem Secret und speichert es sicher:

.vscode/mcp.json
{
  "servers": {
    "notifyd": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-e",
        "DATABASE_URL",
        "-e",
        "JWT_SECRET",
        "-e",
        "ADMIN_API_KEY",
        "-i",
        "--rm",
        "ghcr.io/rmzlb/notifyd:0.4.0"
      ],
      "env": {
        "DATABASE_URL": "${input:database-url}",
        "JWT_SECRET": "${input:jwt-secret}",
        "ADMIN_API_KEY": "${input:admin-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "database-url",
      "description": "DATABASE_URL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "jwt-secret",
      "description": "JWT_SECRET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "admin-api-key",
      "description": "ADMIN_API_KEY",
      "password": true
    }
  ]
}

Braucht Docker auf deinem Rechner.

Devin Desktop

  1. Füge ihn zu ~/.config/devin/mcp_config.json (macOS und Linux) oder %APPDATA%\devin\mcp_config.json (Windows) hinzu:
mcp_config.json
{
  "mcpServers": {
    "notifyd": {
      "command": "docker",
      "args": [
        "run",
        "-e",
        "DATABASE_URL",
        "-e",
        "JWT_SECRET",
        "-e",
        "ADMIN_API_KEY",
        "-i",
        "--rm",
        "ghcr.io/rmzlb/notifyd:0.4.0"
      ],
      "env": {
        "DATABASE_URL": "<YOUR_DATABASE_URL>",
        "JWT_SECRET": "<YOUR_JWT_SECRET>",
        "ADMIN_API_KEY": "<YOUR_ADMIN_API_KEY>"
      }
    }
  }
}
  1. Aktualisiere die Liste der MCP-Server in Cascade. Ersetze die Platzhalter durch deine eigenen Werte.

Devin Desktop ist der neue Name von Windsurf.

Codex

codex mcp add notifyd --env "DATABASE_URL=<YOUR_DATABASE_URL>" --env "JWT_SECRET=<YOUR_JWT_SECRET>" --env "ADMIN_API_KEY=<YOUR_ADMIN_API_KEY>" -- docker run -i --rm ghcr.io/rmzlb/notifyd:0.4.0

Oder bearbeite ~/.codex/config.toml direkt:

config.toml
[mcp_servers.notifyd]
command = "docker"
args = ["run", "-i", "--rm", "ghcr.io/rmzlb/notifyd:0.4.0"]
env = { DATABASE_URL = "<YOUR_DATABASE_URL>", JWT_SECRET = "<YOUR_JWT_SECRET>", ADMIN_API_KEY = "<YOUR_ADMIN_API_KEY>" }

Braucht Docker auf deinem Rechner. Ersetze die Platzhalter durch deine eigenen Werte.

Gemini CLI

gemini mcp add -e "DATABASE_URL=<YOUR_DATABASE_URL>" -e "JWT_SECRET=<YOUR_JWT_SECRET>" -e "ADMIN_API_KEY=<YOUR_ADMIN_API_KEY>" notifyd docker -- run -i --rm ghcr.io/rmzlb/notifyd:0.4.0

Damit fügst du ihn dem aktuellen Projekt hinzu. Ergänze -s user, um ihn überall zu nutzen.

Jeder Client

Die meisten Clients, die lokale Server starten, akzeptieren diese Form:

{
  "mcpServers": {
    "notifyd": {
      "command": "docker",
      "args": [
        "run",
        "-e",
        "DATABASE_URL",
        "-e",
        "JWT_SECRET",
        "-e",
        "ADMIN_API_KEY",
        "-i",
        "--rm",
        "ghcr.io/rmzlb/notifyd:0.4.0"
      ],
      "env": {
        "DATABASE_URL": "<YOUR_DATABASE_URL>",
        "JWT_SECRET": "<YOUR_JWT_SECRET>",
        "ADMIN_API_KEY": "<YOUR_ADMIN_API_KEY>"
      }
    }
  }
}

Zed legt Server in seinen Einstellungen unter context_servers ab, mit denselben Feldern command, args und env.

Braucht Docker auf deinem Rechner. Ersetze die Platzhalter durch deine eigenen Werte.

Häufige Fragen

Kann ich mcp.tc/i/notifyd in meinen MCP-Client einfügen?

Nein. notifyd läuft auf deinem eigenen Rechner und wird von deinem Client gestartet, hat also keine Webadresse, mit der man sich verbinden könnte. Der Quick-Link ist die Seite zum Teilen; der Installationsbefehl lautet docker run -i --rm ghcr.io/rmzlb/notifyd:0.4.0.

Braucht notifyd einen API-Schlüssel?

Ja. Er liest DATABASE_URL, JWT_SECRET und ADMIN_API_KEY aus seiner Umgebung, und DATABASE_URL, JWT_SECRET und ADMIN_API_KEY sind geheim. Trag die Werte in die Konfiguration deines Clients auf deinem eigenen Rechner ein, nie in eine geteilte Datei.

Ist notifyd ein Remote- oder ein lokaler Server?

Lokal. Dein Client startet ihn als Prozess auf deinem Rechner, mit docker run -i --rm ghcr.io/rmzlb/notifyd:0.4.0, was Docker braucht.

Was kann notifyd?

Du kannst damit: Get a ranked digest of what needs attention, with actions, List and inspect jobs by project, channel, status or recipient und Retry or cancel stuck or wrong sends.

Welche Clients können ihn nutzen?

Jeder Client, der lokale Server startet: Claude Code, Claude Desktop, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed und andere. claude.ai und ChatGPT verbinden sich nur mit Remote-Servern.

Wer hat diese Seite geschrieben?

Der Roboter von mcp.tc hat die öffentlichen Metadaten von notifyd (seine Paket- und Repository-Seiten) gelesen, und ein KI-Modell hat daraus den Text entworfen. Ein Mensch prüft alles, was die Prüfungen nicht bestätigen können. Der Text kann trotzdem falsch sein; wenn dir ein Fehler auffällt, nutze Eintrag melden auf dieser Seite.

Einbinden

Zeig notifyd in einem README oder auf deiner Website. Jede Einbindung verlinkt auf diese Seite, nutzt den Installationsbefehl des Servers und setzt keine Cookies. So funktionieren Einbindungen

README-Badge

Badge-Vorschau, hellBadge-Vorschau, dunkel
Markdown
[![notifyd on mcp.tc](https://mcp.tc/i/notifyd/badge.svg)](https://mcp.tc/i/notifyd)
HTML
<a href="https://mcp.tc/i/notifyd"><img src="https://mcp.tc/i/notifyd/badge.svg" alt="notifyd on mcp.tc" height="20"></a>

Es folgt dem hellen oder dunklen Modus der Lesenden. Hänge ?theme=light oder ?theme=dark an, um ihn festzulegen, oder ?style=compact, um das Zeichen ohne Schriftzug zu zeigen.

Website-Karte

HTML
<script src="https://mcp.tc/w/notifyd.js" async></script>

Die Karte erscheint dort, wo das Tag steht. Füge dem Tag data-theme="dark" oder data-size="compact" hinzu, um sie zu ändern. Die Datei enthält alles, was sie braucht, stellt also keine weiteren Anfragen und setzt keine Cookies.

iframe

HTML
<iframe src="https://mcp.tc/embed/notifyd" title="notifyd on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>

Nutze es auf Seiten, die keine Skripte erlauben. Hänge ?theme=light oder ?theme=dark an die Adresse an, um die Farben festzulegen.

JSON

Der Eintrag als Daten für deine eigenen Seiten und Tools: Name, Kurzbeschreibung, Installationsbefehl, Tools und die „Add to“-Links. Jede Website kann ihn lesen (CORS ist offen).

https://mcp.tc/i/notifyd.json

Was jedes Feld bedeutet

mcp.tc ist nicht mit rmzlb verbunden. Diese Seite entstand aus den öffentlichen Metadaten von notifyd, zuletzt geprüft am 4. Okt. 2026, und ein KI-Modell hat die Beschreibung geschrieben, sie kann also Fehler enthalten. Namen und Marken gehören ihren Inhabern. Stimmt etwas nicht? Eintrag melden.