Konfiguration
ToolMesh wird vollständig über Umgebungsvariablen und YAML-Dateien konfiguriert.
Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“MCP-Server
Abschnitt betitelt „MCP-Server“| Variable | Standard | Beschreibung |
|---|---|---|
TOOLMESH_PORT | 8123 | Host-Port (Docker-Mapping; intern immer 8080) |
TOOLMESH_TRANSPORT | http | Transport: 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 |
| Variable | Standard | Beschreibung |
|---|---|---|
AUDIT_STORE | log | log (slog) oder sqlite |
AUDIT_RETENTION_DAYS | 90 | Aufbewahrungsdauer für SQLite-Store |
Autorisierung
Abschnitt betitelt „Autorisierung“| Variable | Standard | Beschreibung |
|---|---|---|
OPENFGA_API_URL | http://localhost:8080 | OpenFGA-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_MODE | bypass | bypass (keine AuthZ, nur Entwicklung) oder restrict (erzwungen, empfohlen für Produktion) |
Timeouts
Abschnitt betitelt „Timeouts“| Variable | Standard | Beschreibung |
|---|---|---|
TOOLMESH_MCP_TIMEOUT | 120 | HTTP-Client-Timeout für MCP-Backends (Sekunden) |
TOOLMESH_EXEC_TIMEOUT | 120 | Tool-Ausführungs-Timeout (Sekunden) |
Logging
Abschnitt betitelt „Logging“| Variable | Standard | Beschreibung |
|---|---|---|
LOG_LEVEL | debug / info | Log-Detailgrad |
LOG_FORMAT | json | json 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_BACKENDSoderDEBUG_FILEniemals in Produktionsumgebungen aktivieren.
Credentials
Abschnitt betitelt „Credentials“Credentials werden als Umgebungsvariablen mit CREDENTIAL_-Präfix gesetzt:
CREDENTIAL_GITHUB_TOKEN=ghp_xxxxxCREDENTIAL_STRIPE_KEY=sk_live_xxxxxCREDENTIAL_MEMORIZER_API_KEY=sk-mem-xxxxxKonfigurationsdateien
Abschnitt betitelt „Konfigurationsdateien“backends.yaml
Abschnitt betitelt „backends.yaml“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).
users.yaml
Abschnitt betitelt „users.yaml“Multi-User-Konfiguration für OAuth:
users: - username: alice password: "$2a$12$..." company: acme plan: pro roles: [admin]apikeys.yaml
Abschnitt betitelt „apikeys.yaml“API-Key-Definitionen:
keys: - key_hash: "$2a$12$..." username: ci-bot company: acme plan: standard roles: [read] caller_id: github-actionscaller-classes.yaml
Abschnitt betitelt „caller-classes.yaml“Ordnet Caller-IDs Vertrauensklassen zu:
classes: trusted: - claude-code - claude-desktop standard: - partner-* # Alles andere → "untrusted"