Add controlled Athena platform operator

This commit is contained in:
Mikei386
2026-08-23 21:10:44 +02:00
parent 2f4bff550e
commit 94f3758795
26 changed files with 1030 additions and 752 deletions
+1 -1
View File
@@ -13,7 +13,7 @@
| Navidrome-MCP | Blakeem/Navidrome-MCP 2.2.0, Image per OCI-Digest | eigener optionaler Container ohne mpv | optional |
| GitHub-MCP | offizieller `github/github-mcp-server` 1.10.1, vier read-only Werkzeuge | eigener optionaler Container hinter Streamable-HTTP-Brücke | optional |
| Platform Context MCP | Athena-/MikeAI-Wissen, begrenzter Laufzeitsnapshot und kontrollierte Dokumentationspflege | eigener Container ohne Docker-Socket, Shell, Egress oder Secrets | Kern |
| Athena Terminal MCP | gezielte Lesebefehle und Syntaxprüfung in Stack/Snapshot | eigener read-only Container ohne Host-Shell, Docker, SSH, Egress, Secrets oder Power-Befehle | Kern |
| Athena Operator MCP | Entwicklung und vollständiger Betrieb der KI-Plattform mit gebundenen Freigaben | unprivilegierte MCP-Fassade plus rootseitiger strukturierter Executor; keine freie Shell | Kern |
| Operator-Kontext | `docs/QWEN_OPERATOR_CONTEXT.md` plus `config/operator-system-prompt.txt` | versionierte Selbstbeschreibung und Sicherheitsregeln für Qwen | Kern |
| Unraid-MCP | lokales `runraid`-Binary | eigener optionaler Container | optional |
| Whisper | ggml-org/whisper.cpp | Service im Router-Deploy | optional |
+8 -7
View File
@@ -158,7 +158,7 @@ Der isolierte Eignungs- und Ausfalltest ist in
Aktuell existieren funktionale Adapter für:
- Athena-Plattformwissen, Laufzeitsnapshot und kontrollierte Docs-Pflege
- Athena Terminal: eng begrenzte Lesebefehle und Syntaxprüfung in Stack/Snapshot
- Athena Operator: Entwicklung, Docker/MCP/Modelle, Tests, Git und Recovery
- Websuche
- Home Assistant
- Sonarr/Radarr
@@ -187,12 +187,13 @@ Ein root-eigener Minutentimer erzeugt nur einen begrenzten Laufzeitsnapshot.
Der Schreibpfad ist auf `docs/*.md`, Vorschau, ausdrückliche Freigabe, atomare
Sicherung und sichtbare Git-/Recovery-Nacharbeit begrenzt.
Der ergänzende Athena Terminal MCP ist kein Host-Terminal. Er sieht nur den
read-only Stack und Laufzeitsnapshot und besitzt eine Positivliste weniger
Lesebefehle. SSH/SCP, Docker, Netzwerkclients, Interpreter, `systemctl`,
Prozesssignale, Reboot, Shutdown, Secrets und Schreibzugriffe sind nicht
verfügbar. Der Auto Tool Selector lädt ihn nur bei ausdrücklich auf Athena
bezogener Terminal-/Shell-Arbeit.
Der Athena Operator MCP ersetzt die frühere begrenzte Terminal-Fassade. Er ist
die zusammenhängende Bedienebene, mit der Qwen die KI-Plattform selbst
weiterentwickeln und betreiben kann. Quellenlesen, Dateiänderungen, Tests,
Compose-Deployments, Containeraktionen, Modell-Downloads, Benchmarks,
Git-Publishing und Recovery sind strukturiert verfügbar. Zustandsänderungen
benötigen immer Vorschau und ein content-gebundenes Approval-Ticket. Ein freies
Root-Terminal sowie Remotezugang, Netzwerk/SSH/Boot/Power bleiben getrennt.
Der frühere allgemeine Shell-MCP und doppelte, schreibende Werkzeuge gehören
nicht zum Sicherheitsziel und werden nicht ungeprüft wiederhergestellt.
+6 -5
View File
@@ -57,7 +57,7 @@ laufen, sondern alle fachlichen Funktionen geprüft wurden.
- [ ] Filter und Quick Actions sind allen fünf Presets zugeordnet
- [ ] Auto Tool Selector wählt bei harmlosen Testfragen Web, GitHub, Home
Assistant, ARR, Navidrome, Unraid read-only, Athena-Plattformwissen und
das begrenzte Athena-Terminal korrekt
den Athena Operator korrekt
- [ ] normale Unterhaltung erhält kein MCP; MUA wird niemals automatisch gewählt
- [ ] SearXNG und TinySearch gesund
@@ -79,8 +79,9 @@ laufen, sondern alle fachlichen Funktionen geprüft wurden.
System-Prompt entsprechen dem wiederhergestellten Stand
- [ ] Platform-Context-Snapshot aktuell; offene Vorschläge und angewandte
Dokumentationsänderungen mit `athena_get_maintenance_status` geprüft
- [ ] Athena-Terminal gesund; erlaubter Leseaufruf erfolgreich; SSH, Docker,
Reboot, Shutdown und Pfadausbruch in Negativtests verweigert
- [ ] Athena Operator und rootseitiger Executor gesund; Lesen und Preview
erfolgreich; falsches/abgelaufenes Ticket, Pfadausbruch, WireGuard-Stopp,
freie Befehle, SSH, Reboot und Shutdown in Negativtests verweigert
- [ ] lokales Dokumentations-Overlay ist auch im privaten Git enthalten und
der Recovery-Koffer wurde danach neu erzeugt
@@ -110,8 +111,8 @@ laufen, sondern alle fachlichen Funktionen geprüft wurden.
- [ ] Router nur aus erlaubtem Netz erreichbar
- [ ] Dienste laufen mit minimalen Rechten
- [ ] Environment-Dateien Modus 0600
- [ ] kein allgemeiner Shell-MCP im Standardprofil; Athena-Terminal besitzt nur
die dokumentierte Positivliste und zwei read-only Mounts
- [ ] kein allgemeiner Shell-MCP im Standardprofil; Athena Operator besitzt nur
strukturierte, ticketgebundene Plattformoperationen
- [ ] Schreibaktionen verlangen Vorschau und Approval Ticket
- [ ] Secret-Restore wurde ohne Klartextausgabe durchgeführt
- [ ] verschlüsseltes Recovery-Bundle liegt außerhalb von Athena
+20 -1
View File
@@ -143,14 +143,33 @@ zentralen Secret-, Prompt-Injection- und Tool-Output-Filter bleiben aktiv.
Clients verbinden sich mit:
```text
http://<FRITZ-VPN-IP>:8081/v1
http://192.168.1.212:8081/v1
```
Dies ist die OpenAI-kompatible Router-API für Zettelrobbe, Hermes und andere
Clients im Heimnetz. `http://192.168.1.212:8080` ist ausschließlich
Open WebUI und darf nicht als API-Basisadresse eingetragen werden.
Als API-Key verwenden sie den Inhalt von `/etc/mike-ai/router-api-key` über
Bearer-Authentifizierung. Der Key gehört in den Secret-Store des Clients,
nicht in Chat, Repository oder URL. Eine Rotation erfolgt atomar durch
Ersetzen der Datei und Neustart des Routerdienstes.
Nur lokal auf Athena anzeigen und direkt in den Zielclient kopieren:
```bash
sudo cat /etc/mike-ai/router-api-key
```
Ein einfacher Verbindungstest ohne Ausgabe des Schlüssels:
```bash
ROUTER_API_KEY=$(sudo cat /etc/mike-ai/router-api-key)
curl -fsS http://192.168.1.212:8081/v1/models \
-H "Authorization: Bearer $ROUTER_API_KEY"
unset ROUTER_API_KEY
```
Sie sollen nicht direkt Port 8080 verwenden, weil sie sonst Profilumschaltung,
Vision, Bildgenerierung, STT und TTS umgehen.
+7 -5
View File
@@ -96,11 +96,13 @@ Der offizielle GitHub-MCP bietet nur vier Werkzeuge:
Andere GitHub-Werkzeuge sowie Schreibzugriffe sind serverseitig deaktiviert.
Für gezielte Beweissuche im Athena-Stack existiert zusätzlich eine begrenzte
Terminal-Fassade. Sie ist kein allgemeiner Shell-MCP: Nur fest erlaubte
Lesebefehle gegen zwei read-only Mounts sind möglich. Docker, SSH, Netzwerk,
Secrets, Service-/Power-Steuerung und jede Form von Schreiben bleiben außerhalb
dieser Vertrauensgrenze.
Für Entwicklung und Betrieb der KI-Plattform existiert ein zentraler Athena
Operator MCP. Eine unprivilegierte MCP-Fassade spricht ausschließlich über
einen Unix-Socket mit einem rootseitigen strukturierten Executor. Dadurch kann
Qwen MCPs, Docker-Dienste, Modelle, Profile, OpenWebUI, Tests, Git und Recovery
selbst pflegen, erhält aber keinen freien Root-Befehl. Jede Mutation wird als
gebundene Vorschau vorbereitet und erst nach ausdrücklicher späterer Freigabe
ausgeführt. Netzwerk-, SSH-, Boot- und Powerzugriffe sind nicht Teil davon.
## Verbindliche Quellen
+11 -7
View File
@@ -226,7 +226,7 @@ Netzzugriff. Kein MCP-Port wird am Host veröffentlicht.
| Bereich | Aufgabe | Rechte |
|---|---|---|
| Athena-Plattform | Architektur, Quellen, Laufzeitsnapshot, Dokumentationspflege | Lesen; Markdown nur Preview/Approval |
| Athena Terminal | gezieltes Lesen und Syntaxprüfung in Stack/Snapshot | strikt read-only; kein Host-Zugriff |
| Athena Operator | vollständige Entwicklung und Betrieb der KI-Plattform | Lesen direkt; Änderungen nur Preview/Ticket/Approval |
| Web | aktuelle öffentliche Recherche über SearXNG/TinySearch | read-only |
| GitHub | Repositorysuche, Baum, Dateiinhalt, Code-Suche | strikt read-only, vier Tools |
| Home Assistant | Zustände, Historie, Diagnose, begrenzte YAML-Abläufe | Lesen; Schreiben nur Preview/Approval |
@@ -235,12 +235,16 @@ Netzzugriff. Kein MCP-Port wird am Host veröffentlicht.
| Unraid | Host-, Docker-, Array-, Netzwerk- und Logdiagnose | read-only Standard |
| MUA/Admin | eng definierte Unraid-Verwaltung | bewusst aktivieren |
`Athena Terminal` ist trotz seines Namens keine allgemeine Shell. Das Werkzeug
stellt ausschließlich `ls`, `cat`, `head`, `tail`, `wc`, `stat`, `file`,
`sha256sum`, `grep`, `rg`, `sed`, `du`, `df` und reine Syntaxprüfung bereit.
Es kann weder Dateien ändern noch Docker, SSH, Netzwerk, Dienste, Prozesse,
Reboot oder Shutdown steuern. Fordere keine Umgehung dieser Grenze an und
behaupte nach einem Leseaufruf niemals, eine Änderung deployed zu haben.
`Athena Operator` ist die zentrale Arbeitsumgebung für Änderungen an Athena.
Nutze ihn zum Lesen der tatsächlichen Quellen, Erstellen und Anwenden von
Dateiänderungen, Testen, Deployen von Compose-Diensten und MCPs, Verwalten der
MikeAI-Container, Laden und Prüfen von Modellen, Starten versionierter
Benchmarks, Git-Publishing und Recovery. Änderungen erfolgen stets in zwei
getrennten Phasen: vollständige Vorschau erzeugen, dem Benutzer zeigen und
stoppen; erst nach dessen späterer exakter Ticketbestätigung ausführen. Ein
freier Shellbefehl, SSH, Netzwerk-/WireGuard-/Firewall-Umbau, Boot/Kernel/
Treiber/Partitionen sowie Reboot und Shutdown sind nicht Bestandteil des
Operators und dürfen nicht umgangen werden.
Der offizielle GitHub-MCP `github/github-mcp-server` 1.10.1 läuft hinter einer
reinen stdio-zu-Streamable-HTTP-Brücke. Aktiv sind ausschließlich:
+8 -5
View File
@@ -54,11 +54,14 @@ Sandbox. Er ist klein, testbar und nicht von Clients direkt erreichbar.
| Administration | Vorschau, Approval-Ticket, Verifikation |
Allgemeine Shell, beliebiges SSH/SCP, freies `curl`, Docker-Administration und
freie Dateisystemsuche gehören nicht ins Standardprofil. Der Athena Terminal
MCP ist davon ausdrücklich keine Ausnahme: Er sieht nur zwei read-only Mounts,
besitzt weder Docker-Socket noch Egress oder Host-PID-Namensraum und akzeptiert
nur eine kleine Positivliste direkter Lesebefehle. Reboot, Shutdown, SSH,
Interpreter, Service-Steuerung und sämtliche Schreibwege sind ausgeschlossen.
freie Dateisystemsuche gehören nicht ins Standardprofil. Für die Athena-
Plattform existiert genau ein Operator-MCP. Seine unprivilegierte Fassade sieht
nur einen lokalen Unix-Socket; ein rootseitiger Executor besitzt die für
Repository, Docker, Modelle, Git und Recovery notwendigen Rechte. Er bietet
keinen beliebigen Befehl an, sondern strukturierte Operationen mit Vorschau,
Inhaltsbindung, Ablaufzeit und späterer exakter Freigabe. SSH-, Netzwerk-,
WireGuard-, Firewall-, Boot-, Kernel-, Treiber-, Partitions-, Reboot- und
Shutdown-Änderungen liegen außerhalb seiner API.
## Schreibaktionen