Ntfy MCP-Server
Ein MCP-Server (Model Context Protocol) für die Interaktion mit dem ntfy -Push-Benachrichtigungsdienst. Er ermöglicht LLMs und KI-Agenten, Benachrichtigungen mit umfangreichen Anpassungsmöglichkeiten an Ihre Geräte zu senden.
Inhaltsverzeichnis
Related MCP server: ntfy-mcp
Überblick
Dieser Server implementiert das Model Context Protocol (MCP) und ermöglicht so die standardisierte Kommunikation zwischen LLMs und externen Systemen. Insbesondere stellt er eine Schnittstelle zum ntfy-Push-Benachrichtigungsdienst bereit.
Ntfy ist ein einfacher HTTP-basierter Pub-Sub-Benachrichtigungsdienst, mit dem Sie Benachrichtigungen über einfache HTTP-Anfragen an Ihr Smartphone oder Ihren Desktop senden können. Mit diesem MCP-Server können LLM-Agenten wie Claude Ihnen Benachrichtigungen über ntfy senden, ohne direkten HTTP-Zugriff zu benötigen.
Merkmale
MCP-Serverimplementierung: Erstellt mit
@modelcontextprotocol/sdkfür nahtlose Integration mit LLM-Agenten.Ntfy-Integration: Bietet ein Tool (
send_ntfy) zum Senden von Benachrichtigungen mit Unterstützung für:Nachrichtenpriorisierung (1-5 Stufen)
Emoji-Tags
Anklickbare Aktionen und Schaltflächen
Dateianhänge
Verspätete Lieferung
Markdown-Formatierung
Ressourcenfreigabe: Macht das konfigurierte Standard-NTFY-Thema als MCP-Ressource verfügbar.
TypeScript: Moderne, typsichere Codebasis mit umfassenden Typdefinitionen.
Strukturierte Protokollierung: Verwendet
winstonundwinston-daily-rotate-filefür detaillierte und rotierende Protokolle.Konfigurationsverwaltung: Verwendet
dotenvfür eine einfache umgebungsbasierte Konfiguration.Dienstprogrammskripte: Enthält Skripte zum Bereinigen von Build-Artefakten und zum Generieren einer Verzeichnisstrukturdokumentation.
Fehlerbehandlung und Sicherheit: Implementiert eine robuste Fehlerbehandlung, Eingabebereinigung (
sanitize-html) und Sicherheitsfilter (xss-filters).
Schnellstart
Voraussetzungen:
Node.js (v16+)
npm oder yarn
Ein MCP-kompatibler Client (Claude Desktop, Cline usw.)
Installieren und ausführen:
# Option 1: Install via npm npm install -g ntfy-mcp-server # Option 2: Clone repository and build git clone https://github.com/cyanheads/ntfy-mcp-server.git cd ntfy-mcp-server npm install npm run build # Create .env file (optional but recommended) cp .env.example .env # Edit .env to set NTFY_DEFAULT_TOPIC # Start the server npm startZu den MCP-Client-Einstellungen hinzufügen: Fügen Sie den Server zu Ihrer MCP-Client-Einstellungsdatei hinzu (siehe Konfiguration ).
Verwenden Sie das Tool: Sobald die Verbindung hergestellt ist, können Sie das Tool
send_ntfyverwenden, um Benachrichtigungen zu senden.
Installation
Option 1: NPM-Paket (empfohlen)
Installieren Sie das Paket global:
npm install -g ntfy-mcp-serverDadurch wird der Server global installiert und als Befehlszeilentool verfügbar gemacht.
Oder installieren Sie es lokal in Ihrem Projekt:
npm install ntfy-mcp-serverBei lokaler Installation können Sie es über npx oder vom Knoten aus ausführen.
Option 2: Aus der Quelle
Klonen Sie das Repository:
git clone https://github.com/cyanheads/ntfy-mcp-server.git cd ntfy-mcp-serverInstallieren Sie Abhängigkeiten:
npm installErstellen Sie das Projekt:
npm run build
Konfiguration
Umgebungsvariablen
Erstellen Sie eine .env Datei im Projektstamm basierend auf .env.example :
MCP-Client-Einstellungen
Für die Cline VSCode-Erweiterung
Fügen Sie Ihrer Cline MCP-Einstellungsdatei (unter macOS normalerweise unter ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json ) die folgende Konfiguration hinzu:
Bei globaler Installation:
Bei Installation aus der Quelle:
Für Claude Desktop App
Fügen Sie Ihrer Claude Desktop-Konfigurationsdatei die folgende Konfiguration hinzu (unter macOS normalerweise unter ~/Library/Application Support/Claude/claude_desktop_config.json ):
Bei globaler Installation:
Bei Installation aus der Quelle:
Ersetzen Sie bei der Quellinstallation Passen Sie
Ntfy-Einrichtung
Installieren Sie die ntfy-App auf Ihren Geräten von ntfy.sh oder den App Stores
Abonnieren Sie Ihr Thema in der App
Verwenden Sie dasselbe Thema in Ihrer MCP-Serverkonfiguration
Projektstruktur
Werkzeuge
send_ntfy
Sendet eine Benachrichtigungsnachricht über den ntfy-Dienst.
Hauptargumente:
Parameter | Typ | Erforderlich | Beschreibung |
| Schnur | Ja | Das NTFY-Thema, in dem veröffentlicht werden soll. |
| Schnur | Ja | Der Hauptinhalt der Benachrichtigung (max. 4096 Bytes). |
| Schnur | NEIN | Benachrichtigungstitel (max. 250 Bytes). |
| Zeichenfolge[] | NEIN | Emojis oder Schlüsselwörter zur Kategorisierung (z. B.
). Maximal 5. |
| ganze Zahl | NEIN | Nachrichtenpriorität: 1=min, 2=niedrig, 3=Standard, 4=hoch, 5=max. |
| Schnur | NEIN | URL, die geöffnet werden soll, wenn auf die Benachrichtigung geklickt wird. |
| Array | NEIN | Aktionsschaltflächen (Anzeigen, HTTP, Senden). Max. 3. |
| Objekt | NEIN | URL und Name eines Anhangs. |
| Schnur | NEIN | E-Mail-Adresse, an die die Benachrichtigung weitergeleitet werden soll. |
| Schnur | NEIN | Lieferverzögerung (z. B.
.,
.,
). |
| Schnur | NEIN | Cache-Dauer (z. B.
,
,
d). |
| Schnur | NEIN | Firebase Cloud Messaging (FCM)-Thema, an das weitergeleitet werden soll. |
| Schnur | NEIN | Eindeutige ID für die Nachricht. |
| Schnur | NEIN | Ablauf der Nachricht (z. B.
.,
,
). |
| Boolescher Wert | NEIN | Auf
setzen, um die Markdown-Formatierung in der Nachricht zu aktivieren. |
| Schnur | NEIN | Überschreiben Sie die Standard-NTFY-Server-URL für diese Anforderung. |
Anwendungsbeispiel:
Beispielantwort:
Ressourcen
Direkte Ressourcen
ntfy://default
Beschreibung: Gibt das in den Umgebungsvariablen des Servers konfigurierte Standard-NTFY-Thema zurück (
NTFY_DEFAULT_TOPIC).Verwendung: Nützlich für Clients, um das Hauptthema zu entdecken, ohne dass eine vorherige Konfiguration erforderlich ist.
Beispiel: Ein LLM-Agent kann auf diese Ressource zugreifen, um beim Senden von Benachrichtigungen automatisch das Standardthema zu verwenden.
Beispielantwort:
{ "defaultTopic": "ATLAS", "timestamp": "2025-03-27T08:30:25.619Z", "requestUri": "ntfy://default", "requestId": "0da963d0-30e0-4dbc-bb77-4bf2dee14484" }
Ressourcenvorlagen
ntfy://{topic}
Beschreibung: Gibt Informationen zu einem bestimmten NTFY-Thema zurück.
Parameter:
topic– Der Name des NTFY-Themas.Verwendung: Zum Abfragen von Informationen zu anderen Themen als den Standardthemen.
Beispielantwort:
{ "topic": "ATLAS", "timestamp": "2025-03-27T08:30:30.038Z", "requestUri": "ntfy://ATLAS", "requestId": "31baf1df-278f-4fdb-860d-019f156a72b0" }
Anwendungsfälle
Benachrichtigungen zu lang laufenden Aufgaben – Lassen Sie sich benachrichtigen, wenn Aufgaben wie Datenbanksicherungen, Codegenerierung oder Datenverarbeitung abgeschlossen sind.
Geplante Erinnerungen – Legen Sie verzögerte Benachrichtigungen für zukünftige Ereignisse oder Erinnerungen fest.
Warnsysteme – Richten Sie kritische Warnmeldungen für Überwachungssysteme oder wichtige Ereignisse ein.
Mobile Benachrichtigungen von LLMs – Erlauben Sie LLMs, Benachrichtigungen direkt an Ihr Telefon zu senden.
Mehrstufige Prozessaktualisierungen – Erhalten Sie Aktualisierungen, wenn verschiedene Phasen eines komplexen Prozesses abgeschlossen sind.
Anwendungsbeispiele
Grundlegende Benachrichtigung
Umfangreiche Benachrichtigungen mit Aktionen
Verfügbare Skripte
npm run build: Kompiliert den TypeScript-Quellcode im Verzeichnisdist/in JavaScript.npm run clean: Entfernt das Verzeichnisdist/und bereinigt den Inhalt des Verzeichnisseslogs/.npm run rebuild: Läuftcleanundbuilddann.npm run tree: Generiert eine Verzeichnisbaumdarstellung indocs/tree.md.npm start: Führt den kompilierten Server mithilfe von Node.js aus dem Verzeichnisdist/aus.npm run watch: Durchsucht die kombinierte Protokolldatei (logs/combined.log) zur Echtzeitüberwachung.
Beitragen
Beiträge sind willkommen! Senden Sie gerne Pull Requests oder offene Probleme, um das Projekt zu verbessern.
Forken Sie das Repository.
Erstellen Sie einen Feature-Zweig (
git checkout -b feature/your-feature).Übernehmen Sie Ihre Änderungen (
git commit -m 'Add some feature').Pushen Sie zum Zweig (
git push origin feature/your-feature).Erstellen Sie eine neue Pull-Anfrage.
Erstellen Sie bei Fehlern und Funktionsanfragen bitte ein Problem im Repository.
Bewährte Methoden für die Entwicklung
Befolgen Sie die Best Practices von TypeScript und achten Sie auf eine korrekte Typisierung
Schreiben Sie Tests für neue Funktionen
Halten Sie Abhängigkeiten auf dem neuesten Stand
Befolgen Sie den vorhandenen Codestil und die vorhandenen Muster
Lizenz
Dieses Projekt ist unter der Apache-2.0-Lizenz lizenziert. Weitere Informationen finden Sie in der Datei LICENSE .
Danksagung
ntfy.sh zur Bereitstellung des Benachrichtigungsdienstes
Model Context Protocol zur Ermöglichung von LLM-zu-Tool-Verbindungen
Alle Mitwirkenden und Benutzer dieses Projekts