Consolidate portable MCPs in Unraid MCPHub
This commit is contained in:
+28
-18
@@ -24,20 +24,24 @@
|
||||
"hermes_id": "github",
|
||||
"name": "GitHub (offiziell, read-only)",
|
||||
"description": "Repository-Suche, echte Datei-Inhalte und gezielte Code-Suche. Keine rekursiven Komplettbäume oder Schreibzugriffe.",
|
||||
"url": "http://mcp-github:8000/mcp",
|
||||
"url": "http://192.168.1.2:8787/mcp/github",
|
||||
"clients": ["hermes", "openwebui"],
|
||||
"required_file": "/etc/mike-ai/github-mcp.env",
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 300,
|
||||
"functions": "search_repositories,get_file_contents,search_code"
|
||||
"functions": "github-search_repositories,github-get_file_contents,github-search_code"
|
||||
},
|
||||
{
|
||||
"id": "homeassistant-local",
|
||||
"hermes_id": "homeassistant-admin",
|
||||
"name": "Home Assistant",
|
||||
"description": "Entitäten, Zustände, Historie, Automationen, Dashboards, Diagnose und freigegebene YAML-Dateien. Änderungen nur auf ausdrücklichen Auftrag.",
|
||||
"url": "http://mcp-homeassistant:8000/mcp",
|
||||
"url": "http://192.168.1.2:8787/mcp/homeassistant",
|
||||
"clients": ["hermes", "openwebui"],
|
||||
"required_file": "/etc/mike-ai/homeassistant-admin-mcp.env",
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 300
|
||||
},
|
||||
{
|
||||
@@ -45,9 +49,11 @@
|
||||
"hermes_id": "arr",
|
||||
"name": "Sonarr und Radarr",
|
||||
"description": "Serien, Filme, Queue, Indexer-Suche und kompakte Medieninventare. Für Codec-Fragen radarr_movie_codec_inventory verwenden; keine rohen API-Requests oder Dateisystem-Scans.",
|
||||
"url": "http://mcp-arr:8000/mcp",
|
||||
"url": "http://192.168.1.2:8787/mcp/arr",
|
||||
"clients": ["hermes", "openwebui"],
|
||||
"required_file": "/etc/mike-ai/arr-mcp.env",
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 600
|
||||
},
|
||||
{
|
||||
@@ -55,9 +61,11 @@
|
||||
"hermes_id": "navidrome",
|
||||
"name": "Navidrome",
|
||||
"description": "Persönliche Musikbibliothek: Titel, Alben, Künstler, Playlists, Favoriten und Hörverlauf.",
|
||||
"url": "http://mike-ai-mcp-navidrome:3000/mcp",
|
||||
"url": "http://192.168.1.2:8787/mcp/navidrome",
|
||||
"clients": ["hermes", "openwebui"],
|
||||
"required_file": "/etc/mike-ai/navidrome-mcp.env",
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 300
|
||||
},
|
||||
{
|
||||
@@ -65,9 +73,11 @@
|
||||
"hermes_id": "deemix",
|
||||
"name": "Deemix",
|
||||
"description": "Nutzt ausschließlich die bestehende Deemix-Instanz auf Unraid. Status und Suche sind read-only; Queue-Aktionen nur auf ausdrücklichen Auftrag.",
|
||||
"url": "http://mcp-deemix:8000/mcp",
|
||||
"url": "http://192.168.1.2:8787/mcp/deemix",
|
||||
"clients": ["hermes", "openwebui"],
|
||||
"required_file": "/etc/mike-ai/deemix-mcp.env",
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 300
|
||||
},
|
||||
{
|
||||
@@ -75,9 +85,9 @@
|
||||
"hermes_id": "unraid",
|
||||
"name": "MUA (Unraid-Verwaltung)",
|
||||
"description": "Unraid-Verwaltung über das vorhandene MUA-Plugin. Zustand zuerst lesen, engste Änderung ausführen, danach verifizieren.",
|
||||
"url_env": "MUA_MCP_URL",
|
||||
"key_env": "MUA_MCP_BEARER_TOKEN",
|
||||
"env_file": "/etc/mike-ai/mua-mcp.env",
|
||||
"url": "http://192.168.1.2:8787/mcp/unraid",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"auth_type": "bearer",
|
||||
"clients": ["hermes", "openwebui"],
|
||||
"timeout": 900
|
||||
@@ -86,13 +96,13 @@
|
||||
"id": "mua-readonly-local",
|
||||
"name": "MUA (Unraid read-only)",
|
||||
"description": "Automatisch nutzbare Unraid-Diagnose für Container, Logs, System, Storage, Shares und Medieninventare. Keine Änderungen oder freie Shell.",
|
||||
"url_env": "MUA_MCP_URL",
|
||||
"key_env": "MUA_MCP_BEARER_TOKEN",
|
||||
"env_file": "/etc/mike-ai/mua-mcp.env",
|
||||
"url": "http://192.168.1.2:8787/mcp/unraid",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"auth_type": "bearer",
|
||||
"clients": ["openwebui"],
|
||||
"timeout": 900,
|
||||
"functions": "unraid_docker_list,unraid_docker_inspect,unraid_docker_logs,unraid_docker_analyze_logs,unraid_docker_processes,unraid_docker_stats,unraid_docker_info,unraid_docker_update_status,unraid_ca_search,unraid_network_inventory,unraid_network_list,unraid_network_inspect,unraid_network_host_state,unraid_network_audit_tcp,unraid_network_lan_probe,unraid_system_health,unraid_storage_status,unraid_disk_health,unraid_notifications_list,unraid_shares_list,unraid_share_inspect,unraid_files_inventory,unraid_system_connection_test,unraid_system_shell_readonly"
|
||||
"functions": "unraid-unraid_docker_list,unraid-unraid_docker_inspect,unraid-unraid_docker_logs,unraid-unraid_docker_analyze_logs,unraid-unraid_docker_processes,unraid-unraid_docker_stats,unraid-unraid_docker_info,unraid-unraid_docker_update_status,unraid-unraid_ca_search,unraid-unraid_network_inventory,unraid-unraid_network_list,unraid-unraid_network_inspect,unraid-unraid_network_host_state,unraid-unraid_network_audit_tcp,unraid-unraid_network_lan_probe,unraid-unraid_system_health,unraid-unraid_storage_status,unraid-unraid_disk_health,unraid-unraid_notifications_list,unraid-unraid_shares_list,unraid-unraid_share_inspect,unraid-unraid_files_inventory,unraid-unraid_system_connection_test,unraid-unraid_system_shell_readonly"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# Shared bearer key generated by platform/mcphub/configure-settings.py.
|
||||
# The live value is stored in MCPHub appdata/client-token and copied only to
|
||||
# /etc/mike-ai/mcphub-client.env on clients.
|
||||
MCPHUB_BEARER_TOKEN=REPLACE_WITH_LOCAL_MCPHUB_CLIENT_TOKEN
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<Container version="2">
|
||||
<Name>MCPHub</Name>
|
||||
<Repository>samanhappy/mcphub:1.0.32</Repository>
|
||||
<Repository>casaderoll/mcphub:1.0.0</Repository>
|
||||
<Registry>https://hub.docker.com/r/samanhappy/mcphub</Registry>
|
||||
<Network>bridge</Network>
|
||||
<MyIP/>
|
||||
@@ -11,7 +11,7 @@
|
||||
<Support>https://github.com/samanhappy/mcphub/issues</Support>
|
||||
<Project>https://github.com/samanhappy/mcphub</Project>
|
||||
<ReadMe>https://github.com/samanhappy/mcphub#readme</ReadMe>
|
||||
<Overview>Zentrale MCP-Verwaltung mit Weboberfläche. MCPHub startet und überwacht stdio-, SSE- und Streamable-HTTP-MCPs, stellt einzelne Server sowie Gruppen über gemeinsame HTTP-Endpunkte bereit und erlaubt das Aktivieren oder Deaktivieren einzelner Werkzeuge. Das normale Image enthält Node.js, Python, uv/uvx, npx und Git.
|
||||
<Overview>Zentrale MCP-Verwaltung mit Weboberfläche. Das lokale CasaDeRoll-Image basiert reproduzierbar auf MCPHub 1.0.32 und enthält die versionierten ARR-, Deemix-, Navidrome-, GitHub- und Web-MCP-Laufzeiten. Home Assistant und MUA werden als vorhandene HTTP-MCPs eingebunden. Einzelne Server bleiben unter /mcp/NAME getrennt sichtbar und schaltbar.
|
||||
|
||||
Weboberfläche: http://[IP]:[PORT:3000]/
|
||||
Benutzer beim ersten Start: admin
|
||||
@@ -29,6 +29,7 @@ Wenn kein Admin-Passwort eingetragen wird, erzeugt MCPHub eines und schreibt es
|
||||
<Requires/>
|
||||
<Config Name="WebUI und MCP Port" Target="3000" Default="8787" Mode="tcp" Description="Weboberfläche und MCP-Endpunkte. Beispiel: http://UNRAID-IP:8787/mcp" Type="Port" Display="always" Required="true" Mask="false">8787</Config>
|
||||
<Config Name="Persistente Daten" Target="/app/data" Default="/mnt/nvme-storage/appdata/MCPHub" Mode="rw" Description="Benutzer, Einstellungen, Serverdefinitionen, Schlüssel und Laufzeitstatus. Dieses Verzeichnis wird vom Unraid-Appdata-Backup erfasst." Type="Path" Display="always" Required="true" Mask="false">/mnt/nvme-storage/appdata/MCPHub</Config>
|
||||
<Config Name="MCP-Konfigurationen" Target="/run/secrets/mcphub" Default="/mnt/nvme-storage/appdata/MCPHub/secrets" Mode="ro" Description="Lokale API-Zugänge der verwalteten MCP-Unterprozesse. Das Verzeichnis ist nur im Container lesbar und wird vom Appdata-Backup erfasst." Type="Path" Display="always" Required="true" Mask="false">/mnt/nvme-storage/appdata/MCPHub/secrets</Config>
|
||||
<Config Name="Admin-Passwort" Target="ADMIN_PASSWORD" Default="" Mode="" Description="Optional vor dem ersten Start setzen. Leer lassen erzeugt ein Zufallspasswort, das im Containerprotokoll angezeigt wird." Type="Variable" Display="always" Required="false" Mask="true"></Config>
|
||||
<Config Name="Node-Umgebung" Target="NODE_ENV" Default="production" Mode="" Description="Produktionsmodus für MCPHub." Type="Variable" Display="advanced" Required="true" Mask="false">production</Config>
|
||||
<Config Name="Anfrage-Timeout" Target="REQUEST_TIMEOUT" Default="120000" Mode="" Description="Zeitlimit für MCP-Aufrufe in Millisekunden." Type="Variable" Display="advanced" Required="true" Mask="false">120000</Config>
|
||||
|
||||
Reference in New Issue
Block a user