NTFY MCP Server

Integrations

  • Enables sending notifications to any device with ntfy integration, supporting rich message formatting with titles, tags, priorities, action buttons, and attachments for real-time notifications to phones, desktops, and other devices.

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

Ü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.

┌───────────┐ ┌───────────┐ ┌───────────┐ ┌─────────┐ │ LLM Agent │ ────▶│ Ntfy MCP │ ────▶│ Ntfy │ ────▶│ Your │ │ (Claude) │ │ Server │ │ Service │ │ Devices │ └───────────┘ └───────────┘ └───────────┘ └─────────┘

Merkmale

  • MCP-Serverimplementierung: Erstellt mit @modelcontextprotocol/sdk fü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 winston und winston-daily-rotate-file für detaillierte und rotierende Protokolle.
  • Konfigurationsverwaltung: Verwendet dotenv fü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

  1. Voraussetzungen:
    • Node.js (v16+)
    • npm oder yarn
    • Ein MCP-kompatibler Client (Claude Desktop, Cline usw.)
  2. 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 start
  3. Zu den MCP-Client-Einstellungen hinzufügen: Fügen Sie den Server zu Ihrer MCP-Client-Einstellungsdatei hinzu (siehe Konfiguration ).
  4. Verwenden Sie das Tool: Sobald die Verbindung hergestellt ist, können Sie das Tool send_ntfy verwenden, um Benachrichtigungen zu senden.

Installation

Option 1: NPM-Paket (empfohlen)

  1. Installieren Sie das Paket global:
    npm install -g ntfy-mcp-server
    Dadurch wird der Server global installiert und als Befehlszeilentool verfügbar gemacht.
  2. Oder installieren Sie es lokal in Ihrem Projekt:
    npm install ntfy-mcp-server
    Bei lokaler Installation können Sie es über npx oder vom Knoten aus ausführen.

Option 2: Aus der Quelle

  1. Klonen Sie das Repository:
    git clone https://github.com/cyanheads/ntfy-mcp-server.git cd ntfy-mcp-server
  2. Installieren Sie Abhängigkeiten:
    npm install
  3. Erstellen Sie das Projekt:
    npm run build

Konfiguration

Umgebungsvariablen

Erstellen Sie eine .env Datei im Projektstamm basierend auf .env.example :

# Ntfy Configuration NTFY_BASE_URL=https://ntfy.sh # Optional: Base URL of your ntfy instance NTFY_DEFAULT_TOPIC=your_default_topic # Optional: Default topic if none specified in requests # Application Configuration LOG_LEVEL=info # Optional: Logging level (debug, info, warn, error) NODE_ENV=development # Optional: Environment (development, production)

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:
{ "mcpServers": { "ntfy": { "command": "ntfy-mcp-server", "env": { "NTFY_BASE_URL": "https://ntfy.sh", "NTFY_DEFAULT_TOPIC": "your_default_topic", "LOG_LEVEL": "info", "NODE_ENV": "production" } } } }
Bei Installation aus der Quelle:
{ "mcpServers": { "ntfy": { "command": "node", "args": ["/path/to/ntfy-mcp-server/dist/index.js"], "env": { "NTFY_BASE_URL": "https://ntfy.sh", "NTFY_DEFAULT_TOPIC": "your_default_topic", "LOG_LEVEL": "info", "NODE_ENV": "production" } } } }
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:
{ "mcpServers": { "ntfy": { "command": "ntfy-mcp-server", "env": { "NTFY_BASE_URL": "https://ntfy.sh", "NTFY_DEFAULT_TOPIC": "your_default_topic", "LOG_LEVEL": "info", "NODE_ENV": "production" } } } }
Bei Installation aus der Quelle:
{ "mcpServers": { "ntfy": { "command": "node", "args": ["/path/to/ntfy-mcp-server/dist/index.js"], "env": { "NTFY_BASE_URL": "https://ntfy.sh", "NTFY_DEFAULT_TOPIC": "your_default_topic", "LOG_LEVEL": "info", "NODE_ENV": "production" } } } }

Ersetzen Sie bei der Quellinstallation /path/to/ntfy-mcp-server/dist/index.js durch den tatsächlichen absoluten Pfad zur erstellten Serverdatei. Passen Sie env entsprechend Ihrem Setup an.

Ntfy-Einrichtung

  1. Installieren Sie die ntfy-App auf Ihren Geräten von ntfy.sh oder den App Stores
  2. Abonnieren Sie Ihr Thema in der App
  3. Verwenden Sie dasselbe Thema in Ihrer MCP-Serverkonfiguration

Projektstruktur

. ├── .env.example # Example environment variables ├── .gitignore # Git ignore patterns ├── LICENSE # Project license (Apache-2.0) ├── package.json # Project metadata and dependencies ├── tsconfig.json # TypeScript compiler configuration ├── docs/ │ └── tree.md # Auto-generated directory structure ├── logs/ # Runtime logs (created automatically) ├── scripts/ # Utility scripts │ ├── clean.ts # Cleans build artifacts and logs │ └── tree.ts # Generates the docs/tree.md file └── src/ # Source code ├── index.ts # Main server entry point ├── config/ # Configuration loading ├── mcp-server/ # MCP server logic, tools, and resources │ ├── resources/ # MCP resource implementations │ ├── tools/ # MCP tool implementations │ └── utils/ # MCP-specific utilities ├── services/ # External service integrations (ntfy) ├── types-global/ # Global type definitions └── utils/ # General utility functions

Werkzeuge

send_ntfy

Sendet eine Benachrichtigungsnachricht über den ntfy-Dienst.

Hauptargumente:
ParameterTypErforderlichBeschreibung
topicSchnurJaDas NTFY-Thema, in dem veröffentlicht werden soll.
messageSchnurJaDer Hauptinhalt der Benachrichtigung (max. 4096 Bytes).
titleSchnurNEINBenachrichtigungstitel (max. 250 Bytes).
tagsZeichenfolge[]NEINEmojis oder Schlüsselwörter zur Kategorisierung (z. B. ["warning", "robot"] ). Maximal 5.
priorityganze ZahlNEINNachrichtenpriorität: 1=min, 2=niedrig, 3=Standard, 4=hoch, 5=max.
clickSchnurNEINURL, die geöffnet werden soll, wenn auf die Benachrichtigung geklickt wird.
actionsArrayNEINAktionsschaltflächen (Anzeigen, HTTP, Senden). Max. 3.
attachmentObjektNEINURL und Name eines Anhangs.
emailSchnurNEINE-Mail-Adresse, an die die Benachrichtigung weitergeleitet werden soll.
delaySchnurNEINLieferverzögerung (z. B. 30m ., 1h ., tomorrow ).
cacheSchnurNEINCache-Dauer (z. B. 10m , 1h , 1d d).
firebaseSchnurNEINFirebase Cloud Messaging (FCM)-Thema, an das weitergeleitet werden soll.
idSchnurNEINEindeutige ID für die Nachricht.
expiresSchnurNEINAblauf der Nachricht (z. B. 10m ., 1h , 1d ).
markdownBoolescher WertNEINAuf true setzen, um die Markdown-Formatierung in der Nachricht zu aktivieren.
baseUrlSchnurNEINÜberschreiben Sie die Standard-NTFY-Server-URL für diese Anforderung.
Anwendungsbeispiel:
// Basic notification { "topic": "alerts", "message": "The task has completed successfully." } // Advanced notification { "topic": "alerts", "title": "System Alert", "message": "CPU usage has exceeded 90% for 5 minutes.", "tags": ["warning", "computer"], "priority": 4, "click": "https://server-dashboard.example.com", "actions": [ { "id": "view", "label": "View Details", "action": "view", "url": "https://server-dashboard.example.com/cpu" }, { "id": "restart", "label": "Restart Service", "action": "http", "url": "https://api.example.com/restart-service", "method": "POST", "headers": { "Authorization": "Bearer token123" } } ], "markdown": true }
Beispielantwort:
{ "success": true, "id": "5ZFY362156Sa", "topic": "ATLAS", "time": 1743064235, "expires": 1743496235, "message": "This is a test message from the README verification process", "title": "README Testing" }

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

  1. Benachrichtigungen zu lang laufenden Aufgaben – Lassen Sie sich benachrichtigen, wenn Aufgaben wie Datenbanksicherungen, Codegenerierung oder Datenverarbeitung abgeschlossen sind.
  2. Geplante Erinnerungen – Legen Sie verzögerte Benachrichtigungen für zukünftige Ereignisse oder Erinnerungen fest.
  3. Warnsysteme – Richten Sie kritische Warnmeldungen für Überwachungssysteme oder wichtige Ereignisse ein.
  4. Mobile Benachrichtigungen von LLMs – Erlauben Sie LLMs, Benachrichtigungen direkt an Ihr Telefon zu senden.
  5. Mehrstufige Prozessaktualisierungen – Erhalten Sie Aktualisierungen, wenn verschiedene Phasen eines komplexen Prozesses abgeschlossen sind.

Anwendungsbeispiele

Grundlegende Benachrichtigung
<use_mcp_tool> <server_name>ntfy-mcp-server</server_name> <tool_name>send_ntfy</tool_name> <arguments> { "topic": "updates", "title": "Task Completed", "message": "Your requested data analysis has finished", "tags": ["check"] } </arguments> </use_mcp_tool>
Umfangreiche Benachrichtigungen mit Aktionen
<use_mcp_tool> <server_name>ntfy-mcp-server</server_name> <tool_name>send_ntfy</tool_name> <arguments> { "topic": "alerts", "title": "Critical Error Detected", "message": "The application has encountered a critical error.\n\n**Error Code**: E123\n\n**Details**: Database connection failed", "tags": ["warning", "skull"], "priority": 5, "actions": [ { "id": "view", "label": "View Logs", "action": "view", "url": "https://logs.example.com" }, { "id": "restart", "label": "Restart Service", "action": "http", "url": "https://api.example.com/restart", "method": "POST" } ], "markdown": true } </arguments> </use_mcp_tool>

Verfügbare Skripte

  • npm run build : Kompiliert den TypeScript-Quellcode im Verzeichnis dist/ in JavaScript.
  • npm run clean : Entfernt das Verzeichnis dist/ und bereinigt den Inhalt des Verzeichnisses logs/ .
  • npm run rebuild : Läuft clean und build dann.
  • npm run tree : Generiert eine Verzeichnisbaumdarstellung in docs/tree.md .
  • npm start : Führt den kompilierten Server mithilfe von Node.js aus dem Verzeichnis dist/ 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.

  1. Forken Sie das Repository.
  2. Erstellen Sie einen Feature-Zweig ( git checkout -b feature/your-feature ).
  3. Übernehmen Sie Ihre Änderungen ( git commit -m 'Add some feature' ).
  4. Pushen Sie zum Zweig ( git push origin feature/your-feature ).
  5. 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

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Ein Model Context Protocol-Server, der es KI-Systemen ermöglicht, über den ntfy-Publish/Subscribe-Dienst Echtzeitbenachrichtigungen an Telefone, Desktops und andere Geräte zu senden.

  1. Inhaltsverzeichnis
    1. Überblick
      1. Merkmale
        1. Schnellstart
          1. Installation
            1. Option 1: NPM-Paket (empfohlen)
            2. Option 2: Aus der Quelle
          2. Konfiguration
            1. Umgebungsvariablen
            2. MCP-Client-Einstellungen
            3. Ntfy-Einrichtung
          3. Projektstruktur
            1. Werkzeuge
              1. send_ntfy
            2. Ressourcen
              1. Direkte Ressourcen
              2. Ressourcenvorlagen
            3. Anwendungsfälle
              1. Anwendungsbeispiele
            4. Verfügbare Skripte
              1. Beitragen
                1. Bewährte Methoden für die Entwicklung
              2. Lizenz
                1. Danksagung

                  Related MCP Servers

                  • -
                    security
                    A
                    license
                    -
                    quality
                    A Model Context Protocol implementation that enables AI agents to send notifications through Pushover.net, supporting message customization with various parameters like priority, sound, and URL.
                    Last updated -
                    31
                    7
                    TypeScript
                    MIT License
                  • -
                    security
                    F
                    license
                    -
                    quality
                    A versatile Model Context Protocol server that enables AI assistants to manage calendars, track tasks, handle emails, search the web, and control smart home devices.
                    Last updated -
                    2
                    Python
                    • Apple
                    • Linux
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A Model Context Protocol service that sends desktop notifications and alert sounds when AI agent tasks are completed, integrating with various LLM clients like Claude Desktop and Cursor.
                    Last updated -
                    13
                    Python
                    MIT License
                    • Apple
                    • Linux
                  • -
                    security
                    F
                    license
                    -
                    quality
                    A demonstration implementation of the Model Context Protocol server that facilitates communication between AI models and external tools while maintaining context awareness.
                    Last updated -
                    Python
                    • Linux
                    • Apple

                  View all related MCP servers

                  ID: gutbdu8m1c