3.4 KiB
CLAUDE.md – Arbeitsanweisung für mcp-synology-container
Deine Aufgabe
Implementiere das Projekt mcp-synology-container vollständig gemäß SPEC.md.
Lies SPEC.md jetzt vollständig, bevor du anfängst.
Referenzmaterial
Im Ordner reference/ findest du zwei Referenzprojekte. Nutze sie aktiv:
reference/cmeans/
Geklontes Repo von cmeans/mcp-synology (GitHub).
Übernimm daraus die Implementierungsmuster für:
- Auth-Flow und 2FA-Device-Token-Flow (
auth.py) - OS-Keyring-Integration (
keyringlibrary) - CLI-Struktur mit
click(cli.py) - Config laden/speichern mit YAML (
config.py) - Credential-Auflösungsreihenfolge (env vars → config → keyring)
setup-Wizard mitrichfür formatierte Ausgabe- Generierung des Claude-Desktop-Config-Snippets
Passe alle übernommenen Muster an unseren Use-Case an. Kopiere keinen Code blind – verstehe ihn und adaptiere ihn.
reference/n4s4/docker_api.py
Einzelne Datei aus N4S4/synology-api (GitHub).
Nutze sie als Referenz für die konkreten DSM API-Calls:
- Wie
SYNO.Docker.Projectaufgerufen wird (list, start, stop) - Wie
SYNO.Docker.Containeraufgerufen wird (list, logs, exec) - Wie
SYNO.Docker.Imageaufgerufen wird (list) - Welche Parameter und Response-Strukturen die APIs erwarten
Implementiere keinen eigenen Wrapper um synology-api –
baue einen eigenen schlanken HTTP-Client in dsm_client.py mit httpx.
Reihenfolge der Implementierung
Arbeite in dieser Reihenfolge. Schließe jeden Schritt vollständig ab bevor du weitermachst:
- Projektstruktur anlegen – alle Ordner und leere
__init__.py-Dateien,pyproject.toml config.py– Config laden, speichern, validierenauth.py– Keyring-Integration, Login gegen DSM API, 2FA-Device-Token-Flowdsm_client.py– HTTP-Client mit Session-Management, Auto-Re-Logincli.py–setup,check,serveBefehlemodules/projects.py– SYNO.Docker.Project Toolsmodules/containers.py– SYNO.Docker.Container Toolsmodules/compose.py– Compose-Datei lesen/schreiben via FileStation APImodules/images.py– SYNO.Docker.Image Tools- Tests – für jeden Schritt
README.md– Installationsanleitung und Tool-Übersichtdocs/setup.mdunddocs/tools.md
Wichtige Implementierungsregeln
-
Confirmation vor destruktiven Operationen:
stop_project,redeploy_project,exec_in_container,update_image_tag,update_env_var,update_composemüssen eine Bestätigung vom Nutzer einholen bevor sie ausgeführt werden. Nutze dafür den MCP-eigenenconfirm-Mechanismus. -
Nach Compose-Änderungen: Immer automatisch
redeploy_projectvorschlagen. -
Fehlerbehandlung: Alle DSM API-Fehler sauber abfangen und als verständliche Fehlermeldung zurückgeben. Keine Python-Stacktraces zum Nutzer.
-
Keine Secrets in Logs: Passwörter, Tokens und Session-IDs niemals in stderr-Ausgaben schreiben.
-
HTTPS:
verify_ssl: trueist der Standard. Nur auf expliziten Wunsch deaktivierbar. -
Compose-Pfade: Beide Varianten erkennen –
docker-compose.ymlundcompose.yml. -
Type Hints: Konsequent in allen Funktionen verwenden.
-
Docstrings: Für alle öffentlichen Funktionen und Klassen.
Projekt-Konventionen
- Sprache: Python 3.12+
- Formatter:
ruff format - Linter:
ruff check - Tests:
pytest - Alle Texte (Docstrings, Kommentare, README): Englisch