TP2 🔄 omada-mcp deployed (.176/pve-LXC) — braucht Open-API-Client-Creds
- omada-mcp Container auf pve-LXC (.126, endpointId=2, ipvlan .176), Stack Id=200, gestoppt - Erkenntnis: jmtvms/tplink-omada-mcp nutzt Omada OPEN API (CLIENT_ID/SECRET/OMADAC_ID/SITE_ID), NICHT username/password → .env-Schema + compose-Kommentare + .env.template angepasst - omada-mcp in ~/.claude/settings.json eingetragen (SSE .176:3000) - Letzter manueller Schritt: Open-API-App im Controller-UI anlegen (Platform Integration), Client-Creds + SITE_ID in .env → Container starten → reload → dann VLANs + Adoption Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
|---|---|---|---|---|---|---|
|
||||
| **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** |
|
||||
| **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/` ✓ (`.env` befüllt) | 🔴 **Container nicht deployed — nächster Schritt: Stack via Portainer endpointId=14** |
|
||||
| **omada-mcp** (jmtvms) | TP-Link Omada Controller → ES208G (+ künftige Omada-Geräte) | **pve-LXC (`.126`, endpointId=2)**, ipvlan-IP **`.176`** | SSE `http://10.40.41.176:3000/sse` (`MCP_TRANSPORT=sse`) | `jmtvms/tplink-omada-mcp:latest` | `mcp/omada/` ✓, in settings.json ✓ | 🟠 **Container deployed (gestoppt) — braucht Open-API-Client-Creds (UI: Platform Integration → Open API). User/PW funktioniert NICHT, nur Client-Credentials.** |
|
||||
| **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, configured, Wizard ✅** |
|
||||
| **komodo-mcp** (samik081) | Docker-Management **5 Hosts** via Komodo Core (ersetzt Portainer) | DS923 (`.10`), macvlan-IP **`.176`** | SSE `http://10.40.41.176:3000/sse` | `ghcr.io/samik081/mcp-komodo:latest` | `mcp/komodo/` ✓ (`.env.example` → `.env` nach Phase 1) | 🟡 **geplant — Migration: `mcp/komodo/MIGRATION.md`** |
|
||||
| ~~portainer-mcp~~ (offiziell) | Docker-Überblick via Portainer CE 2.40.0 | `.126:9443` | — | `portainer/portainer-mcp` | `mcp/portainer/` (Token .env ✓) | ⏳ **retired nach Komodo-Migration — Token aufheben bis Phase 4** |
|
||||
|
||||
@@ -1,8 +1,16 @@
|
||||
# omada-mcp Secrets — .env (gitignored). Dieses File = Template, .env = echte Werte.
|
||||
#
|
||||
# jmtvms/tplink-omada-mcp nutzt die Omada OPEN API (nicht User/Passwort!).
|
||||
# Client-Credentials erzeugen: Controller-UI → Settings → Platform Integration → Open API →
|
||||
# neuen App-Eintrag (Grant Type: Client Credentials) → liefert Client ID + Client Secret.
|
||||
# omadac_id: aus https://10.40.41.175:8043/api/info → result.omadacId
|
||||
# site_id: Controller-UI Site-Auswahl, oder API /{omadacId}/api/v2/sites → result.data[].id
|
||||
|
||||
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
|
||||
OMADA_BASE_URL=https://10.40.41.175:8043
|
||||
OMADA_OMADAC_ID=adbef8fa3505fb16b09818eab71d824e
|
||||
OMADA_CLIENT_ID=REPLACE_OPENAPI_CLIENT_ID
|
||||
OMADA_CLIENT_SECRET=REPLACE_OPENAPI_CLIENT_SECRET
|
||||
OMADA_SITE_ID=REPLACE_SITE_ID
|
||||
OMADA_STRICT_SSL=false
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
# omada-mcp — TP-Link Omada Controller MCP Server
|
||||
# Host: nas-bf (DS923, 10.40.41.10), Portainer endpointId=14
|
||||
# Host: pve-LXC (10.40.41.126, Portainer endpointId=2) — Docker-LXC auf Proxmox
|
||||
# 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
|
||||
# IP: 10.40.41.176 (ipvlan default_external) — .173=pve-mcp, .175=omada-controller (beide auf DS923)
|
||||
#
|
||||
# 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"}
|
||||
# Hinweis: pve-LXC-Disk ist klein (1GB-Controller-Image scheiterte dort → Controller läuft auf DS923).
|
||||
# omada-mcp (~node-alpine) ist klein genug für den pve-LXC.
|
||||
#
|
||||
# Deploy (via Portainer API, endpointId=2):
|
||||
# POST /api/stacks/create/standalone/string?endpointId=2
|
||||
# Env beim Deploy inline (env_file findet Portainer nicht) — Werte aus .env.
|
||||
# Claude Code: ~/.claude/settings.json → "omada-mcp": {"url": "http://10.40.41.176:3000/sse"}
|
||||
|
||||
services:
|
||||
omada-mcp:
|
||||
@@ -15,16 +18,15 @@ services:
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
default_external:
|
||||
ipv4_address: 10.40.41.174
|
||||
ipv4_address: 10.40.41.176
|
||||
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)
|
||||
# Env-Vars (Omada OPEN API, in .env setzen — siehe .env.template):
|
||||
# MCP_TRANSPORT=sse · PORT=3000
|
||||
# OMADA_BASE_URL=https://10.40.41.175:8043
|
||||
# OMADA_OMADAC_ID=<aus /api/info> · OMADA_SITE_ID=<aus /api/v2/sites>
|
||||
# OMADA_CLIENT_ID / OMADA_CLIENT_SECRET=<Controller → Platform Integration → Open API>
|
||||
# OMADA_STRICT_SSL=false
|
||||
# ACHTUNG: Portainer-String-Deploy findet env_file NICHT → Env beim Deploy inline senden.
|
||||
|
||||
networks:
|
||||
default_external:
|
||||
|
||||
Reference in New Issue
Block a user