MCP-Server - KI-Agenten benachrichtigen Sie oder rufen an

Verbinden Sie Claude Code, Codex, Cursor, ChatGPT und andere KI-Agenten mit dem MCP-Server von Echobell – für Push-Benachrichtigungen oder Anrufe.


Echobell betreibt einen offiziellen Server für das Model Context Protocol (MCP). Verbinden Sie ihn mit Ihrem KI-Agenten – Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude, ChatGPT oder jedem anderen MCP-Client –, und der Agent erhält ein Werkzeug namens notify, mit dem er über einen Ihrer Echobell-Kanäle eine Benachrichtigung verschickt.

Starten Sie ein großes Refactoring, einen Testlauf oder ein Deployment, gehen Sie weg und bitten Sie den Agenten, Ihnen Bescheid zu geben, wenn er fertig ist. Ihr Telefon vibriert, sobald die Arbeit erledigt ist, zeigt eine zeitkritische Warnung, wenn der Agent Sie braucht, oder klingelt wie ein Telefonanruf, wenn etwas gründlich schiefgeht.

So funktioniert es

  • Es ist ein entfernter MCP-Server unter https://mcp.echobell.one/mcp, der den Transport Streamable HTTP verwendet. Es gibt nichts zu installieren: kein npm-Paket, kein npx, keinen lokalen Prozess.
  • Jede MCP-URL gehört zu einem Kanal. Wenn der Agent notify aufruft, erhalten alle Abonnenten dieses Kanals die Benachrichtigung, jeweils mit dem Benachrichtigungstyp, den sie gewählt haben.
  • Die Zugangsdaten sind das Trigger-Token des Kanals – dasselbe Token, mit dem die Webhook-URL des Kanals endet. Der MCP-Server funktioniert wie der Webhook des Kanals, nur mit einem Werkzeug, das der Agent aufzurufen weiß.

Legen Sie für Ihre Agenten einen eigenen Kanal an, zum Beispiel „KI-Agenten“, und abonnieren Sie ihn mit dem Typ Anruf. Ihre Agenten können dann jede Stufe bis hin zu einem Anruf wählen, und Sie können den Kanal mit Teammitgliedern teilen, die dieselben Alarme erhalten möchten.

Ihre MCP-URL abrufen

In der App

  1. Öffnen Sie die Echobell-App und tippen Sie auf den Kanal, den Ihr Agent verwenden soll.
  2. Suchen Sie in den Kanaldetails den Abschnitt KI-Agent verbinden.
  3. Kopieren Sie die MCP-Server-URL oder das fertige Einrichtungs-Snippet für Ihren Agenten.

Aus der Webhook-URL

Die MCP-URL verwendet dasselbe Token wie die Webhook-URL des Kanals. Nehmen Sie das Token vom Ende der Webhook-URL und setzen Sie es hinter https://mcp.echobell.one/mcp/:

Webhook URL: https://hook.echobell.one/t/<channel-token>
MCP URL:     https://mcp.echobell.one/mcp/<channel-token>

Die MCP-URL enthält das Trigger-Token Ihres Kanals. Wer sie hat, kann den Abonnenten des Kanals Benachrichtigungen schicken. Behandeln Sie sie daher so vertraulich wie ein Passwort. Siehe Sicherheit.

Agent einrichten

Alle folgenden Snippets verwenden die URL-Variante. Ersetzen Sie <channel-token> durch das Trigger-Token Ihres Kanals, oder fügen Sie das Snippet aus der App ein, in dem es bereits eingetragen ist.

Claude Code

claude mcp add --transport http echobell https://mcp.echobell.one/mcp/<channel-token>

Fügen Sie --scope user hinzu, damit der Server in jedem Projekt verfügbar ist und nicht nur im aktuellen.

Codex

Fügen Sie Folgendes in ~/.codex/config.toml ein:

[mcp_servers.echobell]
url = "https://mcp.echobell.one/mcp/<channel-token>"

Cursor

Fügen Sie Folgendes in ~/.cursor/mcp.json ein, oder in .cursor/mcp.json innerhalb eines Projekts:

{
  "mcpServers": {
    "echobell": {
      "url": "https://mcp.echobell.one/mcp/<channel-token>"
    }
  }
}

VS Code (GitHub Copilot)

Fügen Sie Folgendes in .vscode/mcp.json in Ihrem Workspace ein und verwenden Sie das Werkzeug dann im Agent-Modus von Copilot Chat:

{
  "servers": {
    "echobell": {
      "type": "http",
      "url": "https://mcp.echobell.one/mcp/<channel-token>"
    }
  }
}

Wenn .vscode/mcp.json in Ihr Repository eingecheckt wird, verwenden Sie stattdessen die Header-Variante mit Eingabeaufforderung, damit das Token nicht in der Datei steht.

Windsurf

Fügen Sie Folgendes in ~/.codeium/windsurf/mcp_config.json ein:

{
  "mcpServers": {
    "echobell": {
      "serverUrl": "https://mcp.echobell.one/mcp/<channel-token>"
    }
  }
}

Gemini CLI

Fügen Sie Folgendes in ~/.gemini/settings.json ein:

{
  "mcpServers": {
    "echobell": {
      "httpUrl": "https://mcp.echobell.one/mcp/<channel-token>"
    }
  }
}

Claude Desktop und claude.ai

  1. Öffnen Sie Einstellungen → Konnektoren.
  2. Wählen Sie Benutzerdefinierten Konnektor hinzufügen.
  3. Geben Sie den Namen Echobell und die URL https://mcp.echobell.one/mcp/<channel-token> ein und fügen Sie den Konnektor hinzu.

Der Konnektor steht dann in Claude im Web und in der Desktop-App zur Verfügung.

ChatGPT

  1. Aktivieren Sie in den Einstellungen von ChatGPT den Entwicklermodus.
  2. Öffnen Sie Einstellungen → Konnektoren und wählen Sie Erstellen.
  3. Geben Sie die URL https://mcp.echobell.one/mcp/<channel-token> ein und stellen Sie die Authentifizierung auf Keine Authentifizierung – das Token in der URL ist die Zugangsberechtigung.

Andere MCP-Clients

Jeder Client, der den Transport Streamable HTTP unterstützt, funktioniert. Geben Sie ihm die URL https://mcp.echobell.one/mcp/<channel-token> oder verwenden Sie die Header-Variante unten.

Header-Variante

Statt das Token in die URL zu schreiben, können Sie es in einem Authorization-Header senden. Beide Varianten sind gleichwertig.

URL:            https://mcp.echobell.one/mcp
Authorization:  Bearer <channel-token>

Mit Claude Code:

claude mcp add --transport http echobell https://mcp.echobell.one/mcp \
  --header "Authorization: Bearer <channel-token>"

In VS Code hält eine Eingabeaufforderung das Token aus .vscode/mcp.json heraus, sodass Sie die Datei bedenkenlos einchecken können. VS Code fragt beim ersten Start des Servers nach dem Token und speichert es sicher:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "echobell-token",
      "description": "Echobell channel trigger token",
      "password": true
    }
  ],
  "servers": {
    "echobell": {
      "type": "http",
      "url": "https://mcp.echobell.one/mcp",
      "headers": {
        "Authorization": "Bearer ${input:echobell-token}"
      }
    }
  }
}

Das Werkzeug notify

Der Server stellt ein einziges Werkzeug bereit: notify. Ihr Agent entscheidet anhand Ihres Prompts, wie er es ausfüllt.

ArgumentTypErforderlichBeschreibung
titlestringJaTitel der Benachrichtigung.
bodystringNeinText der Benachrichtigung.
linkstring (URL)NeinEin Link, der geöffnet wird, wenn Sie auf die Benachrichtigung tippen, etwa ein Pull Request, ein Build-Log oder ein Dashboard.
urgencystringNeinnormal, time-sensitive oder calling. Weglassen, um die eigene Stufe jedes Abonnenten zu verwenden. Siehe Dringlichkeit.

Dringlichkeit

Jeder, der einen Kanal abonniert, wählt dafür in der App einen Benachrichtigungstyp: Normal, Zeitkritisch oder Anruf. Diese Wahl ist die höchste Stufe, mit der der Kanal ihn erreichen kann.

  • Lässt der Agent urgency weg, erhält jeder Abonnent die Stufe, die er gewählt hat.
  • Sendet der Agent urgency, kann er die Stufe eines Abonnenten nur senken, niemals anheben. Haben Sie mit dem Typ Anruf abonniert, kommt "urgency": "normal" als normale Benachrichtigung an. Haben Sie mit Normal abonniert, kommt auch "urgency": "calling" nur als normale Benachrichtigung an.

So deckt ein einziger Kanal alles ab. Abonnieren Sie ihn mit dem Typ Anruf und sagen Sie dem Agenten, dass er Routinemeldungen als normal schicken und calling nur verwenden soll, wenn etwas kaputt ist.

Anders als notificationType bei Webhook-Anfragen wirkt urgency auch bei Kanälen mit eigener Vorlage.

Anrufe erfordern Echobell Premium

Anruf-Benachrichtigungen sind eine Funktion von Echobell Premium. Fordert der Agent calling an, erhält ein Abonnent ohne Premium stattdessen eine zeitkritische Benachrichtigung – genau wie bei der App und bei Webhooks.

Ein Anruf pro Minute und Kanal

Ein Kanal ruft jeden Abonnenten höchstens einmal pro Minute an. Fordert der Agent innerhalb dieser Minute einen weiteren Anruf an – etwa weil er in einer Wiederholungsschleife feststeckt –, erhält der Abonnent stattdessen eine zeitkritische Benachrichtigung, die Fokusmodi trotzdem durchbricht. Webhook- und E-Mail-Auslöser folgen derselben Regel.

Der Agent erfährt von beiden Fällen. Das Ergebnis des Werkzeugs listet jede Herabstufung auf, sodass der Agent weiß, dass das Telefon nicht geklingelt hat, und Ihnen das sagen kann, statt anzunehmen, dass Sie angerufen wurden.

Was der Agent zurückbekommt

Jeder Aufruf von notify liefert dem Agenten eine kurze Textzusammenfassung sowie strukturierte Daten:

{
  "notificationTriggered": true,
  "reason": null,
  "requestedUrgency": "calling",
  "recipients": 1,
  "deliveredUrgency": { "normal": 0, "time-sensitive": 1, "calling": 0 },
  "fallbacks": [
    {
      "from": "calling",
      "to": "time-sensitive",
      "reason": "premium-required",
      "recipients": 1
    }
  ]
}
FeldBedeutung
notificationTriggeredtrue, wenn eine Benachrichtigung verschickt wurde.
reasonWarum nichts verschickt wurde: conditions-not-met (die Bedingungen des Kanals trafen nicht zu) oder no-subscribers (niemand hat den Kanal abonniert). null, wenn eine Benachrichtigung verschickt wurde.
requestedUrgencyDie vom Agenten angeforderte urgency, oder null, wenn er sie weggelassen hat.
recipientsWie viele Abonnenten benachrichtigt wurden.
deliveredUrgencyWie viele Abonnenten welche Stufe erhalten haben.
fallbacksAbonnenten, die eine niedrigere Stufe als angefordert erhalten haben, und warum: premium-required (Anrufe erfordern Premium), subscriber-setting (die eigene Stufe des Abonnenten für den Kanal ist niedriger) oder call-cooldown (der Kanal hat diesen Abonnenten innerhalb der letzten Minute bereits angerufen).

Kanäle mit und ohne eigene Vorlage

Der MCP-Server funktioniert mit beiden Arten von Kanälen:

  • Kanäle ohne Vorlage (der Standard) zeigen title und body genau so an, wie der Agent sie sendet.
  • Kanäle mit Vorlage (mit aktivierter Option Eigene Vorlage unter Erweiterte Einstellungen) erstellen die Benachrichtigung aus Ihren Vorlagen. title, body, link, externalLink und urgency stehen als Vorlagenvariablen zur Verfügung, und die Bedingungen des Kanals gelten weiterhin. Treffen die Bedingungen nicht zu, wird nichts verschickt, und der Agent erhält reason: "conditions-not-met".

Beispiel-Prompts

Sobald der Server verbunden ist, bitten Sie in normaler Sprache um Benachrichtigungen:

  • „Führe die komplette Testsuite aus und benachrichtige mich mit Echobell, wenn du fertig bist.“
  • „Refaktoriere das Zahlungsmodul. Schick mir eine zeitkritische Echobell-Warnung, wenn du eine Entscheidung von mir brauchst.“
  • „Deploye auf Staging. Ruf mich an, wenn das Deployment fehlschlägt, sonst schick eine normale Benachrichtigung mit der URL.“
  • „Wenn die Migration fertig ist, benachrichtige mich mit einer Zusammenfassung und einem Link zum Pull Request.“

Damit es zur Gewohnheit wird, ergänzen Sie die Anweisungsdatei Ihres Agenten (CLAUDE.md, AGENTS.md, .cursorrules usw.) um eine Zeile wie diese:

When a task takes longer than a few minutes, call the Echobell notify tool when it finishes.
Use urgency "calling" only when something is broken and needs me right away.

Sicherheit

  • Das Token ist die Zugangsberechtigung. Wer die MCP-URL (oder das Token) hat, kann den Abonnenten des Kanals Benachrichtigungen schicken. Damit lässt sich nichts lesen und nichts an Ihrem Konto ändern – das Einzige, was damit möglich ist, ist eine Benachrichtigung.
  • Halten Sie es aus geteilten Dateien heraus. Checken Sie keine Konfigurationsdatei ein, die die URL-Variante enthält. Verwenden Sie für Projektkonfigurationen die Header-Variante mit einer Eingabeaufforderung oder einer Umgebungsvariablen.
  • Entziehen Sie den Zugriff, indem Sie das Trigger-Token zurücksetzen. Öffnen Sie den Kanal in der App und setzen Sie sein Trigger-Token zurück. Die alte MCP-URL funktioniert sofort nicht mehr (Anfragen erhalten 401 Unauthorized), ebenso die alte Webhook-URL. Aktualisieren Sie Ihre Agenten und Webhook-Aufrufer mit dem neuen Token.

Limits und Fehler

  • Ratenbegrenzung: Jedes Token nimmt bis zu 120 MCP-Anfragen pro Minute an. MCP-Anfragen haben ein eigenes Kontingent, getrennt von den Webhook-Anfragen des Kanals.
  • 401 Unauthorized: Das Token fehlt, ist falsch oder wurde zurückgesetzt.

Verwandte Themen