Container shelly-mcp läuft seit dem mcp<2-Pin-Fix auf DS923 (10.40.20.180, macvlan vlan20). Eintrag in der projekt-spezifischen Config analog zu pve-mcp: type=remote, kein Bearer (Container nimmt keine Auth entgegen, lebt im BF-LAN hinter deny-by-default — s. TP5). Abnahme: mcp list 11/11, shelly-mcp connected, /health antwortet 200 mit psk_configured:true.
66 lines
2.8 KiB
JSON
66 lines
2.8 KiB
JSON
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"instructions": ["CLAUDE.md"],
|
|
"permission": "allow",
|
|
"mcp": {
|
|
"gitea-mcp": {
|
|
"type": "remote",
|
|
"url": "https://gitea-mcp.emsenhuber.net/mcp",
|
|
"enabled": true
|
|
},
|
|
"mikromcp": {
|
|
"type": "local",
|
|
"command": ["npx", "-y", "mikromcp", "serve"],
|
|
"environment": {
|
|
"MIKROMCP_CONFIG_PATH": "/Users/christophemsenhuber/dev/bf-infra/mcp/mikromcp/config/routers.yaml",
|
|
"MIKROMCP_DEFAULT_ROUTER": "ap1"
|
|
},
|
|
"enabled": true,
|
|
"timeout": 30000
|
|
},
|
|
"pve-mcp": {
|
|
"type": "remote",
|
|
"url": "http://10.40.20.173:3000/",
|
|
"enabled": true,
|
|
"timeout": 15000
|
|
},
|
|
"home-assistant": {
|
|
"type": "remote",
|
|
"url": "http://10.40.20.105:9583/private_29X8x73taoNEq6gzmbVdyg",
|
|
"enabled": true,
|
|
"timeout": 15000
|
|
},
|
|
"cloudflare": {
|
|
"type": "remote",
|
|
"url": "https://mcp.cloudflare.com/mcp",
|
|
"enabled": true,
|
|
"timeout": 15000,
|
|
"oauth": {}
|
|
},
|
|
"portainer": {
|
|
"type": "local",
|
|
"command": ["uvx", "--from", "mcp-portainer~=2.42.0", "mcp-portainer"],
|
|
"environment": {
|
|
"PORTAINER_URL": "https://10.40.20.126:9443",
|
|
"PORTAINER_API_KEY": "{env:PORTAINER_API_KEY}",
|
|
"PORTAINER_TLS_VERIFY": "0"
|
|
},
|
|
"enabled": true,
|
|
"timeout": 15000
|
|
},
|
|
"shelly-mcp": {
|
|
"type": "remote",
|
|
"url": "http://10.40.20.180:3030/mcp",
|
|
"headers": {},
|
|
"enabled": true,
|
|
"timeout": 15000
|
|
}
|
|
},
|
|
"command": {
|
|
"handoff": {
|
|
"description": "Session-Übergabe generieren oder laden",
|
|
"template": "Du bist das Handoff-Tool für das BF-Infra-Projekt.\n\n1. Ermittle, was zu tun ist:\n - Lese `docs/handoff-*.md` und finde die neueste Datei (nach Datum).\n - Wenn `$ARGUMENTS` \"resume\" oder einen Dateinamen enthält: lade die genannte oder neueste Handoff-Datei.\n - Wenn `$ARGUMENTS` leer ist oder \"generate\" enthält: generiere eine neue Handoff-Datei.\n\n2. Generieren (`/handoff`):\n - Lese `docs/teilprojekte.md` (Quick-Index-Block, Zeilen ~174-200) für den aktuellen TP-Status.\n - Prüfe offene Config-Transaktionen: `bash` mit `python3 nautobot/gc-transaktion.py status`.\n - Schreibe `docs/handoff-YYYYMMDD-thema.md` mit: Titel, Ausgangslage (was erledigt, was läuft), offene Schritte, Fallen/Gotchas, Einstieg für die nächste Session.\n - Sag dem User, welche Datei erstellt wurde.\n\n3. Laden (`/handoff resume`):\n - Lese die neueste Handoff-Datei vollständig.\n - Gib Zusammenfassung: Thema, Stand, offene Schritte.\n - Frage: \"Soll ich die Arbeit aus dieser Handoff-Datei fortsetzen?\"\n\nWichtig: Keine Secrets in die Handoff-Datei schreiben. Verweise auf existierende Doku statt zu duplizieren. Ziel < 200 Zeilen."
|
|
}
|
|
}
|
|
}
|