Add controlled Athena platform operator
This commit is contained in:
+1
-1
@@ -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 |
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user