Files
bf-infra/mcp/omada/docker-compose.yml
Christoph Emsenhuber d99d8cf6da TP2 ✅ omada-mcp live (.176/pve, StreamableHTTP /mcp) — Verbindungstest grün
Root cause der Crash-Loops gefunden:
- Container bekam Env beim Deploy INLINE (Portainer ignoriert env_file) → alte falsche Var-Namen
- jmtvms/tplink-omada-mcp v0.15 nutzt Omada OPEN API (CLIENT_ID/SECRET), nicht user/pass
- Transport ist StreamableHTTP (MCP_SERVER_USE_HTTP + MCP_HTTP_*), NICHT SSE/MCP_TRANSPORT

Jetzt: /health 200, MCP initialize-Handshake liefert Tools/Capabilities. settings.json → /mcp.
.env-Schema, .env.template, compose-Doku korrigiert.
Offen: Claude Code reload → VLANs anlegen + .12 adoptieren (Tool-Categories ggf. um write erweitern).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 15:07:14 +02:00

35 lines
1.7 KiB
YAML

# omada-mcp — TP-Link Omada Controller MCP Server (jmtvms/tplink-omada-mcp v0.15)
# Host: pve-LXC (10.40.41.126, Portainer endpointId=2) — Docker-LXC auf Proxmox
# IP: 10.40.41.176 (ipvlan default_external) — .173=pve-mcp, .175=omada-controller (beide auf DS923)
#
# Transport: StreamableHTTP (NICHT SSE) → Endpoint http://10.40.41.176:3000/mcp, Health /health
# Auth: Omada OPEN API (Client Credentials) — KEIN username/password!
# Creds: Controller-UI → Settings → Platform Integration → Open API (Grant: Client Credentials).
#
# 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/Update (via Portainer API, endpointId=2):
# POST /api/stacks/create/standalone/string?endpointId=2 (erstmalig)
# PUT /api/stacks/200?endpointId=2 (update, Stack-Id=200)
# ⚠️ Portainer-String-Deploy findet env_file NICHT → Env beim Deploy INLINE senden (Werte aus .env).
# Claude Code: ~/.claude/settings.json → "omada-mcp": {"url": "http://10.40.41.176:3000/mcp"}
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 (siehe .env.template) — Transport + Omada Open API:
# MCP_SERVER_USE_HTTP=true · MCP_HTTP_BIND_ADDR=0.0.0.0 · MCP_HTTP_PORT=3000 · MCP_HTTP_PATH=/mcp
# MCP_HTTP_ENABLE_HEALTHCHECK=true · MCP_HTTP_HEALTHCHECK_PATH=/health
# OMADA_BASE_URL · OMADA_OMADAC_ID · OMADA_SITE_ID · OMADA_CLIENT_ID · OMADA_CLIENT_SECRET · OMADA_STRICT_SSL=false
networks:
default_external:
external: true