Zum Inhalt springen

Model Context Protocol (MCP)

PushGo Gateway kann als MCP HTTP-Server fungieren, sodass MCP-fähige KI-Assistenten Message senden, Event verwalten und Thing innerhalb autorisierter Channel-Bereiche aktualisieren können. Die OAuth2-Autorisierung wird empfohlen, damit Benutzer Channels in einem Browser binden, anstatt einem Modell Channel-Passwörter zu geben.

  • Lassen Sie einen KI-Assistenten eine PushGo-Benachrichtigung senden, nachdem eine Aufgabe abgeschlossen ist.
  • Lassen Sie einen KI-Assistenten lang laufende Arbeiten als Event synchronisieren.
  • Lassen Sie einen KI-Assistenten ein Thing für einen Dienst, ein Gerät oder eine Aufgabe aktualisieren.
  • Bieten Sie MCP-Clients von Drittanbietern bereichsbezogenen Channel-Zugriff.

MCP sollte die Benutzerbestätigung nicht ersetzen. Bei Workflows mit hoher Auswirkung sollte die Bestätigung weiterhin auf der Client- oder Orchestrierungsebene erfolgen.

https://your-gateway-domain/mcp

Wenn eine öffentliche Gateway-Instanz MCP/OAuth aktiviert, verwenden Sie den /mcp-Endpunkt dieser Region. Selbstgehostete Deployments müssen PUSHGO_PUBLIC_BASE_URL auf eine extern erreichbare URL setzen.

Terminal-Fenster
PUSHGO_MCP_ENABLED=true
PUSHGO_PUBLIC_BASE_URL=https://gateway.example.com

Allgemeine Einstellungen:

UmgebungsvariableStandardBeschreibung
PUSHGO_MCP_DCR_ENABLEDtrueAktiviert die dynamische Client-Registrierung.
PUSHGO_MCP_PREDEFINED_CLIENTSkeineVordefinierte OAuth-Clients im client_id:client_secret-Format.
PUSHGO_MCP_ACCESS_TOKEN_TTL_SECS900Lebensdauer des Access Tokens.
PUSHGO_MCP_REFRESH_TOKEN_ABSOLUTE_TTL_SECS2592000Absolute Lebensdauer des Refresh Tokens.
PUSHGO_MCP_REFRESH_TOKEN_IDLE_TTL_SECS604800Leerlaufzeit des Refresh Tokens.
PUSHGO_MCP_BIND_SESSION_TTL_SECS600Lebensdauer der Channel-Bindungssitzung.

Wenn der Client DCR nicht unterstützt, verwenden Sie PUSHGO_MCP_PREDEFINED_CLIENTS.

ModusChannel PasswortAm besten fürRisiko
OAuth2-AutorisierungNicht in Toolaufrufen übergebenKI-Assistenten, Drittanbieter-Clients, ProduktionBegrenzt durch Bereiche und Channelzuteilungen.
Legacy-ModusWird bei jedem Toolaufruf übergebenPersönliche Skripte, vertrauenswürdige UmgebungenDer Aufrufer verfügt direkt über die Channel-Passwörter.

Bevorzugen Sie die OAuth2-Autorisierung in der Produktion.

  1. Der MCP-Client stellt eine Verbindung zu /mcp her.
  2. Der Client erhält eine OAuth2-Clientidentität über OAuth oder DCR.
  3. Der Assistent ruft pushgo.channel.bind.start an.
  4. Der Benutzer öffnet das zurückgegebene bind_url.
  5. Der Benutzer gibt die Channel-ID und das Passwort ein und bestätigt den Autorisierungsumfang.
  6. Der Assistent fragt pushgo.channel.bind.status ab.
  7. Nach der Autorisierung kann der Assistent Tools innerhalb des gebundenen Channelbereichs aufrufen.

Die Lebensdauer der Bindungssitzung wird von PUSHGO_MCP_BIND_SESSION_TTL_SECS gesteuert.

WerkzeugZweck
pushgo.message.sendSendet einen einmaligen Message. Unterstützt title, body, url, images, severity, ttl, metadata, thing_id und verwandte Felder.
WerkzeugZweck
pushgo.event.createErstellt ein Lebenszyklusereignis und gibt event_id zurück.
pushgo.event.updateAktualisiert ein vorhandenes Ereignis.
pushgo.event.closeSchließt ein vorhandenes Ereignis.
WerkzeugZweck
pushgo.thing.createErstellt eine persistente Entität und gibt thing_id zurück.
pushgo.thing.updateAktualisiert Entitätsattribute.
pushgo.thing.archiveArchiviert eine Entität.
pushgo.thing.deleteLöscht eine Entität oder zieht sie zurück.
Werkzeug oder RessourceZweck
pushgo.channel.bind.startErstellt eine Bindungs- oder Widerrufssitzung und gibt bind_url zurück.
pushgo.channel.bind.statusÜberprüft den Bindungssitzungsstatus.
pushgo.channel.listListet derzeit autorisierte Channels auf.
pushgo.channel.unbindWiderruft die Channel-Autorisierung.
pushgo://channelsListe der autorisierten Channelressourcen.
pushgo://channels/{channel_id}Grundlegende Informationen für einen Channel.
  • Der MCP-Endpunkt ist https://your-gateway-domain/mcp.
  • Reverse-Proxys müssen Host und X-Forwarded-Proto korrekt übergeben.
  • Selbstgehostete Deployments müssen PUSHGO_PUBLIC_BASE_URL auf eine extern erreichbare HTTPS-Stamm-URL festlegen.
  • Wenn OAuth-Ausstellermetadaten oder Bindungslinks interne Adressen enthalten, überprüfen Sie zuerst PUSHGO_PUBLIC_BASE_URL.
  • Wenn ein Client DCR nicht unterstützt, verwenden Sie vordefinierte Clients.
  • MCP-Zuschüsse bleiben bestehen; Behandeln Sie die Datenbank oder das Speicherverzeichnis nicht als verfügbaren Cache.
  • Access Tokens sind kurzlebig; Refresh Tokens sind langlebiger. Passen Sie die TTLs basierend auf dem Clientsrisiko an.
  • Rotieren Sie vordefinierte Client-Geheimnisse regelmäßig.
  • Verwenden Sie separate Channels für die Automatisierung mit hohem Risiko, anstatt alles in einem Channel zu autorisieren.
  • Verwenden Sie strukturierte Gateway-Protokolle und -Statistiken für das betriebliche Debugging.
SymptomPrüfen
Client kann OAuth-Metadaten nicht erkennenPUSHGO_PUBLIC_BASE_URL muss eine externe HTTPS-URL sein; Reverse-Proxy muss bekannte Routen weiterleiten.
Bindungslink lässt sich nicht öffnenÖffentliches DNS, HTTPS-Zertifikat, Reverse-Proxy-Pfad und PUSHGO_MCP_BIND_SESSION_TTL_SECS.
DCR schlägt fehlClient-DCR-Unterstützung und PUSHGO_MCP_DCR_ENABLED.
Werkzeugaufruf fragt nach passwordMöglicherweise befinden Sie sich im Legacy-Modus oder die OAuth-Autorisierung ist unvollständig.
Autorisiert, aber keine Channels sichtbarAbschluss der Bindungssitzung, Scopes und ob die Channel-Freigabe widerrufen wurde.