mcp-gateway.yaml
Die Konfigurationsdateien unterstützen die Einbindung von Umgebungsvariablen mit der Syntax ${VAR:default}. Wenn die Umgebungsvariable nicht gesetzt ist, wird der Standardwert verwendet.
Die übliche Praxis ist die Einbindung über verschiedene .env, .env.development, .env.prod Dateien, oder Sie können die Konfiguration direkt mit einem festen Wert ändern.
Grundkonfiguration
port: ${MCP_GATEWAY_PORT:5235}                      # Service-Listening-Port
pid: "${MCP_GATEWAY_PID:/var/run/mcp-gateway.pid}"  # PID-Dateipfad
Die PID hier sollte mit der unten erwähnten PID übereinstimmen
Speicherkonfiguration
Das Speicherkonfigurationsmodul wird hauptsächlich zur Speicherung von Gateway-Proxy-Konfigurationsinformationen verwendet. Derzeit werden zwei Speichermethoden unterstützt:
- disk: Konfigurationen werden als Dateien auf der Festplatte gespeichert, wobei jede Konfiguration in einer separaten Datei liegt, ähnlich dem vhost-Konzept von nginx, z.B. 
svc-a.yaml,svc-b.yaml - db: Speicherung in Datenbank, wobei jede Konfiguration ein Datensatz ist. Derzeit werden drei Datenbanken unterstützt:
- SQLite3
 - PostgreSQL
 - MySQL
 
 
storage:
  type: "${GATEWAY_STORAGE_TYPE:db}"                    # Speichertyp: db, disk
  
  # Datenbankkonfiguration (verwendet wenn type 'db' ist)
  database:
    type: "${GATEWAY_DB_TYPE:sqlite}"                   # Datenbanktyp (sqlite, postgres, mysql)
    host: "${GATEWAY_DB_HOST:localhost}"                # Datenbank-Host-Adresse
    port: ${GATEWAY_DB_PORT:5432}                       # Datenbankport
    user: "${GATEWAY_DB_USER:postgres}"                 # Datenbankbenutzername
    password: "${GATEWAY_DB_PASSWORD:example}"          # Datenbankpasswort
    dbname: "${GATEWAY_DB_NAME:./data/mcp-gateway.db}"  # Datenbankname oder Dateipfad
    sslmode: "${GATEWAY_DB_SSL_MODE:disable}"           # Datenbank-SSL-Modus
  
  # Festplattenkonfiguration (verwendet wenn type 'disk' ist)
  disk:
    path: "${GATEWAY_STORAGE_DISK_PATH:}"               # Datenspeicherungspfad
Benachrichtigungskonfiguration
Das Benachrichtigungskonfigurationsmodul wird verwendet, um mcp-gateway über Konfigurationsaktualisierungen zu informieren und Hot-Reload ohne Neustart des Dienstes auszulösen.
Derzeit werden vier Benachrichtigungsmethoden unterstützt:
- signal: Benachrichtigung über Betriebssystemsignale, ähnlich wie 
kill -SIGHUP <pid>odernginx -s reload, kann über den Befehlmcp-gateway reloadaufgerufen werden, geeignet für Einzelmaschinen-Deployment - api: Benachrichtigung über API-Aufrufe, 
mcp-gatewayhört auf einem separaten Port und führt Hot-Reload bei Empfang von Anfragen durch, kann direkt übercurl http://localhost:5235/_reloadaufgerufen werden, geeignet für Einzelmaschinen- und Cluster-Deployment - redis: Benachrichtigung über Redis-Pub/Sub-Funktionalität, geeignet für Einzelmaschinen- und Cluster-Deployment
 - composite: Kombinierte Benachrichtigung, verwendet mehrere Methoden, mit standardmäßig aktiviertem 
signalundapi, kann mit anderen Methoden kombiniert werden. Geeignet für Einzelmaschinen- und Cluster-Deployment, empfohlen als Standardmethode 
Benachrichtigungsrollen:
- sender: Sender, verantwortlich für das Senden von Benachrichtigungen, 
apiserverkann nur diesen Modus verwenden - receiver: Empfänger, verantwortlich für den Empfang von Benachrichtigungen, Einzelmaschinen-
mcp-gatewaysollte nur diesen Modus verwenden - both: Sowohl Sender als auch Empfänger, Cluster-deployed 
mcp-gatewaykann diesen Modus verwenden 
notifier:
  role: "${NOTIFIER_ROLE:receiver}" # Rolle: 'sender' oder 'receiver'
  type: "${NOTIFIER_TYPE:signal}"   # Typ: 'signal', 'api', 'redis' oder 'composite'
  # Signalkonfiguration (verwendet wenn type 'signal' ist)
  signal:
    signal: "${NOTIFIER_SIGNAL:SIGHUP}"                     # Zu sendendes Signal
    pid: "${NOTIFIER_SIGNAL_PID:/var/run/mcp-gateway.pid}"  # PID-Dateipfad
  # API-Konfiguration (verwendet wenn type 'api' ist)
  api:
    port: ${NOTIFIER_API_PORT:5235}                                         # API-Port
    target_url: "${NOTIFIER_API_TARGET_URL:http://localhost:5235/_reload}"  # Reload-Endpunkt
  # Redis-Konfiguration (verwendet wenn type 'redis' ist)
  redis:
    addr: "${NOTIFIER_REDIS_ADDR:localhost:6379}"                               # Redis-Adresse
    password: "${NOTIFIER_REDIS_PASSWORD:UseStrongPasswordIsAGoodPractice}"     # Redis-Passwort
    db: ${NOTIFIER_REDIS_DB:0}                                                  # Redis-Datenbanknummer
    topic: "${NOTIFIER_REDIS_TOPIC:mcp-gateway:reload}"                         # Redis-Pub/Sub-Thema
Sitzungsspeicherkonfiguration
Die Sitzungsspeicherkonfiguration wird zur Speicherung von MCP-Sitzungsinformationen verwendet. Derzeit werden zwei Speichermethoden unterstützt:
- memory: In-Memory-Speicherung, geeignet für Einzelmaschinen-Deployment (Hinweis: Sitzungsinformationen gehen beim Neustart verloren)
 - redis: Redis-Speicherung, geeignet für Einzelmaschinen- und Cluster-Deployment
 
session:
  type: "${SESSION_STORAGE_TYPE:memory}"                    # Speichertyp: memory, redis
  redis:
    addr: "${SESSION_REDIS_ADDR:localhost:6379}"            # Redis-Adresse
    password: "${SESSION_REDIS_PASSWORD:}"                  # Redis-Passwort
    db: ${SESSION_REDIS_DB:0}                               # Redis-Datenbanknummer
    topic: "${SESSION_REDIS_TOPIC:mcp-gateway:session}"     # Redis-Pub/Sub-Thema