Architektur-Übersicht

Komponenten-Diagramm

Claude Desktop (stdio)
        │
        ▼
mcp-bridge (:stdio → HTTP)
        │
        ▼
OOS Hub (:8000/mcp)          ← MCP-Server + Wails-Desktop
        │
        ├── DSL / AST         ← XML Context-Definitionen
        ├── GraphQL Engine    ← auto-generiert aus DSL
        ├── HTML Board        ← Wails-Fenster
        │
        └── HTTPS/mTLS ──────▶ oosp Plugin-Server (:9100)
                                      │
                                      └── eigene Datenquellen

OOS Hub

Der Hub ist der zentrale Prozess. Er startet als Wails-Desktop-App und stellt gleichzeitig einen MCP-Server auf Port 8000 bereit.

Aufgaben:

  • OAuth-Login (Authentik oder lokaler Modus)
  • DSL laden und AST aufbauen
  • GraphQL-Schema generieren
  • Datenbankverbindungen verwalten (DSN-Registry)
  • MCP-Tools für Claude bereitstellen
  • HTML ins Wails-Board rendern

oosp (Plugin-Server)

Der Plugin-Server ist ein separater Prozess, der ebenfalls als MCP-Server läuft — aber mit eigenem Context-Verzeichnis und eigenen Datenquellen.

Der Hub verbindet sich via HTTPS/mTLS mit dem Plugin-Server. Das TLS-Zertifikat wird automatisch generiert und in Vault gespeichert.

Wann wird oosp benötigt?
Wenn Datenquellen vom Hub-Prozess getrennt laufen sollen — z.B. auf einem anderen Server oder als isolierter Microservice.

mcp-bridge

Claude Desktop kommuniziert per stdio (JSON-RPC über Stdin/Stdout). Der OOS Hub ist aber ein HTTP-Server. Die mcp-bridge übersetzt zwischen beiden Protokollen.

Claude Desktop
    stdio (JSON-RPC)
         │
    mcp-bridge
         │
    HTTP POST /mcp
         │
    OOS Hub

Datenfluss: Query

Claude → oos_query("person_list", "{ person_list { id firstname ... } }")
    → GraphQL Execute
    → SQL SELECT ... FROM person
    → JSON-Daten
    → HTML-Template rendern
    → Wails Board aktualisieren
    → "Daten im Board angezeigt"

Datenfluss: Mutation

Claude → oos_ui_change_required("person_detail", {"lastname": "Müller"})
    → Stage-Daten mergen
    → HTML-Template rendern (Preview)
    → Wails Board aktualisieren (noch nicht gespeichert)

Benutzer bestätigt →

Claude → oos_ui_save()
    → FormData aus Board scrapen
    → GraphQL Mutation bauen
    → SQL UPDATE ... WHERE id = ?
    → Erfolg

Secret-Management

OOS unterstützt zwei Secret-Backends:

Provider Verwendung
env Umgebungsvariablen — für lokale Entwicklung
vault HashiCorp Vault KV v2 — für Produktion

Alle Keys werden unter einem einzigen Vault-Pfad als Felder gespeichert (z.B. secret/oos).


© 2026 Onisin OS

This site uses Just the Docs, a documentation theme for Jekyll.