TP2 ✅ Omada Controller deployed + omada-mcp staged: DS923/macvlan, pve-mcp eingetragen

- omada/docker-compose.yml: Controller 6.2.10.17 auf DS923 (macvlan .175, endpointId=14);
  pve-LXC (.126) hat zu wenig Disk → DS923 standard pattern
- mcp/omada/: docker-compose.yml + .env.template für omada-mcp (macvlan .174, MCP_TRANSPORT=sse);
  wartet auf Wizard-Passwort nach https://10.40.41.175:8043
- pve-mcp (samik081) in ~/.claude/settings.json eingetragen (SSE .173:3000)
- CLAUDE.md: Topologie korrigiert (wahre IPs .100/.126/.167/.173-.175, Omada Port 2 = ap2)
- INVENTORY.md: pve-mcp 🟢, omada-mcp 🟡, portainer-mcp zurückgestellt (→ Komodo)
- teilprojekte.md: TP2 ✅, Ist-Stand + offene manuelle Schritte dokumentiert

Noch offen (manuell): Wizard, .12 adopt, Port-Config, .env + Stack deploy, Claude Code eintragen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-15 14:11:05 +02:00
parent a58d419747
commit a36bdd8f56
6 changed files with 91 additions and 26 deletions

View File

@@ -9,8 +9,10 @@
| MCP | Zweck / Geräte | Host | Transport / Endpoint | Image | Config | Status |
|---|---|---|---|---|---|---|
| **MikroMCP** (AliKarami) | MikroTik hAP ax² ap1/ap2 (RouterOS 7) — WLAN/CAPsMAN, später Router-Cutover | **jetzt: lokal (dieser Mac)** / Ziel: Mac mini `.167` Docker | jetzt **stdio** (`npx mikromcp serve`) / Ziel HTTP `:3000` | `ghcr.io/alikarami/mikromcp:latest` (HTTP) bzw. npm `mikromcp` (stdio) | `mcp/mikromcp/` + Claude-Code user-config | 🟢 **live (stdio), doctor 12/12, in Claude Code ✓Connected** |
| **omada-mcp** (realtydev) | TP-Link Omada Controller → ES208G (+ künftige Omada-Geräte) | tbd (Controller = pve-LXC `10.40.41.126`) | HTTP (stream) | `jmtvms/tplink-omada-mcp` (Fork prüfen) | `mcp/omada/` (tbd) | 🔴 wartet auf Controller+Adoption |
| **portainer-mcp** (offiziell) | Docker-Überblick **5 Hosts** (pve/ds923/odroid/macmini/ds415) via Portainer | Portainer-Server **läuft** auf `.126:9443` **v2.40.0** | stdio (uvx) o. Docker-HTTP, **read-only** | `portainer/portainer-mcp` / `mcp-portainer` | `mcp/portainer/` (Token in .env ✓) | 🟠 **blockiert: Portainer 2.40 hat keinen passenden MCP (nur 2.41/2.42)** → Portainer bumpen; + lokal kein uvx/docker |
| **pve-mcp** (samik081) | Proxmox VE API (Host `.100`) | DS923 (`.10`), macvlan-IP **`.173`** | SSE `http://10.40.41.173:3000/sse` | `ghcr.io/samik081/mcp-pve:latest` | — (Stack via Portainer) | 🟢 **live, in Claude Code eingetragen** |
| **omada-mcp** (realtydev/jmtvms) | TP-Link Omada Controller → ES208G (+ künftige Omada-Geräte) | DS923 (`.10`), macvlan-IP **`.174`** | SSE `http://10.40.41.174:3000/sse` (`MCP_TRANSPORT=sse`) | `jmtvms/tplink-omada-mcp:latest` | `mcp/omada/` ✓ | 🟡 **staged — wartet auf Wizard + Adoption (.12)** |
| **omada-controller** | Omada Software Controller (keine MCP) | DS923 (`.10`), macvlan-IP **`.175`** | HTTPS `https://10.40.41.175:8043` | `mbentley/omada-controller:6.2` | `omada/docker-compose.yml` | 🟢 **live (Up, health: starting→healthy erwartet)** |
| **portainer-mcp** (offiziell) | Docker-Überblick **5 Hosts** via Portainer | Portainer läuft auf `.126:9443` v2.40.0 | stdio (uvx) o. Docker-HTTP | `portainer/portainer-mcp` | `mcp/portainer/` (Token .env ✓) | 🟠 **zurückgestellt — Portainer ablösung durch Komodo geplant** |
| ~~ALLNET-MCP~~ | ALLNET ALL-SG8316M Core-Switch | — | — | — | — | ⛔ **bewusst NICHT** (Telnet/1-VTY/15-min-Lock auf Core = zu fragil). User-Entscheid: erst beschriebener Weg, sonst Omada-Core-Tausch. |
Legende: 🟢 live · 🟡 staged (Config da, nicht deployed) · 🔴 blockiert · ⛔ bewusst nicht gemacht

8
mcp/omada/.env.template Normal file
View File

@@ -0,0 +1,8 @@
# omada-mcp Secrets — .env (gitignored). Dieses File = Template, .env = echte Werte.
MCP_TRANSPORT=sse
PORT=3000
OMADA_URL=https://10.40.41.175:8043
OMADA_USERNAME=admin
OMADA_PASSWORD=REPLACE_AFTER_WIZARD
OMADA_SITE=BF
OMADA_SKIP_CERT_VERIFY=true

View File

@@ -0,0 +1,31 @@
# omada-mcp — TP-Link Omada Controller MCP Server
# Host: nas-bf (DS923, 10.40.41.10), Portainer endpointId=14
# Image: jmtvms/tplink-omada-mcp (stdio by default, SSE via MCP_TRANSPORT=sse)
# IP: 10.40.41.174 (macvlan default_external) — .173=pve-mcp, .175=omada-controller
#
# Deploy NACH Omada-Controller-Wizard (https://10.40.41.175:8043):
# 1. Creds in .env eintragen
# 2. Via Portainer API: POST /api/stacks/create/standalone/string?endpointId=14
# 3. Claude Code: ~/.claude/settings.json → "omada-mcp": {"url": "http://10.40.41.174:3000/sse"}
services:
omada-mcp:
image: jmtvms/tplink-omada-mcp:latest
container_name: omada-mcp
restart: unless-stopped
networks:
default_external:
ipv4_address: 10.40.41.174
env_file: .env
# Env-Vars (in .env setzen, nie hier hardcoden):
# MCP_TRANSPORT=sse
# PORT=3000
# OMADA_URL=https://10.40.41.175:8043
# OMADA_USERNAME=admin
# OMADA_PASSWORD=<wizard-passwort>
# OMADA_SITE=BF
# OMADA_SKIP_CERT_VERIFY=true (falls key heißt anders: OMADA_TLS_VERIFY=false)
networks:
default_external:
external: true