lamp

Für pulse, Schaltwerk und Agenten

Per API und MCP.

Dieselben Daten wie auf der Seite. Lesen geht ohne Schlüssel, mit Rate-Limit je IP.

Beispiel
$ curl https://lamp.automagically.sh/v1/status \
  -G -d providers=hetzner-cloud,cloudflare
{
  "problems": 1,
  "providers": [
    {
      "id": "cloudflare",
      "status": "degraded",
      "detail": "DNS-Auflösung in Frankfurt verlangsamt",
      "sources": {
        "official": {"status": "degraded", ...},
        "measured": {"status": "operational", "latency_ms": 18, ...}
      }
    }
  ]
}
Sammelauskunft
$ curl https://lamp.automagically.sh/v1/check \
  -G -d providers=hetzner-cloud,cloudflare

{"result": "incidents", "incidents": ["cloudflare"], "unknown": [], "checked": 2}

result ist ok, incidents oder unknown. „ok“ gibt es nur, wenn jeder gewählte Anbieter ein frisches, gutes Urteil hat; fehlt eines, ist es unknown. Auswahl mit providers=a,b und/oder category=hosting,mail.

Unbekannte Kennungen werden mit 422 abgelehnt, nie still ausgelassen. unknown heißt „keine aktuellen Daten“, nicht „läuft“.

Endpunkte
GET /v1/providersKatalog mit Kennung, Kategorie, Erkennungsmerkmalen
GET /v1/status?providers=…&category=…Stand mehrerer Anbieter in einer Abfrage
GET /v1/check?providers=…&category=…ok, incidents oder unknown mit den Kennungen
GET /v1/notices?q=&kind=&from=&to=Ankündigungen, Änderungen, Wartung; durchsuchbar
GET /v1/notices/upcoming?days=90Demnächst: Einträge mit belegtem Datum
GET /feed.atom?p=…&kind=…Atom-Feed derselben Auswahl zum Abonnieren
GET /v1/providers/{id}Komponenten, Vorfälle, Quellen, 90 Tage
GET /v1/fingerprintsNetze, CNAME und Header zur Anbieter-Erkennung
GET /v1/incidents?q=&source=&from=&to=Vorfälle, durchsuchbar
GET /badge/{id}.svgStatusbadge für README und Statusseiten (über pix)
MCP POST /mcpAcht Lese-Werkzeuge für Agenten, ohne Schlüssel

Vollständige Beschreibung (OpenAPI)

MCP für Agenten
$ claude mcp add --transport http lamp https://lamp.automagically.sh/mcp

Werkzeuge: list_providers, provider_check (ist meine Auswahl grün?), provider_status, provider_detail, list_incidents, search_notices, upcoming_notices, get_fingerprints. Alle lesen nur, mit demselben Rate-Limit je IP wie die REST-API. unknown heißt „keine aktuellen Daten“, nie „läuft“.

Ohne Schlüssel

Lesen ist frei, mit Rate-Limit je IP.

Mit Schlüssel (geplant)

Webhooks bei Statuswechsel und gebündelte Abfragen kommen mit der Anmeldung über Automagically.

Quelle immer dabei

Offiziell, gemessen oder keine Daten: so ist klar, woher ein Status kommt.