6.0 KiB
6.0 KiB
Handoff 2026-08-28 — MCP-Cleanup + shelly-mcp-Tote + nächste Schritte
Bezug: docs/handoff-20260827-inventur-und-architektur.md (Master-Plan, Asymmetrie, TP34) + Inventur-Handoff bleibt der Einstieg für Master-Fragen. Diese Datei ist der konkrete nächste Schritt aus der Session 2026-08-28.
TL;DR
- MCP-Cleanup durchgeführt:
cannaleo+terpene-pgaus~/.claude.jsonUND~/.config/opencode/opencode.jsoncentfernt (Backup~/.claude.json.bak-pre-mcp-cleanup,~/.opencode/opencode.jsonc.bak-pre-n8n-mcp). n8n-mcprepariert: URL warhttps://n8n-mcp.emsenhuber.net/(kein/mcpam Ende) → jetzthttps://n8n-mcp.emsenhuber.net/mcp. Bearer überheaders.Authorizationaus{env:N8N_MCP_BEARER}. ✅ live verifiziert.shelly-mcpist tot (war in Inventur-Handoff nicht aufgefallen): läuft auf keinem Host, kein lokaler Prozess, kein Container auf NAS/pve. Config jetzthttp://127.0.0.1:3030/mcpmitenabled=false.- CLAUDE.md erweitert: 3 neue Lessons-for-Sessions-Regeln (MCP-Lifecycle: aktiv melden, Host vor Edit verifizieren, tote MCPs ins Projekt-Repo).
- Commit:
046f103(lokal + remote synchron inadmin/bf-infra).
Drift-Befunde der MCP-Cleanup-Session
| # | Befund | Einschätzung „richtig" |
|---|---|---|
| M1 | cannaleo + terpene-pg waren in ~/.claude.json UND ~/.config/opencode/opencode.jsonc doppelt |
Beide aus globalen Configs entfernt, in terpene-Repo dokumentiert |
| M2 | n8n-mcp URL war ohne /mcp |
Korrigiert auf https://n8n-mcp.emsenhuber.net/mcp |
| M3 | shelly-mcp zeigt auf 127.0.0.1:3030, aber kein Prozess dort |
enabled=false, Deploy-Folgepunkt angemerkt |
| M4 | ollama mcp list zeigte Hänger nach Zeile 1 (war Race-Condition beim Initial-Connect) |
Nicht in Config, sondern Cold-Start; mit etwas Wartezeit vollständig (10 Server alle ✅ oder disabled) |
Was ich konkret geändert habe
1. ~/.claude.json
- Entfernt:
cannaleo,terpene-pg - Backup:
~/.claude.json.bak-pre-mcp-cleanup
2. ~/.config/opencode/opencode.jsonc
- Entfernt:
cannaleo,terpene-pg - Korrigiert:
n8n-mcp.url→https://n8n-mcp.emsenhuber.net/mcp(mit/mcp) - Markiert:
shelly-mcp.enabled→false(kein Host) - Kommentar: shelly-mcp-Deploy als TODO angemerkt
- Backup:
~/.opencode/opencode.jsonc.bak-pre-n8n-mcp(vor n8n-mcp-Edit)
3. ~/dev/bf-infra/CLAUDE.md
- Ist-Stand-Block: shelly-mcp-Tote hinzugefügt
- Lessons-for-Sessions: 3 neue Regeln
- MCP-Änderung = aktiv melden (Christoph-Direktive 2026-08-27)
- Host vor Edit verifizieren (Live-Read: nc/ps/curl)
- Tote MCPs → ins Projekt-Repo, nicht global
- Checkliste um Punkt 5 erweitert: „MCP-Änderung? Vorher Live-Check"
5. Neue Datei in terpene-Repo
~/dev/blaueblueten-n8n/docs/mcp-rueckantwort-2026-08-27.md— dokumentiert für terpene-Phase, was war und welche Optionen (A = Repo-Pattern, B = weglassen) bestehen
Live-Verifizierung (2026-08-28)
n8n-mcp: ✅ connected, Bearer akzeptiert, serverInfo: n8n-documentation-mcp 2.57.1
10 MCP-Server total: 9 connected + 1 disabled (shelly-mcp)
URL-Test: curl POST /mcp mit Bearer → 200, initialize-Response
Was du noch zu tun hast
Reihenfolge (du wolltest „erst bf-network-r6 archiv, dann 1")
1. bf-network-r6 im Gitea auf read-only + Archiv-Header (deine Aktion):
https://gitea.emsenhuber.net/admin/bf-network-r6/settings- Archived anhaken ✓
- Read-only anhaken ✓
- Description: „Archiv — siehe admin/bf-infra für aktive Entwicklung"
2. terpene-Caddyfile-Block (~/dev/bf-infra/caddy/Caddyfile):
terpene.teilzeitladen.xyz {
reverse_proxy http://10.40.20.167:8890
}
- Mac mini (
.167) lebt (live ping 527 µs avg, Port 8890 offen) - Commit-Kommentar: „Quick-Win für terpene-Backfill — nicht das Pattern, TP34 ist die saubere Lösung"
3. STATUS.md Z.47 in ~/dev/blaueblueten-n8n/STATUS.md korrigieren:
- Realität: kein Tunnel hat
terpene.teilzeitladen.xyzals Ingress, Worker läuft nur über CF-Workers-Custom-Domain420.teilzeitladen.xyz - Streichen oder umformulieren
4. ~/.claude.json n8n-mcp-Eintrag nachziehen (du wolltest „n8n-mcp auch korrekt in beide Configs"):
- Aktuell nur in
~/.config/opencode/opencode.jsonc, nicht in~/.claude.json - Block dort identisch:
"n8n-mcp": { "type": "http", "url": "https://n8n-mcp.emsenhuber.net/mcp", "headers": { "Authorization": "Bearer <redacted>" } }
5. gitea-mcp „Server not initialized" untersuchen:
- Diese Session: MCP-Aufruf gab
Streamable HTTP error: ... "Bad Request: Server not initialized" - Mögliche Ursache: Container-Restart noch nicht durch, oder Backend-Init fehlt
- Erste Adress-Tests:
https://gitea-mcp.emsenhuber.net/mcpantwortet mit 405 (Method not Allowed, nicht Init-Fehler) → MCP-Backend läuft, aber die SSE-Initialisierung klemmt - Aktion: Portainer/Komodo-Container-Logs prüfen, ggf. manueller Restart
6. shelly-mcp deployen (eigener Punkt, nicht zeitkritisch):
- Skript:
~/dev/bf-infra/mcp/shelly/server.py - Wo deployen? Optionen:
- Container auf Mac mini (10.40.20.167) — passt zum Caddyfile-Pattern
- Container auf NAS (10.40.20.10) — wo auch Portainer läuft
- pve-LXC (10.40.20.126 oder neu) — zentral
- Sobald deployed, Config auf neue IP +
enabled=true
Lessons Learned (an nächste Session)
~/.claude.json≠~/.config/opencode/opencode.jsonc: zwei separate Werkzeugkästen, müssen manuell synchron gehalten werden- MCP-Geistereinträge sind häufiger als gedacht — regelmäßiger Audit (alle 2-4 Wochen) auf tote Hosts sinnvoll
opencode mcp listzeigt Initialisierungs-Status, nicht dauerhaften Connect — bei Hänger: kurz warten, dann erneut prüfen
Stand
- 2026-08-28, gegen Ende der MCP-Cleanup-Session
- Christoph + Hubert/minimax-m3
- Commits lokal + remote:
046f103(HEAD) - 256 Commits in
admin/bf-infra