Add self-maintaining Athena platform context MCP

This commit is contained in:
Mikei386
2026-08-23 17:31:05 +02:00
parent 64d36ad838
commit 3dbb66037d
22 changed files with 1071 additions and 9 deletions
+2
View File
@@ -145,6 +145,7 @@ Allzweck-MCP mit sämtlichen Zugangsdaten.
```text
Open WebUI ── internes Netz ───────────┬── web-mcp
├── platform-context-mcp
├── home-assistant-mcp
├── arr-mcp
├── github-mcp-read
@@ -158,6 +159,7 @@ weitere MCP-Clients ──────┴── mcp-gateway (später) ── das
| Container | Werkzeugbereich | Standardrecht |
|---|---|---|
| `web-mcp` | Websuche, Seitenabruf, Hugging Face und öffentliche Quellen | nur lesen |
| `platform-context-mcp` | Architektur, Quellen, Snapshot und Docs-Pflege | kein Docker-Socket; Docs nur Preview/Approval |
| `github-mcp-read` | Repositorysuche, Baum, Dateiinhalt und Code-Suche | vier Tools, strikt nur lesen |
| `home-assistant-mcp-read` | Entities, Bereiche, Historie, Diagnose | nur lesen |
| `home-assistant-mcp-write` | kontrollierte HA-Änderungen | Preview/Approval |
+1
View File
@@ -12,6 +12,7 @@
| ARR-MCP | `arr-mcp` 1.0.1 plus dokumentierter Sonarr-Patch | eigener optionaler Container | optional |
| 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 |
| 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 |
+11 -4
View File
@@ -150,12 +150,14 @@ Der isolierte Eignungs- und Ausfalltest ist in
- TinySearch ausschließlich im internen Docker-Netz, ohne Host-Port
- lokale ONNX-Embeddings
- kompakte Web-MCP-Fassade mit vier Werkzeugen
- strukturierte API-Pfade für GitHub und Hugging Face
- strukturierter API-Pfad für Hugging Face; GitHub-Quellcode läuft über den
getrennten offiziellen GitHub-MCP
## MCP-Referenz
Aktuell existieren funktionale Adapter für:
- Athena-Plattformwissen, Laufzeitsnapshot und kontrollierte Docs-Pflege
- Websuche
- Home Assistant
- Sonarr/Radarr
@@ -164,9 +166,14 @@ Aktuell existieren funktionale Adapter für:
- Unraid read-only
- eigener Unraid-Administrationsserver
Der GitHub-Container und sein Streamable-HTTP-Handshake sind verifiziert. Er
startet erst produktiv, wenn `/etc/mike-ai/github-mcp.env` einen dedizierten
Read-only-Token enthält; ein leerer Platzhalter aktiviert den Dienst nicht.
Der GitHub-Container läuft produktiv. Token-Datei, interner
Streamable-HTTP-Handshake, fehlende Host-Portfreigabe und exakt vier
read-only Werkzeuge wurden am 23. August 2026 verifiziert.
Der Platform Context MCP läuft ohne Docker-Socket, Shell, Egress oder Secrets.
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 frühere allgemeine Shell-MCP und doppelte, schreibende Werkzeuge gehören
nicht zum Sicherheitsziel und werden nicht ungeprüft wiederhergestellt.
+4
View File
@@ -72,6 +72,10 @@ laufen, sondern alle fachlichen Funktionen geprüft wurden.
- [ ] kein Secret erscheint in Toolantworten oder Logs
- [ ] `PLATFORM_OVERVIEW.md`, `QWEN_OPERATOR_CONTEXT.md` und der Operator-
System-Prompt entsprechen dem wiederhergestellten Stand
- [ ] Platform-Context-Snapshot aktuell; offene Vorschläge und angewandte
Dokumentationsänderungen mit `athena_get_maintenance_status` geprüft
- [ ] lokales Dokumentations-Overlay ist auch im privaten Git enthalten und
der Recovery-Koffer wurde danach neu erzeugt
## Phase E – Vision, Bild und Sprache
+106
View File
@@ -0,0 +1,106 @@
# Athena Platform Context MCP
Stand: 23. August 2026
## Zweck
`mike-ai-mcp-platform-context` gibt jedem MCP-fähigen Client dasselbe
versionierte Wissen über Athena und MikeAI. Dadurch kann in Open WebUI zwischen
Fast, Medium, Large und Ultra gewechselt werden, ohne den vollständigen
Operator-Kontext in jeden Prompt zu kopieren.
Der MCP ist zugleich das kontrollierte Pflegefenster für seine eigene
Dokumentation. Er ist **kein** allgemeiner Athena-Administrator und erhält
weder Docker-Socket noch Shell, Netzwerkzugang, Git-Schlüssel oder Secrets.
## Werkzeuge
| Werkzeug | Wirkung |
|---|---|
| `athena_get_overview` | kurze Architektur und Quellenhierarchie |
| `athena_get_current_state` | begrenzter aktueller Snapshot ohne Nutzdaten |
| `athena_search_knowledge` | Suche in Dokumentation und versionierten Quellen |
| `athena_read_source` | begrenzter Ausschnitt einer ausgewählten Textdatei |
| `athena_get_change_workflow` | verbindlicher Ablauf je Änderungstyp |
| `athena_prepare_documentation_update` | erzeugt nur eine prüfbare Vorschau |
| `athena_apply_documentation_update` | schreibt nach Freigabe ausschließlich `docs/*.md` |
| `athena_get_maintenance_status` | zeigt offene Git-/Recovery-Schulden |
| `athena_close_maintenance_record` | schließt Schulden erst nach geprüftem Git-Deploy und neuerem Recovery-Koffer |
## Aktueller Zustand ohne Docker-Socket
`mike-ai-platform-context-snapshot.timer` startet jede Minute einen kurzen,
fest programmierten Host-Snapshot. Er erfasst ausschließlich:
- Hostname, Debian-/Kernel-Version und Uptime
- grobe RAM- und Dateisystembelegung
- GPU-Name, UUID, VRAM-Belegung und Treiberversion
- Name, Image und Status der laufenden `mike-ai-*`-Container
- aktives Inferenzprofil
- installierten Quellcommit, Hash des Dokumentationsbaums und Status des
Recovery-Koffers
Nicht erfasst werden Logs, Prompts, Chats, Toolinhalte, Container-Umgebungen,
Dateiinhalte außerhalb der versionierten Dokumentation oder Secretwerte. Der
Container liest nur die erzeugte JSON-Datei. Ein Snapshot älter als drei
Minuten gilt als veraltet.
## Dokumentationspflege
Die Pflege ist absichtlich zweistufig:
1. Qwen prüft Laufzeit und Quellen und ruft
`athena_prepare_documentation_update` auf.
2. Das Werkzeug speichert einen Vorschlag unter
`/data/mike-ai-platform-context/pending` und liefert ID, Hashes und die
genaue Freigabezeichenfolge zurück. Noch wurde nichts geändert.
3. Qwen zeigt den Vorschlag dem Benutzer und beendet die autonome Werkzeugkette.
4. Erst nach ausdrücklicher Freigabe darf
`athena_apply_documentation_update` mit `APPLY <proposal-id>` aufgerufen
werden.
5. Vorherige Dateien werden unter
`/data/mike-ai-platform-context/backups` gesichert, neue Inhalte atomar
geschrieben und unter `applied` protokolliert.
Der Server akzeptiert nur einfache Markdown-Dateien direkt unter `docs/`.
Code, Compose, Profile, Installer, Netzwerke, Services, Git und Secrets können
über diesen Schreibweg nicht verändert werden.
## Git und Recovery
Die kanonische Quelle ist der private Gitea-Stand
`git@192.168.1.2:michael/AI-Profile-Router.git`, Branch `main`. Das
Installationsverzeichnis `/opt/mike-ai/stack` ist eine ausgerollte Kopie und
kein Git-Working-Tree; `.mike-ai-source-commit` benennt den ausgerollten
Commit. Der offizielle GitHub-MCP ist read-only und kann dieses private
Gitea-Repository weder ändern noch pushen. Dafür ist ein getrennt
autorisiertes Git-Werkzeug beziehungsweise ein administrativer Git-Workflow
notwendig.
Eine angewandte Dokumentationspflege ist erst vollständig abgeschlossen, wenn
getrennte, dafür autorisierte Werkzeuge Folgendes bestätigt haben:
1. dieselbe Änderung ist im privaten Quellrepository geprüft, committed und
gepusht;
2. der Commit wurde nach Athena ausgerollt und `.mike-ai-source-commit` stimmt;
3. ein neues verschlüsseltes Recovery-Bundle und ein neues
`/data/mike-ai-recovery-kit` wurden erzeugt und geprüft.
Der Context MCP meldet diese Punkte nach jeder Anwendung ausdrücklich als
offen. Er darf sie nicht selbst als erledigt markieren. Lokale Vorschläge,
Backups und Dokumentations-Overlays werden im verschlüsselten Recovery-Bundle
mitgesichert, sodass ungepushte Dokumentationspflege bei einem SSD-Ausfall
nicht vollständig verloren geht. Das ersetzt keinen Git-Commit.
## Verwendung in Open WebUI
Das Werkzeug `Athena Plattformwissen` wird nur bei Arbeiten an Athena/MikeAI
aktiviert. Ein geeigneter Startauftrag lautet:
> Nutze zuerst das Athena-Plattformwissen. Prüfe den aktuellen Zustand und die
> relevanten Quellen. Plane danach die gewünschte Änderung mit Rückweg. Nimm
> keine risikoreiche Aktion und keine Dokumentationsanwendung ohne meine
> ausdrückliche Freigabe vor.
Das funktioniert unabhängig vom gewählten Textprofil. Für normale Gespräche
bleibt der MCP deaktiviert und verbraucht damit keinen Werkzeugkontext.
+8
View File
@@ -12,6 +12,13 @@ Router stellt eine OpenAI-kompatible API bereit und schaltet zwischen mehreren
reproduzierbaren llama.cpp-Profilen um. Fachwerkzeuge laufen als getrennte MCP-
Container; Zugangsdaten gelangen weder in llama.cpp noch in Modellprompts.
Der zuschaltbare `mike-ai-mcp-platform-context` stellt allen Textprofilen das
gleiche versionierte Plattformwissen zur Verfügung. Ein begrenzter
Host-Snapshot ersetzt einen Docker-Socket. Dokumentationsänderungen laufen nur
über Vorschau, ausdrückliche Freigabe und atomare Sicherung; Git und Recovery
bleiben getrennte, nachzuweisende Abschlussarbeiten. Details stehen in
`PLATFORM_CONTEXT_MCP.md`.
## Hardware
- Debian 13 `trixie`, Kernel 6.12
@@ -42,6 +49,7 @@ Open WebUI ---> Profile Router ---> Profile Controller ---> genau ein llama.cpp-
| +-- TTS-Gateway -> XTTS-v2 -> Piper-Fallback
|
+-- internes MCP-Netz
+-- Athena Plattformwissen
+-- Web
+-- GitHub Repository read-only
+-- Home Assistant
+15
View File
@@ -29,6 +29,14 @@ Priorität der Informationsquellen:
Bei einem Widerspruch stoppst du vor jeder Änderung, benennst die Abweichung und
klärst, ob Laufzeit oder Dokumentation korrigiert werden soll.
Wenn der zuschaltbare MCP `Athena Plattformwissen` verfügbar ist, beginne
Athena-/MikeAI-Aufgaben mit `athena_get_overview` und nutze danach gezielt
`athena_get_current_state`, `athena_search_knowledge` und
`athena_read_source`. Der MCP ersetzt nicht die Fachwerkzeuge. Sein
Dokumentations-Schreibweg darf erst nach Vorschau und ausdrücklicher Freigabe
verwendet werden. Eine lokale Dokumentationsänderung ist ohne separaten
Git-Commit/Push und erneuerten Recovery-Koffer nicht abgeschlossen.
## 2. Auftrag und Einsatzumgebung
MikeAI stellt lokal Inferenz, multimodale Bildanalyse, Bildgenerierung,
@@ -81,6 +89,12 @@ Inferenzcontainer eingehängt. Dauerhafte
Änderungen gehören zuerst in das private Repository `AI-Profile-Router`, nicht
nur in einen laufenden Container. Die Hauptbestandteile sind:
Die kanonische Git-Quelle ist der private Gitea-Branch `main` unter
`git@192.168.1.2:michael/AI-Profile-Router.git`. `/opt/mike-ai/stack` ist kein
Working Tree; `.mike-ai-source-commit` bezeichnet den ausgerollten Stand. Der
offizielle GitHub-MCP ist strikt read-only und kann Gitea nicht pflegen. Für
Commit und Push ist daher ein getrennt autorisierter Git-Arbeitsweg nötig.
- Open WebUI als Benutzeroberfläche und Speicher für Arbeitsbereichsmodelle,
Filter, Aktionen und Chats
- Profile Router als OpenAI-kompatible API und zentrale Medien-/Profilfassade
@@ -211,6 +225,7 @@ Netzzugriff. Kein MCP-Port wird am Host veröffentlicht.
| Bereich | Aufgabe | Rechte |
|---|---|---|
| Athena-Plattform | Architektur, Quellen, Laufzeitsnapshot, Dokumentationspflege | Lesen; Markdown nur Preview/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 |