Files
bf-infra/mcp/omada/docker-compose.yml
Christoph Emsenhuber bf5d2b2741 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>
2026-06-15 14:49:51 +02:00

34 lines
1.5 KiB
YAML

# omada-mcp — TP-Link Omada Controller MCP Server
# 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.176 (ipvlan default_external) — .173=pve-mcp, .175=omada-controller (beide auf DS923)
#
# 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:
image: jmtvms/tplink-omada-mcp:latest
container_name: omada-mcp
restart: unless-stopped
networks:
default_external:
ipv4_address: 10.40.41.176
env_file: .env
# 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:
external: true