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

4.8 KiB

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. Hermes nutzt den schlüssellosen Keenable-Provider für Suche und Seitenabruf. 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 (produktive Serverliste, Benutzer und Tool-Schalter)
  • config/mcp-registry.json (Seed und Extension-Metadaten für Recovery)
  • extensions/<id>/ (geprüfte portable MCP-Laufzeiten)
  • work/<id>/ (Manifest, Build- und Resume-Zwischenstand)
  • 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:

/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 rendert die Registry ausschließlich bei einer frischen Wiederherstellung. Danach sind MCPHubs eigene Oberfläche und offizielle API die Quelle der Wahrheit; ein Image-Update überschreibt neue MCPs nicht. 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.

Portable MCPs installieren

Hermes installiert portable MCPs ausschließlich mit den Werkzeugen des mcphub-admin-Servers. HTTP-Endpunkte sowie veröffentlichte npm-/Python-Pakete haben je ein direktes Installationswerkzeug. Für GitHub-Repositories übernimmt mcphub_admin_install_git den kompletten Ablauf: klonen, einen festen Commit auflösen, Python oder Node bauen, versioniert unter extensions/<id>/releases/ speichern und deaktiviert registrieren.

Danach prüft mcphub_admin_git_status ausschließlich, ob die namentlich angegebenen Umgebungsvariablen vorhanden sind. Erst mcphub_admin_activate_git aktiviert, veröffentlicht, lädt neu und liefert die echte Tool-Liste. Updates benutzen denselben Installationsaufruf; die vorige Version bleibt für mcphub_admin_rollback_git erhalten. Dafür sind weder Terminal noch SSH, Docker-Befehle, ein Image-Neubau oder Änderungen am Unraid-Template nötig.

Hermes verbindet sich nur mit der verwalteten Gruppe /mcp/hermes. Dadurch werden neu aktivierte Server nach MCP neu laden sichtbar, ohne pro MCP eine weitere Hermes-Konfiguration zu erzeugen. Der interne Server mcphub-admin stellt die üblichen Installationswege für HTTP-, npm- und Python-MCPs als Werkzeuge bereit.

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.