Files
AI-Profile-Router/platform/mcphub/README.md
T

71 lines
3.2 KiB
Markdown

# CasaDeRoll MCPHub
MCPHub ist die zentrale Laufzeit und Verwaltungsoberfläche für portable
MCP-Server. Die einzelnen Server bleiben unter `/mcp/{server}` sichtbar, obwohl
sie sich einen Docker-Container und ein Appdata-Backup teilen.
## Was hier hinein gehört
- ARR, Deemix, Navidrome und GitHub laufen als lokale stdio-Unterprozesse.
- Home Assistant und MUA/Unraid sind vorhandene HTTP-MCP-Endpunkte und werden
vom Hub direkt weitergereicht.
- Allgemeine Webrecherche bleibt ein eingebautes Hermes-Werkzeug. Der alte
Athena-Webadapter sowie SearXNG/TinySearch gehören nicht zum MCPHub-Image.
- Athenas administrativer Operator ist hostgebunden und bleibt auf Athena.
MCPHub reicht den vorhandenen, nur über WireGuard erreichbaren HTTP-Endpunkt
`http://192.168.1.212:8202/mcp` als `/mcp/athena-operator` weiter. Dadurch
bleibt genau eine Operator-Instanz bestehen; im Hub liegt weder ein zweiter
Operator noch ein SSH-Schlüssel für Athena.
## Dauerhafte Daten
`/mnt/nvme-storage/appdata/MCPHub` on Unraid contains:
- `mcp_settings.json` (users, server registrations and tool toggles)
- `jwt-secret` (stable login sessions)
- `secrets/*.env` (local credentials, mode `0600`)
Das Verzeichnis wird vom normalen Unraid-Appdata-Backup erfasst. Das Image
enthält nur versionierten Code und keine Zugangsdaten.
## Unraid-Verwaltung
Der Produktionscontainer muss aus
`config/unraid-templates/my-MCPHub.xml` über Unraids Docker-Oberfläche erzeugt
oder mit DockerMans `update_container` neu aufgebaut werden. Ein direktes
`docker run` startet zwar denselben Dienst, setzt aber nicht die Labels
`net.unraid.docker.managed`, `net.unraid.docker.webui` und
`net.unraid.docker.icon`; Unraid zeigt ihn dann fälschlich als „3rd Party“ und
kann Bearbeiten sowie Updates einschränken.
Nach einem lokalen Image-Rebuild deshalb in der Unraid-Oberfläche beim
MCPHub-Template **Apply** wählen. Alternativ auf Unraid:
```bash
/usr/bin/php -q /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/update_container MCPHub
```
Appdata und Secrets bleiben bei dieser Neuerstellung erhalten.
Das Dashboard bleibt passwortgeschützt. MCP-Clients teilen sich einen
generierten Bearer-Schlüssel in `client-token`. Dadurch ist kein OAuth-Ablauf
pro Client nötig, ohne die MCP-Routen anonym zu öffnen. Port 8787 darf nicht ins
öffentliche Internet weitergeleitet werden.
`configure-settings.py` erhält bestehende MCPHub-Benutzer und ersetzt
Demo-Server durch die deklarative Produktionsliste. `verify-hub.py` führt
Handshakes und Tool-Listen ohne Schreibzugriff aus. `probe-hub.py` führt genau
eine ausdrücklich benannte, begrenzte Funktionsprobe aus.
## Migrationsregel
Jeweils nur einen Server verschieben, seinen Handshake und einen begrenzten
read-only-Aufruf prüfen und erst danach Clients auf
`http://UNRAID-IP:8787/mcp/{server}` umstellen. Der alte Athena-Container wird
erst gestoppt, wenn Hermes und OpenWebUI nachweislich über MCPHub funktionieren.
Aktueller Stand: Athena Operator, ARR, Deemix, Navidrome, GitHub, Home Assistant,
MUA/Unraid und FRITZ!Box sind auf MCPHub registriert. Alte portable
Athena-MCP-Container bleiben ausgeschaltet als kurzfristiges Rückfallnetz
bestehen. Der frühere Webadapter ist nicht mehr Bestandteil des Images.