Zum Inhalt springen
MCP-Server eingebautWie das funktioniert

Konfiguration

Der Agent-Dienst wird ausschließlich über die Umgebung konfiguriert. Für Pflichtwerte gibt es keine eingebauten Voreinstellungen: fehlt einer, bricht der Start ab und nennt die Variable.

Auf dieser Seite

Geprüft wird einmal beim Start, und zwar vollständig. Eine falsch gesetzte Variable soll den Dienst nicht erst Stunden später beim ersten Aufruf umbringen.

Pflichtangaben

VariableBedeutung
DATABASE_URLVerbindung zu PostgreSQL (postgres:// oder postgresql://).
KEYCLOAK_URLKeycloak-Basisadresse ohne abschließenden Schrägstrich – die interne, über die JWKS und Tokentausch laufen.
KEYCLOAK_REALMName des Realms.
AGENT_CLIENT_IDOIDC-Client-Kennung des Dienstes; zugleich das erwartete Publikum eingehender Token.
AGENT_CLIENT_SECRETDas zugehörige Geheimnis (vertraulicher Client).
PLATFORM_ENCRYPTION_KEYSchlüsselmaterial für den Geheimnis-Speicher, erzeugt von scripts/generate-secrets.sh.
PORTPort, auf dem der HTTP-Server lauscht.

PLATFORM_ENCRYPTION_KEY nur geplant wechseln

Aus diesem Material wird der Schlüssel für alle gespeicherten Geheimnisse abgeleitet. Nach einem Wechsel sind sie neu zu hinterlegen.

Identität und Adressen

VariableBedeutung
KEYCLOAK_ISSUER_URLDie öffentliche, browserseitige Keycloak-Adresse. Sie bestimmt allein den erwarteten Aussteller im Token. Ungesetzt fällt sie auf KEYCLOAK_URL zurück – richtig für Einzelhost- und Entwicklungsaufbauten, falsch, sobald innen und außen verschiedene Adressen sind.
TRINO_URLAdresse des Trino-Koordinators. Voreingestellt ist die clusterinterne Dienstadresse.
MINIO_ENDPOINT, MINIO_REGIONObjektspeicher für Tabellendaten und Audit-Archiv.

Sicherheit

VariableVoreinstellungBedeutung
SOURCE_TLS_MODEverifyTransportsicherheit zu Quelldatenbanken: verify erzwingt TLS mit Zertifikatsprüfung, require TLS ohne Prüfung, disable gar keins. Je Quelle übersteuerbar.
SOURCE_EGRESS_ALLOWLISTleerKomma-getrennte Hostmuster oder CIDR. Gesetzt: ausgehende Admin-Aufrufe dürfen nur dorthin. Leer: permissiv – bis auf die immer aktive Sperre für Link-Local- und Cloud-Metadaten-Adressen. Ein fehlerhafter CIDR-Eintrag verhindert den Start.
TRINO_ACCESS_RULES_FILEnicht gesetztPfad, unter den der Agent die erzeugten Zeilen- und Spaltenregeln schreibt – auf ein Volume, das Trino mitliest. Ungesetzt werden Richtlinien gespeichert, aber nicht durchgesetzt.

Einbettungen

VariableBedeutung
EMBEDDING_BASE_URLOpenAI-kompatible Adresse des Einbettungsanbieters. Ab Werk das lokale Modell.
EMBEDDING_MODELModellname, ab Werk nomic-embed-text.
EMBEDDING_API_KEYNur nötig, wenn der Anbieter einen verlangt – das lokale Modell nicht.
EMBEDDING_DIMENSIONSDimension der Vektorspalte. Muss zur Migration passen; eine Änderung bedeutet, den Index neu aufzubauen.

Audit-Archivierung

VariableBedeutung
AUDIT_BUCKETBucket für die archivierte Hash-Kette, unter Object Lock.
AUDIT_BATCH_SIZE, AUDIT_FLUSH_INTERVAL_MSWie groß ein Paket wird und wie lange spätestens gewartet wird.
AUDIT_RETENTION_DAYSAufbewahrungsdauer im Archiv.
AUDIT_S3_DISABLEDSchaltet die Archivierung ab. Für Tests – nicht für den Betrieb.

Weitere Schalter

VariableBedeutung
KEYCLOAK_ADMIN_USER, KEYCLOAK_ADMIN_PASSWORDNur zusammen wirksam. Fehlen sie, wird die Nutzer- und Rollenverwaltung nicht registriert – die Funktion ist dann schlicht nicht vorhanden.
CRAWL_ROOTSDie Verzeichnisse, die der Datei-Crawler überhaupt anfassen darf.
MODEL_ANTHROPIC, MODEL_OPENAI, MODEL_OPENAI_COMPATIBLE, MODEL_CLAUDE_SUBSCRIPTIONVoreingestellte Modellkennungen je Anbieter, je Installation übersteuerbar.
CLAUDE_OAUTH_CLIENT_IDÖffentliche Client-Kennung für die Anmeldung mit dem eigenen Claude-Konto.
K8S_API_URL, K8S_API_TOKEN, K8S_NAMESPACENur für Zugriff auf die Kubernetes-API von außerhalb des Clusters. Im Cluster liefert das eingehängte ServiceAccount alles Nötige.

Geheimnisse werden erzeugt

up.sh und bootstrap.sh legen beim ersten Lauf eine .env mit zufälligen Werten an. Die Datei bleibt außerhalb der Versionsverwaltung.

Stand: Diese Seite beschreibt lavalake 0.16.0. Produkt und Dokumentation liegen in getrennten Repositories – im Zweifel gilt, was die Konsole zeigt.

Etwas fehlt?

Wenn diese Seiten Ihre Frage nicht beantworten, zeigen wir die Plattform in einer halben Stunde an Ihrem Fall.

Demo vereinbaren