Dein Agent kann Webhooks lesen. Senden kann er sie auch.
Einen Assistenten an Webhooks zu hängen heißt meistens: Events konsumieren, die andere aussenden. Hook0 dreht die Richtung um. Ein MCP-Server, mit dem Claude, Cursor oder Windsurf die Webhooks bedienen, die dein eigenes Produkt sendet: Event-Typen anlegen, Subscriptions einrichten, Events auslösen, Fehlgeschlagenes erneut senden.
100 Events/Tag kostenlos. Ohne Kreditkarte. Der MCP-Server läuft auf deiner Maschine.
Kurz gefasst
Der MCP-Server von Hook0 ist ein lokaler Prozess, der dein Hook0-Konto einem MCP-fähigen Assistenten als 17 Werkzeuge zugänglich macht. Neun lesen: Applications, Event-Typen, Subscriptions, Events und Zustellversuche. Acht schreiben: Event-Typ anlegen, Subscription einrichten, Event auslösen, fehlgeschlagene Zustellung erneut senden.
Das Wichtigste
- Installation
cargo install hook0-mcp- Werkzeuge
- 17 (9 lesend, 8 schreibend)
- Clients
- Claude Desktop, Cursor, Windsurf, Cline und jeder MCP-Client
- Transport
- stdio als Standard, SSE im Dienstbetrieb
- Ziel
- Hook0 Cloud oder deine Instanz über
HOOK0_API_URL - Einschränken
HOOK0_READ_ONLY=trueplus abgeschwächtes Service-Token- Lizenz
- Quelloffen (SSPL-1.0), ohne Open-Core-Rückhalt
Webhooks und Agenten zeigen in zwei Richtungen
Beides wird oft als ein Thema verhandelt. Es ist nicht dasselbe Problem, und dasselbe Werkzeug löst es nicht.
Ein Agent, der Webhooks empfängt
In Stripe, GitHub oder einem CRM passiert etwas, und ein Agent soll darauf reagieren. Die Arbeit ist eingehend: ein öffentlicher Endpoint oder ein Tunnel, Signaturprüfung, Deduplizierung, und denselben Agentenlauf nicht zweimal starten. Für diese Richtung gibt es reichlich Werkzeuge.
Ein Agent, der bedient, was du sendest
Hier sendest du. Deine Kunden abonnieren order.completed und erwarten, dass es ankommt. Die Arbeit ist ausgehend: Event-Typen anlegen, Subscriptions einrichten, nachlesen, warum ein Versuch scheiterte, ihn erneut senden, sobald der Empfänger repariert ist. Genau diese Seite legt der MCP-Server von Hook0 deinem Assistenten offen.
Wenn du ein Produkt betreibst, das andere Systeme abonnieren, kostet dich die zweite Richtung die Support-Tickets.
Zwei Protokolle, zwei Ebenen
Verglichen werden sie, weil beide Events transportieren. Sie sitzen auf verschiedenen Ebenen, und ein tragfähiges Setup nutzt beide.
- Ein Webhook
- Eine HTTP-Anfrage, die dein Produkt an eine vom Kunden hinterlegte URL sendet, wenn bei dir etwas passiert. Einseitig, von Maschine zu Maschine, signiert, damit der Empfänger ihr trauen kann, und wiederholt, wenn er nicht erreichbar ist. Das ist die Datenebene: sie bewegt das Event.
- MCP
- Das Model Context Protocol, über das ein Assistent Werkzeuge findet und aufruft. Anfrage/Antwort, von einer Person im Gespräch geführt, lokal ausgeführt. Das ist eine Steuerungsebene: sie bedient das, was das Event bewegt.
- Beides zusammen
- Dein Produkt sendet seine Events weiterhin über die REST-API oder ein SDK, unverändert. MCP greifst du, wenn du einen neuen Event-Typ anlegen, eine Subscription umhängen oder herausfinden musst, warum die Zustellung von gestern scheiterte, ohne das Dashboard zu öffnen.
Was der Assistent tatsächlich kann
Siebzehn Werkzeuge, getrennt nach Lesen und Schreiben. Das ist die ausgelieferte Liste, keine Roadmap. Jedes ist mit Beispiel-Prompt in der MCP-Referenz dokumentiert.
| Werkzeug | Was es tut | Was du tippst |
|---|---|---|
| Lesen (9 Werkzeuge) | ||
list_organizations |
Erreichbare Organisationen auflisten | « Zeig meine Organisationen » |
list_applications |
Applications einer Organisation auflisten | « Welche Apps habe ich ? » |
get_application |
Details einer Application lesen | « Zeig Details zu App X » |
list_event_types |
Event-Typen einer Application auflisten | « Welche Event-Typen sind angelegt ? » |
list_subscriptions |
Webhook-Subscriptions und ihre Konfiguration auflisten | « Zeig alle meine Webhooks » |
get_subscription |
Konfiguration einer Subscription lesen | « Zeig die Webhook-Konfiguration von… » |
list_events |
Von einer Application gesendete Events auflisten | « Zeig die letzten Events » |
get_event |
Ein Event samt Payload lesen | « Zeig Event abc123 » |
list_request_attempts |
Zustellversuche zu einem Event auflisten | « Zeig die Zustellhistorie zu Event X » |
| Schreiben (8 Werkzeuge) | ||
create_application |
Eine Application anlegen | « Leg eine App Order Service an » |
delete_application |
Eine Application löschen | « Lösch die Test-Application » |
create_event_type |
Einen neuen Event-Typ anlegen | « Füg den Typ order.completed hinzu » |
create_subscription |
Eine Webhook-Subscription auf eine URL anlegen | « Leg einen Webhook auf https://… an » |
update_subscription |
Eine bestehende Subscription ändern oder abschalten | « Schalt den Webhook von… ab » |
delete_subscription |
Eine Subscription löschen | « Entfern den Staging-Webhook » |
ingest_event |
Ein Event auslösen, die Sendeseite, aus dem Assistenten | « Schick ein Test-Event user.created » |
retry_delivery |
Eine fehlgeschlagene Zustellung erneut senden | « Sende die fehlgeschlagene Zustellung zu Event X erneut » |
Dazu acht Ressourcen-URIs unter hook0:// für direkte Abfragen und drei geführte Prompts für die wiederkehrenden Abläufe: Subscription anlegen, Zustellung debuggen, Application aufsetzen.
Vollständige Werkzeugreferenz, mit der Konfiguration für Claude Desktop, Cursor, Windsurf und Cline
Drei Schritte bis zum ersten Prompt
Der Server ist eine Rust-Binary, die du einmal installierst. Auf Hook0-Seite läuft nichts Zusätzliches.
-
1. Server installieren
Er liegt auf crates.io und baut zu einer einzigen Binary.
cargo install hook0-mcp -
2. Service-Token anlegen
Im Hook0-Dashboard unter den Service-Tokens deiner Organisation. Schwäche es auf die Applications ab, die der Assistent erreichen soll, bevor du es irgendwo einfügst.
-
3. Im Assistenten eintragen
Claude Desktop liest
claude_desktop_config.json. Cursor, Windsurf und Cline nehmen denselben Block in ihrer eigenen Konfigurationsdatei.{ "mcpServers": { "hook0": { "command": "hook0-mcp", "env": { "HOOK0_API_TOKEN": "dein-service-token-hier" } } } }
Starte den Assistenten neu und frag ihn etwas, das du sonst zusammenklickst: « Warum ist meine letzte Webhook-Zustellung fehlgeschlagen ? »
Pfade der Konfigurationsdateien je Assistent, Umgebungsvariablen und SSE-Modus
Einem Agenten deine Zustellinfrastruktur überlassen
Schreibzugriff auf Produktions-Webhooks vergibt man nicht nebenbei. Drei Kontrollen kommen mit dem Server, und sie lassen sich kombinieren.
Nur-Lesen-Modus
Setz HOOK0_READ_ONLY=true, dann meldet der Server nur die neun Lesewerkzeuge. Der Assistent kann einer fehlgeschlagenen Zustellung nachgehen und dabei nichts verändern.
Abgeschwächte Tokens
Der Nur-Lesen-Modus verkürzt die Werkzeugliste; das Token selbst behält, was ihm zugeteilt wurde. Die Abschwächung begrenzt ein Token auf bestimmte Applications und kann ein Ablaufdatum tragen, durchgesetzt an der API statt im Client. Nimm beides. Sie decken verschiedene Fehlerfälle ab.
Er läuft, wo du ihn startest
Der MCP-Server ist ein lokaler Prozess, der mit der Hook0-API spricht. Der Assistent sieht, was die aufgerufenen Werkzeuge zurückgeben, und sonst wird nichts irgendwohin weitergereicht. Richte HOOK0_API_URL auf deine Instanz, und dieselben Werkzeuge bedienen eine selbst gehostete Installation.
Der Agent ist die Oberfläche, nicht die Garantie
Natürliche Sprache ändert, wie du Webhook-Zustellung bedienst. Zustellen tut sie nichts. Das hier tut es.
Signiert, wiederholt, protokolliert
Jeder Versuch trägt eine HMAC-SHA256-Signatur. Die Wiederholungsversuche laufen zweistufig und konfigurierbar: ein Abonnent, der eine Stunde ausfällt, kostet dich nicht diese Stunde an Events. Jeder Versuch wird protokolliert, und das macht aus « warum ist das fehlgeschlagen » eine Abfrage statt einer Vermutung.
Eine EU-Datenebene, in jedem Tarif
Payloads, Datenbank und Backups laufen auf Infrastruktur von Clever Cloud SAS in Frankreich, im EWR, auch im kostenlosen Tarif. Das CDN davor ist Cloudflare, Inc. (USA), offengelegt in der öffentlichen Liste der Unterauftragsverarbeiter samt Übermittlungsmechanismus. Mehr dazu unter Sicherheit.
Code, den du mitnehmen kannst
Hook0 ist quelloffen (SSPL-1.0), ohne Open-Core-Rückhalt: der gehostete Dienst führt den Code aus, den du selbst ausführen kannst. MCP-Server, API und Abonnenten-Portal verhalten sich gegenüber einer selbst gehosteten Instanz gleich.
Bevor du einen Assistenten auf die Produktion richtest
Wie nutze ich Webhooks mit MCP-Werkzeugen?
Installiere hook0-mcp, leg ein Hook0-Service-Token an und trag den Server in die Konfigurationsdatei deines Assistenten ein. Ab dann hat er siebzehn Werkzeuge auf deinem Konto: Vorhandenes auflisten, einen Event-Typ anlegen, eine Subscription auf eine URL einrichten, ein Test-Event auslösen, eine fehlgeschlagene Zustellung erneut senden. Deine Anwendung sendet ihre echten Events weiterhin über die REST-API oder ein SDK, und dieser Weg bleibt unberührt.
Was ist der Unterschied zwischen MCP und einem Webhook?
Ein Webhook ist eine HTTP-Anfrage, die dein Produkt an eine vom Kunden hinterlegte URL sendet, einseitig und von Maschine zu Maschine, signiert, damit der Empfänger ihr trauen kann. MCP ist die Art, wie ein Assistent Werkzeuge findet und aufruft, in Anfrage/Antwort, geführt von einer Person im Gespräch. Der Webhook bewegt das Event; MCP bedient das System, das es bewegt. Setups mit beidem lassen den Webhook-Weg unangetastet und nutzen MCP für die Betriebsarbeit.
Sieht der Assistent meine Event-Payloads?
Er sieht, was die aufgerufenen Werkzeuge zurückgeben, und ein Event zu lesen gibt dessen Payload zurück. Hook0 reicht nichts an Dritte weiter: der MCP-Server ist ein lokaler Prozess, der direkt mit der Hook0-API spricht. Sollen Payloads ganz aus dem Gespräch bleiben, schwäch das Token auf Applications ab, die keine sensiblen Daten führen.
Welche Assistenten funktionieren damit?
Claude Desktop, Cursor, Windsurf und Cline sind mit ihrer Konfigurationsdatei dokumentiert, und jeder MCP-fähige Client funktioniert genauso. ChatGPT unterstützt MCP derzeit nicht nativ.
Was hindert einen Agenten daran, eine Produktions-Subscription zu löschen?
Zwei Dinge, und sie ergänzen sich. Der Nur-Lesen-Modus nimmt die Schreibwerkzeuge aus der Liste, die der Assistent überhaupt sieht. Die Token-Abschwächung begrenzt, was das Token selbst anfassen darf, durchgesetzt an der API, sodass ein Fehler im Client nicht darüber hinausgehen kann. Gelöschte Ressourcen sind nicht automatisch wiederherstellbar. Deshalb setzt man beides, bevor man einen Assistenten auf die Produktion richtet.
Was passiert mit Events, wenn der Endpoint eines Abonnenten eine Weile ausfällt?
Hook0 wiederholt die Zustellung nach einem zweistufigen, konfigurierbaren Plan, statt sie beim ersten Fehlschlag zu verwerfen, und hält jeden Versuch mit seiner Antwort fest. Sobald der Empfänger repariert ist, sendest du das Fehlgeschlagene erneut, aus dem Dashboard, über die API oder indem du den Assistenten darum bittest. Das Event geht nicht verloren, während der Endpoint nicht erreichbar ist.
Wie prüft die Empfängerseite ein von Hook0 gesendetes Payload?
Jeder Versuch trägt eine HMAC-SHA256-Signatur, berechnet aus dem Payload und dem Secret der Subscription. Der Empfänger berechnet sie nach und vergleicht, bevor er auf das Event reagiert. Das verhindert, dass eine gefälschte Anfrage einen Ablauf auslöst. Signaturverfahren und ein Prüf-Snippet stehen in der Hook0-Dokumentation.
Funktioniert das mit selbst gehostetem Hook0?
Ja. Setz HOOK0_API_URL auf deine Instanz, dann verhalten sich die siebzehn Werkzeuge identisch. Das gesamte Produkt ist quelloffen (SSPL-1.0) ohne Open-Core-Rückhalt: die selbst gehostete Installation führt dieselbe Software aus wie die Cloud.
Ist das ein Agent Skill oder ein Plugin?
Nein. Es ist ein MCP-Server, installiert mit cargo install hook0-mcp und eingetragen in der Konfiguration deines Assistenten. Er läuft standardmäßig über stdio, oder über SSE, wenn du ihn lieber als Dienst betreibst.
Brauche ich den MCP-Server, um Webhooks zu senden?
Nein. Die REST-API und die SDKs bleiben der normale Weg, auf dem deine Anwendung Events sendet, und nichts davon ändert sich. Der MCP-Server richtet sich an die Person, die das Setup betreibt: einen Event-Typ anlegen, eine Subscription einrichten, herausfinden, warum eine Zustellung um vier Uhr nachmittags fehlschlug.
Du hast Besseres zu bauen
Hör auf, Webhook-Infrastruktur selbst zu schreiben. Liefer Features. Start in wenigen Minuten.