Zum Inhalt springen

Konfiguration: ENV-Variablen, YAML-Dateien

ToolMesh wird vollständig über Umgebungsvariablen und YAML-Dateien konfiguriert.

VariableStandardBeschreibung
TOOLMESH_PORT8123Host-Port (Docker-Mapping; intern immer 8080)
TOOLMESH_TRANSPORThttpTransport: http oder stdio
TOOLMESH_CORS_ORIGINS(leer)Erlaubte CORS-Origins
TOOLMESH_AUTH_PASSWORD(leer)Single-User-OAuth-Passwort
TOOLMESH_API_KEY(leer)Statischer API-Key
VariableStandardBeschreibung
AUDIT_STOREloglog (slog) oder sqlite
AUDIT_RETENTION_DAYS90Aufbewahrungsdauer für SQLite-Store
VariableStandardBeschreibung
OPENFGA_API_URLhttp://localhost:8080OpenFGA-API-Endpunkt. In Docker Compose http://openfga:8080 verwenden (in .env setzen).
OPENFGA_STORE_ID(leer)OpenFGA Store-ID (wird durch ./config/openfga/setup.sh gesetzt)
OPENFGA_MODEbypassbypass (keine AuthZ, nur Entwicklung) oder restrict (erzwungen, empfohlen für Produktion)
VariableStandardBeschreibung
TOOLMESH_MCP_TIMEOUT120HTTP-Client-Timeout für MCP-Backends (Sekunden)
TOOLMESH_EXEC_TIMEOUT120Tool-Ausführungs-Timeout (Sekunden)
VariableStandardBeschreibung
LOG_LEVELdebug / infoLog-Detailgrad
LOG_FORMATjsonjson oder text
DEBUG_BACKENDS(leer)Kommaseparierte Backend-Namen für Debug-Logging
DEBUG_FILE(leer)Pfad zur Debug-Log-Datei

Sicherheitshinweis: Debug-Logging kann vollständige Request/Response-Payloads einschließlich sensibler Daten erfassen. DEBUG_BACKENDS oder DEBUG_FILE niemals in Produktionsumgebungen aktivieren.

ToolMesh meldet alle 24 Stunden anonyme, aggregierte Nutzungsstatistiken an https://tmc.dunkel.cloud/v1/telemetry.

VariableStandardBeschreibung
DO_NOT_SEND_ANONYMOUS_STATISTICS(leer)Auf yes setzen, um das Senden zu stoppen. Zähler laufen lokal weiter.
TELEMETRY_INTERVAL24hSendeintervall als Go-Duration (1h, 30m) — für Tests gedacht

Jeder Eintrag eines Reports enthält genau fünf Felder:

  • dadl_hash — Content-Hash der DADL-Datei, über die die Aufrufe liefen
  • call_count / error_count — erfolgreiche und fehlgeschlagene Aufrufe seit dem letzten Report
  • version — die ToolMesh-Version
  • mcp_server_count — Anzahl der konfigurierten MCP-Server-Backends

Tool-Argumente, Antworten, Credentials, Backend-URLs, Hostnamen und Nutzerkennungen werden nie erfasst, und es gibt keine dauerhafte Installations-ID. Der DADL-Hash identifiziert die Connector-Definition, nicht die Installation — wer dieselbe DADL einsetzt, meldet denselben Wert. Wie bei jedem HTTP-Request sieht der empfangende Endpunkt allerdings die IP-Adresse des Absenders.

Zum Deaktivieren:

Terminal-Fenster
DO_NOT_SEND_ANONYMOUS_STATISTICS=yes

Credentials werden als Umgebungsvariablen mit CREDENTIAL_-Präfix gesetzt:

Terminal-Fenster
CREDENTIAL_GITHUB_TOKEN=ghp_xxxxx
CREDENTIAL_STRIPE_KEY=sk_live_xxxxx
CREDENTIAL_MEMORIZER_API_KEY=sk-mem-xxxxx

Definiert, mit welchen Backends sich ToolMesh verbindet:

backends:
# MCP-Backend
- name: memorizer
transport: http
url: "https://memorizer.example.com/mcp"
api_key_env: "MEMORIZER_API_KEY"
# REST-Backend via DADL
- name: github
transport: rest
dadl: /app/dadl/github.dadl
url: "https://api.github.com"

Tools werden automatisch mit einem Backend-Präfix exponiert (z.B. memorizer_retrieve_knowledge, github_list_repos).

Multi-User-Konfiguration für OAuth:

users:
- username: alice
password: "$2a$12$..."
company: acme
plan: pro
roles: [admin]

API-Key-Definitionen:

keys:
- key_hash: "$2a$12$..."
username: ci-bot
company: acme
plan: standard
roles: [read]
caller_id: github-actions

Ordnet Caller-IDs Vertrauensklassen zu:

classes:
trusted:
- claude-code
- claude-desktop
standard:
- partner-*
# Alles andere → "untrusted"