API & MCP
Nutze den Klar-Index in eigenen Projekten. Alle Schnittstellen lesen den gespeicherten Bestand. Die Suche löst keinen Crawl aus.
Projekt-API · REST v1
Der separate Gateway-Dienst ist bei der Standardinstallation unter http://localhost:8082 erreichbar. Erstelle im Adminpanel unter „Schnittstellen“ einen Projekt-Leseschlüssel. Übertrage ihn als Authorization: Bearer DEIN_PROJEKTSCHLUESSEL. Jeder Schlüssel besitzt ein eigenes Anfragelimit und kann widerrufen werden.
Der Gateway stellt den Webindex einschließlich indexierter Dokumente bereit. Fediverse und Rechtsindex sind derzeit nicht Teil der Projekt-API und des MCP-Servers.
| Aufruf | Ergebnis |
|---|---|
POST /v1/search | Suche mit q, optional source (Hauptdomain ohne „domain:“), topic, max_age_months, document_types, limit (1–50, Standard 10), offset (0–10000). Antwort: results, offset, limit, has_more, provider. |
GET /v1/documents/{document_id} | Gespeicherter Datensatz mit Volltext und Herkunft. UUID-URN aus einem Suchtreffer verwenden. |
GET /v1/sources | Quellen als Hauptdomains mit Dokumentzahlen. |
GET /v1/stats | Bestandsgrößen und Zeitpunkt der letzten Dokumentänderung. |
curl http://localhost:8082/v1/search \
-H 'Authorization: Bearer DEIN_PROJEKTSCHLUESSEL' \
-H 'Content-Type: application/json' \
-d '{"q":"Förderung Bildung","limit":10,"max_age_months":24}'Begriffe werden mit UND verknüpft; deutsche Wortformen werden berücksichtigt. Ein gesetztes Höchstalter schließt undatierte Treffer aus. HTTP 401: Schlüssel fehlt oder ungültig; 403: Berechtigung oder Ursprung nicht erlaubt; 404: Dokument fehlt; 422: ungültige Parameter; 429: Anfragelimit erreicht.
Die maschinenlesbare OpenAPI-Spezifikation liegt auf dem Gateway unter http://localhost:8082/openapi.json. Bei einer eigenen Bereitstellung die Adresse entsprechend ersetzen.
Dokumenttypen: document_types ist eine Liste mit html, pdf, docx, doc, odt. Fehlend oder leer bedeutet alle Typen; mehrere Werte werden mit ODER verknüpft. Beispiel: {"q":"Förderung","document_types":["pdf","odt"]}. Derselbe Filter gilt für MCP und die öffentliche Web-/News-Suche, nicht für Fediverse oder Staan.
MCP · Streamable HTTP
Serveradresse: http://localhost:8082/mcp. Verwende denselben Bearer-Header wie bei REST. Beispiel für einen Client mit konfigurierbaren HTTP-Headern:
{
"mcpServers": {
"klar": {
"url": "http://localhost:8082/mcp",
"headers": {"Authorization": "Bearer DEIN_PROJEKTSCHLUESSEL"}
}
}
}Das genaue Konfigurationsformat hängt vom MCP-Client ab. OAuth und eine automatische ChatGPT-Connector-Einrichtung werden nicht angeboten.
search_index(query, source?, topic?, limit?, offset?, max_age_months?, document_types?)– Webindex durchsuchen.get_document(document_id)– gespeicherten Volltext lesen.list_sources()– Hauptdomains auflisten.index_stats()– Bestandsdaten lesen.
Die Werkzeuge sind lesend. Inhalte und Textauszüge stammen von externen Quellen und dürfen von KI-Anwendungen nicht als Anweisungen behandelt werden.
Öffentliche Suche · Port 8080
Diese Endpunkte werden auch von der Suchoberfläche genutzt. Sie benötigen keinen Projekt-Schlüssel und teilen sich das globale Pilotlimit von 60 Anfragen pro Minute. Für dauerhafte Integrationen verwende die Projekt-API.
| Aufruf | Inhalt |
|---|---|
GET /api/options | Verfügbare Quellen, Themen und ausgewählte Fediverse-Instanzen. |
POST /api/search | Webindex nach Relevanz; q ist erforderlich. Quellenfilter: „domain:beispiel.de“. |
POST /api/fediverse/search | Fediverse nach Relevanz; q ist erforderlich. source ist der Instanz-Hostname. |
POST /api/news | Als Nachrichten erkannte Seiten, neueste zuerst; q ist optional. |
POST /api/social | Fediverse-Beiträge, neueste zuerst; q ist optional. |
JSON-Parameter: q (bis 400 Zeichen), optional source, topic (nur Webindex/News), offset (0–1000), max_age_months (1–1200). Feste Seitengröße: 10 Treffer. Antwort: {"results":[...],"provider":"..."}.
curl http://localhost:8080/api/social \
-H 'Content-Type: application/json' \
-d '{"q":"Bildung","max_age_months":12,"offset":0}'Betrieb und Schlüssel
Der Gateway ist standardmäßig nur lokal gebunden. Für externe Projekte einen HTTPS-Reverse-Proxy einrichten und KLAR_EXTERNAL_URL auf die öffentliche Gateway-Origin setzen. Erlaubte Browser-Ursprünge werden über KLAR_ALLOWED_ORIGINS konfiguriert; dies aktiviert keine pauschale CORS-Freigabe. Projekt-Schlüssel gehören auf den Server deiner Anwendung. Gib weder Admin-Token noch private Leseschlüssel in öffentlichen Webseiten oder URLs weiter.
Suchanfragen werden von Klar nicht protokolliert. Vorgeschaltete Hosting- und Proxy-Dienste können eigene Protokolle führen. Keine Administrationsrechte, keine automatischen Staan-Abfragen über den Gateway.